一、多行注释与多行取消
多行注释
a). 进入命令行模式,按ctrl + v进入 visual block模式(可视快模式),然后按j, 或者k选中多行,把需要注释的行标记起来
b). 按大写字母i,再插入注释符,例如//
c). 按esc键就会全部注释了(我的是按两下)
取消多行注释:
a). 进入命令行模式,按ctrl + v进入 visual block模式(可视快模式),按小写字母L横向选中列的个数,例如 // 需要选中2列
b). 按字母j,或者k选中注释符号
c) . 按d键就可全部取消注释
二、查找字符或者字符串
普通查找
命令模式下,/ (向前(下)) 或者 ? (向后(上)) ,输入字符串,Enter
取消查找后字符串的高亮显示 :st noh
全词匹配
如果你输入 “/str”,你也可能找到 “strcmp 、strncmp”等。
要找到以 “str” 结尾的单词,可以用:/str\>
“\>” 是一个特殊的记号,表示只匹配单词末尾。类似地,”\<” 只匹配单词的开头。
一次,要匹配一个完整的单词 “str”,只需:/\< str\>
vim 查找默认是区分大小写的。
如果不区分大小写,输入: set ignorecase
恢复区分大小写,输入:: set noignorecase
三、匹配、跳转
1. % 光标移到括号上面,然后按 shift+% 就能够跳转到相配对的括号
2. gD 跳转到局部变量的定义处
3. gg 跳转到开头
4. G 跳转的末尾
5. 0 跳转至行首
6. $ 跳转至行尾
7. ^ 跳转至行第一个非空字符
8. >增加缩进,"n>"表示增加以下n行的缩进
9. <减少缩进,"n<"表示减少以下n行的缩进
四、vim辅助设置
1. :set num 显示行号
2. :set list 显示空格、换行符等
五、多行复制
命令行模式下输入 :2,5 co 9
复制第2行到第5行之间的内容到第9行后面。
六、多行删除
方法<一> :
光标所在行,dd
光标所在行以下的N行,Ndd
dG删除当前行至最后一行
方法<二> :
单行删除,:1(待删除行)d
多行删除 ,:1,9d
七、替换字符串 【可以与字符串匹配技巧使用】
vim中字符串的替换:
a):s/Replaced/ToBeReplaced/ 替换当前行第一个 Replaced 为 ToBeReplaced
b):s/Replaced/ToBeReplaced/g 替换当前行所有 Replaced 为 ToBeReplaced
c):n,$s/Replaced/ToBeReplaced/ 替换第 n 行开始到最后一行中每一行的第一个 Replaced 为 ToBeReplaced
d):n,$s/Replaced/ToBeReplaced/g 替换第 n 行开始到最后一行中每一行所有 Replaced 为 ToBeReplaced
e):%s/Replaced/ToBeReplaced/(等同于 :g/Replaced/s//ToBeReplaced/) 替换每一行的第一个 Replaced 为 ToBeReplaced
f):%s/Replaced/ToBeReplaced/g(等同于 :g/Replaced/s//ToBeReplaced/g) 替换每一行中所有 Replaced 为 ToBeReplaced
八、查找字符串出现次数
在所有行中查找string出现的次数
:%s/string/&/gn
在m和n行之间查找 string 出现的次数
:m,ns/string/&/gn
九、 把外部文件读入 Vim
Vim 中读取另一个文件的内容非常方便。切换到正常模式,然后按 :read。使用此快捷键你不需要手动打开文件来复制内容。
:read test.txt
十、 把命令的结果读入 Vim
切换到正常模式,然后输入 :read !command 即可把 command 的结果输入到 vim 中。
十一、切换到上次修改的位置
切换到正常模式,输入 g; 来即可切换到上次修改的位置。
后续使用其他技巧继续补充!
十二、vim 自动补全+ ctags
ctrl + N
外层目录下 ctags -R * , 会生成tags文件,vim 打开code文件,:set tags = ${path}/tags , ctrl + ] 可以跳转到固定的函数定义,ctrl + t 返回上一个ctrl + ] 处。