1 多文件编辑
vim a b c ##编辑文件列表a,b,c
:args a b c ##编辑文件列表a,b,c
:args ##查看文件列表,并显示当前编辑文件
:next ##跳转至文件列表中的下一个文件
:previous ##跳转至文件列表中的上一个文件
:first ##跳转至文件列表中的第一个文件
:last ##跳转至文件列表中的最后一个文件
:edit newfile ##打开另一个文件
2 文件标记
ma ##在光标当前位置设置标记a,标记名为小写时,作用范围为当前文件,标记名为大写时,作用范围为全局文件
`a ##光标跳转至标记a
:marks ##显示所有标记
:marks a ##显示标记a
`< ##可视模式下选中文本的开始处
`> ##可视模式下选中文本的结束处
3 寄存器
"aY ##复制当前行,并把当前行的内容保存在寄存器a中
"AY ##向a寄存器追加内容
"ap ##把寄存器a中的内容粘贴出来
qa...q ##记录一串指令到寄存器a
@a ##应用寄存器a中指令
@@ ##应用上次执行的寄存器指令
"ap ##将寄存器a中的内容粘贴出来,以便编辑,编辑后用"ay,重新保存回寄存器a
qA...q ##追加指令记录到寄存器a中,注意此时使用的是大写字段A
4 修改文件名
:saveas newname ##另存为newname
5 多窗口操作
:split ##用当前编辑的文件,打开一个新的水平窗口
:split filename ##用指定文件打开一个新的水平窗口
:vsplit ##vsplit用法与split相同,但是会创建垂直窗口
:close ##关闭当前窗口,可以防止只剩一个窗口的时候,关闭vim
:only ##保留当前窗口,但关闭其他窗口
CTRL-w j/k/l/h ##按方向j/k/l/h跳转窗口
CTRL-w J/K/L/H ##按方向j/k/l/h移动窗口
CTRL-w t ##跳转至最顶窗口
CTRL-w b ##跳转至最底窗口
CTRL-w - ##缩小窗口大小
CTRL-w + ##扩大窗口大小
CTRL-w _ ##设置窗口大小,默认为最大
vim -o a b c ##以水平分割的方式打开a,b,c文件,显示三个窗口
:all ##当以文件列表方式打开vim后,输入:all以水平分割方式打开文件列表
:vertial all ##与:all类似,但以垂直分割的方式打开。
6 文件比较
vimdiff main.c main.c~ ##比较文件main.c main.c~
:vertical diffsplit main.c~ ##在打开main.c的情况下,开启比较功能
:diffupdate ##刷新比较内容
:diffput ##把相异处put到另一个文件,简写:dp
:diffobtain ##把相异处从另一个文件get到本文件,简写:do
7 分页窗口
:tabedit newfile ##以分页窗口打开newfile
:tab split ##以分页窗口打开当前文件,实际上,以tab开头时,都指明以分页窗口打开的意思
:gt ##分页窗口的切换
8 替换
:s/from/to/[gcp] ##以to替换from的内容,g代表行内所有匹配,c代表每次替换都会进行咨询
9 命令执行范围
:.,$s/// ##代表替换命令的执行范围为当前行至文件末尾
:1,$s/// ##代表替换命令的执行范围为第一行至文件末尾
:%s/// ##与:1,$s///相同
:?^Chapter?,/*Chapter/s/// ##使用?或/查找来指定命令执行范围,注意需要使用两个?,两个/
:?^Chapter?+1,/*Chapter/-1s/// ##使用?或/查找来指定命令执行范围,还可以指定偏移
:'a,'bs/// ##使用标记指定执行范围
10 文本编辑(normal)
~ ##切换大小写
gU ##切换为大写,gUgU切换整行为大写,gUaw切换一个单词为大写
gu ##切换为小写,其余类似gU
J ##换行符以空格取代
gJ ##删除换行符
11 文本编辑(visual)
~ ##切换大小写
U ##切换为大写
u ##切换为小写
J ##选中行的换行符以空格取代
gJ ##删除选中行的换行符
12 读写文件
:read file ##在当前位置读入file的文件内容
:write file ##把当前编辑的文件写到file中
:.,$write file ##把当前位置到文件末尾的内容写到file中
:.write >> file ##向file文件追加内容,内容为当前行
:read !ls ##读入命令ls的输出
13 过滤命令!
过滤命令的意思是用外部命令的输出来替换指定范围内的内容。格式如:!{motion}{program}。如:
!5Gsort ##即对当前行至第五行的内容进行排序
:%!sort ##即对整个文件内容进行排序
14 刷新vim
CTRL-L
15 访问变量
:echo $VIM ##访问环境变量VIM
:echo &hlsearch ##访问选项hlsearch
16 cscope在vim中的使用
:cs help ##查看cscope帮助信息
可以使用CTRL-]和CTRL-T在标签间跳转。