定义vim配置文件vimrc用于c/c++编程
vim作为Linux下广受赞誉的代码编辑器,其独特的纯命令行操作模式可以很大程度上方便编程工作,通过自定义vim配置文件可以实现对vim功能的个性化设置。
vim配置文件一般有两份,属于root的/etc/vim/vimrc和属于当前用户的~/.vimrc,两者都可以配置vim,而当两者配置信息有冲突时,以后者为准。
我的/etc/vim/vimrc文件内容如下:
runtime!debian.vim syntaxon setshowmatch setnu setautoindent setcindent setmouse=a iffilereadable("etc/vim/vimrc.local") source/etc/vim/vimrc.local endif
我的当前用户vim配置文件~/.vimrc内容如下:
inoremap'''i inoremap""" i inoremap(() i inoremap[[] i inoremap{{ } O "设置跳出自动补全的括号 funcSkipPair() ifgetline('.')[col('.')-1]==')'||getline('.')[col('.')-1]==']'||getline('.')[col('.')-1]=='"'||getline('.')[col('.')-1]=="'"||getline('.')[col('.')-1]=='}' return"\ la" else return"\t" endif endfunc "将tab键绑定为跳出括号 inoremap =SkipPair() "打开文件类型检测,加了这句才可以用智能补全 setcompleteopt=longest,menu setshortmess=atI"启动的时候不显示那个援助乌干达儿童的提示 setshowcmd"输出的命令显示出来 autocmdInsertLeave*senocul"用浅色高亮当前行 autocmdInsertEnter*secul"用浅色高亮当前行 setfoldenable"允许折叠 setfoldmethod=manual"手动折叠 setnocompatible"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 "映射全选+复制ctrl+a map ggVGY map! ggVGY map gg=G "选中状态下Ctrl+c复制 vmap "+y "去空行 nnoremap :g/^/s*$/d "代码补全 setcompleteopt=preview,menu "共享剪贴板 setclipboard+=unnamed "Tab键的宽度 settabstop=4 "统一缩进为4 setsofttabstop=4 setshiftwidth=4 "不要用空格代替制表符 setnoexpandtab "在行和段开始处使用制表符 setsmarttab "禁止生成临时文件 setnobackup setnoswapfile "搜索忽略大小写 setignorecase "搜索逐字符高亮 sethlsearch setincsearch setgdefault"行内替换 setencoding=utf-8 setfileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1" "编码设置 setguifont=Menlo:h16:cANSI"设置字体 setlangmenu=zn_CN.UTF-8 sethelplang=cn"语言设置 setruler"在编辑过程中,在右下角显示光标位置的状态行 setlaststatus=1"总是显示状态行 setshowcmd"在状态行显示目前所执行的命令,未完成的指令片段也会显示出来 setscrolloff=3"光标移动到buffer的顶部和底部时保持3行的距离""""""" setautowrite"在切换buffer时自动保存当前文件" setshowmatch setselection=exclusive setselectmode=mouse,key setwildmenu"增强模式中的命令行自动完成操作 setlinespace=2"字符间插入的像素行数目 setwhichwrap=b,s,<,>,[,]"开启normal或visual模式下的backspace键空格键,左右方向键,insert或replace模式下的左方向键,右方向键的跳行功能 filetypepluginindenton "分为三部分命令:fileon,filepluginon,fileindenton分别是自动识别文件类型,用用文件类型脚本,使用缩进定义文件""]"" filetypeon"打开文件类型检测功能 autocmdBufNewFile*.cpp,*.[ch]exec":callSetTitle()" funcSetTitle() callsetline(1,"/************************************************************************") callappend(line("."),">FileName:".expand("%")) callappend(line(".")+1,">Author:lsh") callappend(line(".")+2,">Mail:lsh1999mail@163.com") callappend(line(".")+3,">CreatedTime:".strftime("%c")) callappend(line(".")+4,"************************************************************************/") callappend(line(".")+5,"") if&filetype=='cpp' callappend(line(".")+6,"#include ") callappend(line(".")+7,"usingnamespacestd;") callappend(line(".")+8,"") endif if&filetype=='c' callappend(line(".")+6,"#include ") callappend(line(".")+7,"") endif "新建文件后,自动定位到文件末尾(这个功能实际没有被实现,即下面的语句无效,暂不知道原因) autocmdBufNewFile*normalG endfunc "C,C++按F5编译运行 map :callCompileRunGcc() func!CompileRunGcc() exec"w" if&filetype=='c' exec"!g++%-o%<" exec"!time./%<" elseif&filetype=='cpp' exec"!g++%-o%<" exec"!time./%<" endif endfunc "C,C++的调试 map :callRungdb() func!Rungdb() exec"w" exec"!g++%-g-o%<" exec"!gdb./%<" endfunc " settags=/home/lsh/files/tags letTlist_Auto_Open=1 letTlist_Ctags_Cmd='/usr/local/bin/ctags' letTlist_Show_One_File=1 letTlist_Exit_OnlyWindow=1 """"""""""""""""""""""""
总结
以上所述是小编给大家介绍的定义vim配置文件vimrc用于c/c++编程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!