Vim常用技巧总结2
在光标所在行查找字符在普通模式下用
f{char}
命令,光标会移动到该字符所在的位置,向下重复查找在普通模式下用;
,向上回退查找用,
在光标所在行查找与替换在普通模式下用
:s/target/replacement
,其中target
和replacement
分别用被替换的字符或字符串和替换的字符或字符串代替,重复在普通模式下用&
命令,回退在普通模式下用u
手动控制每一次替换在普通模式下用:%s/target/replacement/gc
,这样的话 Vim 会在每一次出现替换的地方询问是否替换,有以下几种选项:
y
: 替换此处匹配
n
: 忽略此处匹配
a
: “all” —— 替换此处与之后所有的匹配
l
: “last” —— 替换此处匹配后退出
q
: 退出替换过程
<C-e>
: 向上滚动屏幕
<C-y>
: 向下滚动屏幕
查找当前光标下的单词在普通模式下用
*
一键移动,另一键修改 ——
.
范式写代码思维停顿时请回到 普通模式,把思维单元切成 块,这样方便犯了错误在普通模式下按
u
回退操作的时候能接上之前的思路接着修改,在适当的时候,换行操作采用<Esc>o
,这样会使撤销时有更小的粒度,有利于编码操作在普通模式下按
db
,反向删除从光标起始位置到单词开头的内容,但会原封未动地留下最后一个字符在普通模式下按
b
,会将光标移动到单词的开头在普通模式下按
daw
,即 “delete a word”,删除一个单词在普通模式下
<C-a>
和<C-x>
分别对数字执行加和减操作,在不带次数执行时,它们会逐个加减,但如果带一个次数前缀,那么就可以用它们加减任意整数,例如我们把光标移动到数字5
上,执行10<C-a>
就会把它变成15
,如果光标不在数字上,那么<C-a>
和<C-x>
会在当前行正向查找一个数字,如果找到了,它就径直跳到那里在普通模式下按
yyp
会复制当前行并粘贴到下一行在普通模式下加上次数表示重复,例如
2dw
或d2w
都表示要删除两个单词,2u
表示回退两步等等,但是最好只在必要时使用次数在普通模式下按
dl
删除当前光标下的单词,但不进入插入模式,按dap
删除整个段落在 Vim 中,操作符
+
动作命令=
操作,当一个操作符被连续调用两次时,它会作用于当前行,例如:dd
删除当前行,>>
缩进当前行,但是gU
命令是一个特殊情况,既可以用gUgU
,也可以用简化版本的gUU
来使它作用于当前行,常用的操作符命令如下:c
: 修改d
: 删除y
: 复制到寄存器g~
: 反转大小写gu
: 转换为小写gU
: 转换为大写>
: 增加缩进<
: 减小缩进=
: 自动缩进!
: 使用外部程序过滤{motion}
所跨越的行