记(fen)录(xiang)一下我的VIM配置
最早使用VIM的时候,是在网上复制别人的配置和插件直接使用,功能很炫但是往往很多功能和操作并不是很适合自己。后来对配置做过几次修改,直到这次修改之后想到把这个配置上传的GitHub上备份一下,希望下次再改的时候能够稍微省点事。
刚刚已经把我的VIM配置上传到GitHub上了,就不再贴附件了。后面配置如果有修改的时候也是向GitHub上更新。
有兴趣的小伙伴可以点击链接跳转。
我常用的功能
插件内容
- 使用
Vundle管理插件 - 使用
taglist进行tag浏览(窗口左侧打开),手动安装ctags - 使用
DoxygenToolkit,Doxygen风格的注释工具 - 快速注释工具
The-NERD-Commenter - 文件浏览工具
The-NERD-tree,(窗口右侧打开) - 代码补全工具
OmniCppComplete - 状态栏工具
powerline - C语言源文件于头文件快速切换
a.vim - 代码对其工具
godlygeek/tabular - MarkDown语法插件
plasticboy/vim-markdown
下图是当前配置下打开的状态:左侧展开函数列表、右侧打开文件浏览,下面使用ls命令打开了buffer记录

通用操作
编辑/复制/粘贴/剪切
J删除两行之间的空行,实际上是合并两行。yy拷贝当前行nyy拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。p在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。shift+p在当前行前粘贴:1,10 co 20将1-10行插入到第20行之后。:1,$ co $将整个文件复制一份并添加到文件尾部。ddp交换当前行和其下一行xp交换当前字符和其后一个字符- 正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切,按y进行复制
dl删除当前字符, dl=xdh删除前一个字符dd删除当前行dj删除上一行dk删除下一行d$或D删除下一行ndd剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴kdgg删除当前行之前所有行(不包括当前行):1,10d将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。:1,$d删除从第1行开始的所有行:1, 10 m 20将第1-10行移动到第20行之后。
插入与替换
:1,10 s/^/#/g在1-10行行首插入固定内容(#):1,10 s/$/#/g在1-10行行尾插入固定内容gU选中内容全部替换为大写gu选中内容全部替换为小写
列编辑模式
- Windows下
Ctrl+v或Ctrl+q进入可视块模式。 - 可视块模式选中多行的前提下下Shift+i进入插入模式,插入完成后按ESC可在多行的相同位置插入相同值。
十六进制形式查看文件
:%!xdd进入十六进制查看模式:%!xdd -r回到常规模式(如非需要,不要在十六进制模式下保存文件)
书签管理操作
maa为小写字母,为光标所在处设定文档书签amAA为大写字母,为光标所在处设定全局书签A`a到文档书签a处,Tab键上方'a到文档书签a所在行行首处,Enter键左边`A到全局书签A处,Tab键上方'A到全局书签A所在行行首处,Enter键左边`n如果n=0,缓冲区将打开上一次的文档,且光标在上次编辑最后的位置,1-9以此类推'n如果n=0,缓冲区将打开上一次的文档,且光标在上次编辑最后的位置所在行的行首,1-9以此类推:marks查看当前所有书签
Buffer管理
:ls查看当前已经打开的buffer:b num切换到指定编号的buffer:bn切换到下一个buffer:bp切换到上一个buffer:b#切换到之前所在的前一个buffer:bdelete num删除指定编号的buffer
窗口操作
:new打开一个空的新窗口,光标停在顶层的窗口上:split在新窗口打开当前编辑内容,split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。:split file或:new file用新窗口打开文件Ctrl+ww移动到下一个窗口Ctrl+wj移动到下方的窗口Ctrl+wk移动到上方的窗口:close最后一个窗口不能使用此命令,可以防止意外退出vim。:q如果是最后一个被关闭的窗口,那么将退出vim。ZZ保存并退出。:only关闭所有窗口,只保留当前窗口
录制宏
- 按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。
定制操作
F2快速打开函数列表F3快速打开文件列表
插件管理操作
:BundleList列举出列表中(.vimrc中)配置的所有插件:BundleInstall安装列表中全部插件:BundleInstall!更新列表中全部插件:BundleSearch foo查找foo插件:BundleSearch! foo刷新foo插件缓存:BundleClean清除列表中没有的插件:BundleClean!清除列表中没有的插件
注释操作
:DoxLic生成Licence注释:DoxAuthor文件头、作者和时间注释:Dox函数注释
快速注释
;cc快速注释当前行;cu取消当前注释;ca切换注释风格
版权声明:本文为博主原创文章,转载请注明出处。