记录一下关于 vim 中一些使用频率也许并不高的小技巧。

插入与删除

插入

A 在行末插入

I 在行首插入

O 在上一行插入

替换字符

普通模式下,先按下 r 再按下其他按键,就是使用新的字符替换旧字符。

删除

普通模式下,ct; 依次按下三个按键,c 表示删除这部分内容后直接进行插入模式,t; 表示从当前位置到这一行中下一个出现 ; 号之前的位置,合在一起就是删除这之间的内容。 c 换成 d 的话就是删除当前位置到这一行中下一个出现 ; 之前的内容,但是不进入插入模式。

di" 将当前行第一次出现两个 " 之间的内容全部清空并且进入插入模式。

移动

f; 表示移动到这一行中下一个 ; 号的位置。

vimgrep

vimgrep /匹配模式/[g][j] 要搜索的文件/范围

g 表示是否把每一行的多个匹配结果都加入

j 表示是否搜索完后定位到第一个匹配位置

vimgrep /pattern/ %           // 在当前打开文件中查找
vimgrep /pattern/ *           // 在当前目录下查找所有
vimgrep /pattern/ **          // 在当前目录及子目录下查找所有
vimgrep /pattern/ *.c         // 查找当前目录下所有.c文件
vimgrep /pattern/ **/*        // 只查找子目录
cn                            // 查找下一个
cp                            // 查找上一个
copen                         // 打开quickfix
cw                            // 打开quickfix
cclose                        // 关闭qucikfix
help vimgrep                  // 查看vimgrep帮助

从vim正文复制单词到vim命令行

例如使用 vimgrep 搜索时,光标先移动到要复制的单词的起始位置,之后切到命令模式, 先按 ctrl + r ,之后再按 ctrl + w 即可。