1、移动光标
上下左右:四个方向箭头或k、j、h、l
上下翻页:PageUP,PageDN
文首文尾:gg跳到文档起始位置,G跳到末尾位置
行首行尾:HOME跳到行首,END跳到行尾
到指定行:ESC进入命令模式,ngg,如果没有显示行号,:set number,取消显示行号,:set nonumber,可在~/.vimrc中写入set number永久显示行号
2、复制、剪切(删除)、粘贴
自由复制:ESC进入命令模式,v进入可视模式,移动光标选择需要复制的内容,y复制内容
整行复制:y
自由剪切:ESC进入命令模式,v进入可视模式,移动光标选择需要复制的内容,d复制内容
整行剪切:dd
多行剪切:ndd 或 :n1, n2 d
光标粘贴:p,在光标位置之后进行粘贴
行号粘贴::co n,复制当前行粘贴到第n行,如果第n行存在内容,则会在第n行之后插入一行再粘贴
3、查找替换
查找单词:光标移动到当前要查找的单词,ESC进入命令模式,#查找
查找正则:ESC进入命令模式,:/<expr>,回车
查找跳转:n跳到下一处查找内容,N跳到上一处
单次替换:ESC进入命令模式,:s/s1/s2,将s1替换成s2,只替换一次
单行替换:ESC进入命令模式,:s/s1/s2/g,将s1替换成s2,替换整行的s1
多行替换:ESC进入命令模式,:n1,n2 s/s1/s2/g,将s1替换成s2,替换整行的s1
全局替换:ESC进入命令模式,:%s/s1/s2/g,将文档中所以s1替换成s2
4、其他编辑操作
撤销编辑:u
恢复编辑:ctrl + r
5、代码编辑
显示TAB和空格:执行:set list listchars=tab:>-,trail:-,这样TAB将会以'>---'的形式显示,空格以'-'的形式显示,TAB与空格对齐的问题在python中很常见,显示出来有助于查找哪里对齐有问题
多行注释:其实就是替换,:20,30 s/^/#/g 第20到30行用 # 注释掉
取消注释::20,30 s/^#//g
定义跳转:gd 跳转到光标所处的函数或变量的定义处,ctrl+o返回到上次光标所在位置,ctrl+i前进到上次光标所在位置
代码缩进:单行缩进>>,多行缩进,可视模式选择多行用>缩进,<<和<是反缩进,默认vim的缩进宽度为8个空格,修改缩进的宽度::set shiftwidth=4,其他关于tab的内容,可以查看http://liuzhijun.iteye.com/blog/1831548。