linux环境下vim是程序员的最爱,以下是个人总结vim的一些常用命令,非常基础,分享给大家。
1. 常用的跳转命令
a) a追加,i插入
b) A追加到行尾,I插入到行首
c) o追加新的一行,O插入新的一行
d) x删除当前字符,dd删除当前行,D删除当前字符到行尾。
e) r替换一个字符,R连续替换知道按下esc。
f) G到达文件结尾。
2. 为什么是hjkl而不是left、up、down、right?
hjkl分别对应的是左、下、上、右。这四个位置在手指常用区域,不需要手指进行大范围的移动,在阅读代码时大大提供光标转移速度。一开始会很不适应,如果强制使用2天以后就不会再使用箭头了。
3. Vim搜索命令
a) Shift+8,其实本质是搜索单词\<xxxx\>。
b) 开头与结尾,行开头使用^,行结尾使用$。
c) 正则匹配,行开头和结尾也是正则,之所以单独表示是因为太过于常用。下面常用的一些通配符:
i. /a.b ab中间有一个任意字符
ii. /a.*b ab中间有任意多个任意字符
iii. /a.\+b ab中间有至少一个任意字符
iv. /\t\n 搜索tab之后换行的情况
v. /^abc$ 搜索是abc的一行
vi. [abc] 表示abc中的任意一个
vii. \w 匹配单词字母,相当于[a-zA-Z0-9_]
viii. [^abc] 表示非abc中的任意一个
4. Vim替换命令
a) 替换当前行、指定范围、全部。
i. s/abc/cba/g替换当前行的所有abc为cba,g表示替换所有,否则只替换第一个。
ii. 3,5s/abc/cba/g替换3,5行的abc为cba。
iii. %s/abc/cba/g替换所有行的abc为cba。
iv. %s/$a.*b^/ab/将所有的a开头b结尾的行替换为ab。
b) 高级替换
i. %s/func_\(.\+\)(/\1(/改表达式将所有的func_xxxx(替换成xxxx(其中xxxx为任意值。
ii. %s/^\(.\+\) \(.\+\)/\2 \1/改表达式将最后一个单词移动的行首。
iii. %s/\(\w\+\)\(\w\+\)/\2 \1/将行首的两个单词置换。
5. Vim常用插件
a) TList能够分析出当前文件中的函数,类等信息。
b) Ctags能够跳转到函数,结构体定义的地方,非常好用。
c) Template load能够自动加载模板。
6. Vim插件自己开发(相关文档大家可以自己发信来索取)。
a) 通过vim script来开发。
b) 通过python接口来开发。