vimrc(含各种插件设置)
可供vim使用者参考,包含很多C/C++编程所需要的插件设置,插件均可到http://www.vim.org/download.php这个网站找到.为特定文件类型载入相关缩进文件filetype indent on为特定文件类型载入相关缩进文件"设置ⅥM颜色主题你可以借助插件 scrollcolor, vim和coor_ sample_ pack. vim来选择你喜爱的主题(150多个)(请参考下面捶件er白终端的属性" cterm彩色终端的属性cterm彩色终端的前景色ctermbg彩色终端的背景色guIGU版木属性goingGU版本的前景色guibg GU版木的背景色colorscheme elf(od"个人钟爱设置M颜色主题你可以借助插件 scrollcolor vin和 color sample_ pack. vim来选择你喜爱的主题(150多个)(请参考下面插件)览窗口,egcr+W{时的窗口大小set previewheight=10"预览窗口,eg.cr+W{时的窗口大小设置弹出菜单的高度set pumheight=15设置弹出菜单的高度使用鼠标set mouse=a"在vim里可以用鼠标复制粘贴,用鼠标左键选中,中建粘贴"使用鼠标autocadif has(autocad")autocmd BufEnter * chdir % p: hndiFautocad"映射快捷键开始命令,缺省为\(已绎移到上面)let mapleader='let g mapleader=映射快捷键开始命令,缺省为(已经移到上面)解决 console输出乱码language messages zh CN utf-8解决 console输出乱码可用来改动补全时采用的方式set wildmode=list: full可用来改动补全时采用的方式可用来取得菜单式的匹配列表高亮百个匹幽": set wildmeny"当 set wildmode=list:fu认 set wildmenu已启动,但是 set wildmode= ongest:ist时不启可用来取得菜单式的匹列表高亮首个匹修改一个文件后,自动进行备份,备份的文件名为原文件名加~后缀if has(vmsset nobackupelseset backup" vim maIn.C多出 main. c~文件用来保打开前的原文件,最后可用 vimdiff main c main.c~比较endif修改一个文件后,自动进行备份,备份的文件名为原文件名加"~后缀"写备份但关闭vm后自动删除set writebackupset nowritebackup"写备份但关闭vim后自动删除ⅵ耒容开关set nocp"当使用omni自动和仝时,要设置v兼容开关不使用swap文件set noswapfileset swapfile"不使用sWap文件"显示日期的缩与b date显示日期的缩写关闭遇到错误时的声音提示t noerrorbells关闭退到错误时的声音提示不要闪烁set novisualbell"不要闪烁使用空格来替换tabset expandtabset et"使用空格来替换tab在vim编辑器下方显示命令set showedset cmdheight=1"在vm编辑器下方显示命令当光标达到∵端或下端时翻滚的行数set scrolljump =5当光标达到端或下端时翻滚的行数当光标达到水平极端时移动的列数set sidescroll =5"当光标达到水平极端时移动的列数当光标距离极端(上,下,左右)多少时发生窗口滚功set scrolloff=o当光标距离极端(上,下,左,右)多少时发生窗口滚动"当使用ⅵimdi肝F比较文件,相比较的比较文件同步滚动,但是5 plite分割窗口,两个窗口也同步,有时候挺有用的set scrollbindset noscrollbind"当使用 vimdil肝比较文件,相比较的比较文件同步滚动,但是 splite分割窗口,两个窗口也同步,有时候挺有用的将当前编辑文作的硌径设置为当前路径set autochdir将当前编辑文作的硌径设置为当前路径自动读写相关set autoreadread open files again when changed outside vim(fjzEset autowritewrite a modified buffer on each:next,…(跳到另一个文件时,自动保存上个文件)set modified自动读写相关设置VM行号set nuset nonu"设置VM行号"Tab宽度set ts=4Tab宽度自动缩进的时候,缩进尺寸set sw=4自动缩走的时候,缩进尺寸"打开VM的状态栏标尺set ru"打开VIM的状态栏标尺"显示括号配对情况set sm smartmatch显示括号配对情况开启新行时使用智能自动缩进set smartindent开启新行时使用智能自动绾进搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感set ignorecase smartcase"搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感输入搜索内容时就显示搜索结果set insearch输入搜索内容时就显示搜索结果搜索时高亮显示被找到的文本set hlsearch"搜索时高亮显示被找到的文本打开C/C++风格的自动缩进(=a{,gg=G代码美化)set cin打开C/C++风格的自动缩进(=a{,gg=G代码美化)use backspace delete a wordset backspace =indent, eol, start" indent:如果用了 set indent;s吐ai等自动缩进,想用退格鍵将字段缩进的删掉,必须设置这个选项.否则不响应.eo:如果插入模式下在行开头想通过退格键合并两行,需要设置eoL." start:要想删除此次插入前的输入需设置这个use backspace delete a word显示TAB健set listset listchars=tab >-,trail:-"显示TAB健允许 backspace和光标键跨越行边界(不习惯)set whichwrap+=≤1>h,l允许 backspace和光标键跨越行边界(不习惯)"内容多时,换行显示set wrapset nowrap内容多时换行显示"启动的时候不显示那个援助乌干达儿童的提示set shortness=atl启动的时候不显示那个援助乌干达儿童的提示"通过使用: commands命令,告诉我们文件的哪一行被改变过(不习惯)set report=0通过使用: commands命令,告诉我们文件的哪一行被改变过(不习惯)在被分割的窗口问显示空白,便于阅读(没有到效果)"st:\:当前窗口状态栏显示空格"("转义字符)stnc:-:非当前窗口状态栏显示vert:\:垂直分割线为"fold::若设置折叠功能折叠后显示--set fillchars=stl: \stlnc: -vert: L, fold diff:set fillchars=vert:stl: sting"在被分割的窗口间显示空白,使于阅读(没看到效果)带有如下符号的单词不要被换行分割set iskeyword+=$, @, %带有如下符号的单词不要被换行分割中文帮助set helplang=cn中文帮助设定doc文档目录let helptags=SVIMFILES / doc"设定doc文档目录俣留历史记录set history=500"俣留历史记录英文单词在换行时不被截断set linebreak英文单词在换行时不被截断设置每行多少个字符自动换行,加上涣行符et textwidth=80"有时不爽set textwidth=0"总不换行"设置每行多少个字符自动换行,加上换行符光标可以定位在没有实际字符的地方set ve=block"光标可以定位在没有实际字符的地方显示匹配的括号([和})set showmatch"显示匹配的括号([和}])短暂跳转到匹配括号的时(0.5set matchtime=5短暂垗转到匹纯括号的时(0.5s多少个键被敵下后执行一次交换文件刷新set update count=40"设置敲入400个字符后执行多少个键被敲下后执行一次交换文件刷新交换文件刷新后的超时时间set updatetime=50000"50秒后刷新": preserve"若设置的时间过长该命令会手工的存入交换文件中."交换文件刷新后的超时时间When using make, where should it dump the fileset makeef=errorerrWhen using make, where should it dump the file忆z如果设置本选项执行宏,寄存器和其它不通过输入的命令时屏幕不会重画另夕,窗口标题的刷新也被推迟要强迫刷新,使用; redraw." set lz" Lazyredraw/"z'(缺省关闭)set redraw=1000"Lz如果设置本选项,执行宏,寄存器和其它不通过输入的命令时屏幕不会重画另夕,窗口标题的刷新也被推迟要强迫刷新使用: redraw.简单配置"}}"Gui选项放到 gVIm"{set mousemodel=extendif has(gui runningset guimont= Monospace\13"在 Linux下设置字体的命令是:set guicursor= a: blinked0"停止光标闪烁set gulo ptions=set guioptions+=m"菜单栏set guioptions+=T"工具栏set guioptions+=b"底边浚动糸set guioptions+=("左边滚功条et guioptions+=L"垂直分隔窗口左边滚功条set guioptions+=r"右边滚动条set guioptions+=R"垂直分隔窗口右边滚动条set mousemodel=popupmap! Middle mouse:粘贴"1.间接启动全屏还剩一个 title barset lines=100"但足lnes总是30whyset columns=200"2.设置全屏系统快捷键F12,真全屏推荐system settings - Keyboard--> Shortcuts ->windows-->Toggle fullscreen mode-->F12endif"Gu选项放到gvmc"]高亮注释代码的颜色"{hi Comment cterm=6hi cOmment ctermfg=LightBlue guifg=Light Bluehi cCommentL ctermfg=DarkGray guifg=Dark Gray高亮注释代码的颜色"]高亮 menu color"{highlight Menu ctermbg=Green guibg=Greenhighlight PmenuSel ctermbg=Red guibg=Redhighlight PmenuSbar ctermbg=blue guibg=Bluehighlight Menu Thumb ctermbg=Magenta guibg=Yellow"高亮 menu color"}}"高亮当前行(列)"{set cursorlineset cursorcolumnctermfg: red()yellow(2)blue green grey brown cyan magenta fhi CursorLine term=none cterm=underline ctermbg=none ctermfg=none gui=under line guibg=#000000"hi Cursor Column term=none cterm=bold ctermbg=none ctermfg= none gui=bold guibg=#000000高亮当前行(列)}高亮其他"{{hi statusline cterm=bold ctermfg=LightGreen ctermbg=DarkMagenta gui=bold guifg=Green guibg=DarkMagenta lithi Folded term=none cterm=bold ctermbg=none ctermfg-none gui=bold guibg=#000000hi Fold Column term=none gui=none guibg=#000000hi ErrorMsg cterm=bold ctermbg=DarkRed gui=bold guibg=DarkRedhi WarningMsg cterm=bold ctermbg=LightEd gui=bold guibg=LightRed"3]高亮其他"y]字符编码(多字节)"{if has( multi byte ")set encoding=utF-8set fileencodings =ucS-bom, utF-8, gb18030, gbk, gb2312, chinese, big5, latin 1, cp936endif"字符编码(多字节)"设置C/C++语言的兵体缩进方式 eg switch case缩进"{set cinoptions=0, 1s, t0, n-2, P2S, (03S, =,5S, >1s, =1S,: 1sset cino=: 4g2t0(susset cino=: goTo(:0- switch语句之下的case语句缩进0个空格g0- class. struck,等权限控制语句(ρυ blic, protected, private)相对 class, struc等所在的坎进0个空格"t0-如果函数返回值与函数名不在同则返回值缩进0个空格(sUs-当一对括号跨越多行时,其后的行缩进前面sw指定的距离设置CC++语言的具体缩进方式eg. switch case缩进"}search搜索 visual mode)"{set hlshlsearch highlight searchset isinsearch increase searchset icignorecase ignore case when searchingset scssmartcase: if has upper case, ignore 'ignorecase option"map< eadersh *N"< eader>h to highlight all word the same to which under cursor(可以使用vm自带 shift+*)basically you press*or to search for the current selection Really usefulvnoremap * call VisualSearch(f)vnoremap # call VisualSearch(b)Function! VisualSearch(direction rangeet l: saved_ regexecute"normal! vgvylet l: pattern escape(@",\*s-llet l: pattern substitute(: pattern, nSiF a direction = 'bexecute"normal? " .l pattern. " AMelseexecute "normal/": pattern. " AMendiFlet o/=l:patternlet@"=l: saved _regendfunctionsearch #(visual mo de/777'press to clear hightlight search highlightmap : nohl设置状态栏,可以显示当前文件,字符编码,时间等"{显示状态栏set rulerset laststatus=2显示状态栏function! Cur DirOlet curdir substitute( getcwdo, SHoMe, n,greturn curdirendfunctionfunction CurTimeolet curtime= strftime("‰m‰d%H:%M:%S")return curtimeend functionif has(statusline)set statuslineset statusline+=%<%F\Filename如果路径名很长会自动缩短set statusline+=%w%h%m%rOptionsset statusline+=\%&FF1/%Yfiletypeset statusline+=\ %getcwdo1current dirset statusline+\ [A=%03.3b/H=%02.2B]"ASCll/ Hexadecimal value of charset statusline+=%=%-8(%L, %C%V%)\%p%% Right aligned file nav in foendifif has("gui_ runningset norulerset laststatus=0endif状态行显示内容「只显示名字不显示路径F当前文件名m当前文件修改状态当前文件是合只读"%Y当前文件类型"%& File format}当前文件编码‰b当前光标处宇符的ASC码值"%B当前光标处字符的十六进制值当前光标行号"%c当前光标列号%V当前光标虚拟列号(根据字符所占字节数计算)‰p当前行占总行数的百分比%%百分号"%L当前文件总行数设置状态栏,可以显示当前文件,字符编码,时间等"设置标题栏,可以显示文件名等"{if has(title)&&(has('gui running)&titleset titlestrinset titlestring+=%F\"文件名set titlestring+=%h‰m%厂%W"标记符set titlestring+=\%v: progname}"程序名endif设置标题栏,可以显示文件名等"]vim折叠功能"{折叠方式,可用选项 foldmethod来设定折叠方式: set fdm=有6种方法来选定折叠manual手工定义折昏indent更多的缩进表示更高级别的折叠expr用表达式来定义折叠syntax语法高亮来定义折叠diff对没有更改的文本进行折叠marker对文中的标志折叠常用的折叠快捷鍵2F创建折叠( marker有效)2z0打亓折叠zO对所在范围內所有嵌套的开叠点展开zC关闭当前折叠zC对所在范围内所有嵌套的折叠点进行折叠"[z到当前打开的折叠的开始处]z钶当前打开的折叠的末尾处。"zM关闭所有折叠(我喜欢)zr打开所有折叠"zR循环地打开所有折叠(我喜欢)"zE删除所有折叠zd删除当前折叠"zD循环删除( Delete)光标下的折叠,即嵌套删除折叠za若当前打开则关闭,若当前关闭则打开(这个就足够了)zA循环地打开/关闭当前折叠"zj到下一折叠的开始处(我喜欢k到上一折叠的末尾(我喜欢)set foldmethod=indentset foldmarker=oset foldmethod=marker要想在{}代码块中折叠,按空格键syntax与cvim中的\cC注释功能冲突et foldmethod=syntaxset foldmethod=markerset foldable"开始折叠set foldcolumn=o"设置折叠区或的宽度set foldlevel=o设置折叠层数为set foldopen=allset foldclose=all设置为自动关闭折叠"使"用空格打开或关闭折叠nnoremap @=((Foldclosed(line())<0?zc: ZO )vim折叠功能"}"文件比较"{{" vertical diFFs plit File_RGHT"与已打开的文件进行比较"设置不同之处显示上下二行set difFopt=context: 3"命令模式(ESC键进入)"[c跳专到下一个差异点]c跳到上一个差异点dp左边文件差异复制到右边文件(直接在键盘上行按下dp)do右边文件差异复制到左边文件(直接在健盘上行按下do)"zo隐藏相同行zC展开向同行"u撤销Ctrl+W文件切换qa!退不保存保存"Waa保存运出": diffusate重新比较件比较单词列表匹配"{ctrl+x ctrl+kapt-get install wordlistset dictionary=-. vim/dictwordlist. txtset cpt=, b, t, kset cpt=. b tset cptscan the current buffer wrapscan' is ignoredscan buffers from other windowsb scan other loaded buffers that are in the buffer listu scan the unloaded buffers that are in the buffer listUscan the buffers that are not in the buffer listk scan the files given with the dictionary'optionspell use the currently active spell checking spellkldict scan the file idict Several "k"flags can be givenpatterns are valid too. For example:>:set cpt=k/usr/dict/*k- spanishs scan the files given with the 'thesaurus optionstsr) scan the file tsr Several" s"flags can be given, patternsare valid tooi scan current and included filesd scan current and included files for de fined name or macroCTRL-X CTRL-DItag completiont same as单词列表匹配"]打开文件后自动回到上一次最后编辑的地方"{
用户评论