vim配置  PS1 PS1PS1\[\e[32m\]\u\[\e[33m\]\[\e[34m\]\h\[\e[35m\]:\w\[\e[0m\] \$ vimsetnocompatible 关闭 vi 兼容模式 syntax on 自动语法高亮set number 显示行号 set ruler 打开状态栏标尺setnusetshiftwidth2 设定 和 命令移动时的宽度为 4 set softtabstop2 使得按退格键时可以一次删掉4个空格settabstop2 设定 tab 长度为 4 set expandtab 拓展tab为空格set backup 覆盖文件时不备份setpastesetbackupext.bakset autochdir 自动切换当前目录为当前文件所在的目录 filetype plugin indent on 开启插件 setbackupcopyyes 设置备份时的行为为覆盖 setignorecase smartcase 搜索时忽略大小写但在有一个或以上大写字母时仍保持对大小写敏感 setnowrapscan 禁止在搜索到文件两端时重新搜索 set incsearch 输入搜索内容时就显示搜索结果sethlsearch 搜索时高亮显示被找到的文本 setnoerrorbells 关闭错误信息响铃 setnovisualbell 关闭使用可视响铃代替呼叫 sett_vb 置空错误铃声的终端代码 set showmatch 插入括号时短暂地跳转到匹配的对应括号 set matchtime2 短暂跳转到匹配括号的时间setmagic 设置魔术 sethidden 允许在有未保存的修改时切换缓冲区此时的修改由 vim 负责保存 setguioptions-T 隐藏工具栏 setguioptions-m 隐藏菜单栏 set smartindent 开启新行时使用智能自动缩进setbackspaceindent,eol,start 不设定在插入状态无法用退格键和 Delete 键删除回车符 set cmdheight1 设定命令行的行数为1setlaststatus2 显示状态栏 (默认值为 1, 无法显示状态栏) set statusline\ %%F[%1*%M%*%n%R%H]%\ %y\ %0(%{fileformat}\ %{encoding}\ %c:%l/%L%)\ 设置在状态行显示的信息set foldenable 开始折叠set foldmethodsyntax 设置语法折叠set foldcolumn0 设置折叠区域的宽度setlocal foldlevel1 设置折叠层数为set foldcloseall 设置为自动关闭折叠nnoremap space ((foldclosed(line(.)) 0) ? zc : zo)CR 用空格键来开关折叠 return OS type, eg: windows, or linux, mac, et.st.. function! MySys() if has(win16) || has(win32) || has(win64) || has(win95) return windows elseif has(unix) return linux endif endfunction 用户目录变量$VIMFILESifMySys()windowslet$VIMFILES$VIM./vimfileselseif MySys()linuxlet$VIMFILES$HOME./.vimendif 设定doc文档目录 let helptags$VIMFILES./doc 设置字体 以及中文支持ifhas(win32)setguifontInconsolata:h12:cANSI endif 配置多语言环境 if has(multi_byte) UTF-8 编码setencodingutf-8settermencodingutf-8setformatoptionsmMsetfencsutf-8,gbkifv:lang~?^\(zh\)\|\(ja\)\|\(ko\)setambiwidthdouble endififhas(win32)source$VIMRUNTIME/delmenu.vimsource$VIMRUNTIME/menu.vim language messages zh_CN.utf-8 endifelseechoerrSorry, this version of (g)vim was not compiled with multi_byteendif Buffers操作快捷方式! nnoremap C-RETURN :bnextCR nnoremap C-S-RETURN :bpreviousCR Tab操作快捷方式!nnoremapC-TAB:tabnextCRnnoremapC-S-TAB:tabprevCR关于tab的快捷键 map tn :tabnextcr map tp :tabpreviouscr map td :tabnew .cr map te :tabedit map tc :tabclosecr窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动 光标到上方窗口,需要c-wc-wk,非常麻烦,现在重映射为c-k,切换的时候会变得非常方便. nnoremap C-h C-wh nnoremap C-j C-wj nnoremap C-k C-wk nnoremap C-l C-wl 一些不错的映射转换语法如果在一个文件中混合了不同语言时有用 nnoremapleader1:setfiletypexhtmlCRnnoremapleader2:setfiletypecssCRnnoremapleader3:setfiletypejavascriptCRnnoremapleader4:setfiletypephpCRsetffunix set fileformatsunix,dos,mac nmapleaderfd :sefileformatdosCR nmap leaderfu :se fileformatunixCR use Ctrl[l|n|p|cc]to list|next|previous|jump to count the result map C-xl ESC:clCR mapC-xnESC:cnCR map C-xp ESC:cpCR mapC-xcESC:ccCR 让 Tohtml 产生有 CSS 语法的 html syntax/2html.vim可以用:runtime!syntax/2html.vimlethtml_use_css1 Python 文件的一般设置比如不要 tab 等 autocmd FileType python set tabstop4 shiftwidth4 expandtab autocmd FileType python map F12 :!python %CR 选中状态下 Ctrlc 复制 vmapC-cy 打开javascript折叠letb:javascript_fold1 打开javascript对dom、html和css的支持 let javascript_enable_domhtmlcss1 设置字典 ~/.vim/dict/文件的路径----------------------------------------------------------------- plugin - bufexplorer.vim Buffers切换\be 全屏方式查看全部打开的文件列表 \bv 左右方式查看\bs 上下方式查看----------------------------------------------------------------- ----------------------------------------------------------------- plugin - taglist.vim 查看函数列表需要ctags程序 F4 打开隐藏taglist窗口----------------------------------------------------------------- if MySys() windows 设定windows系统中ctags程序的位置letTlist_Ctags_Cmd.$VIMRUNTIME./ctags.exeelseif MySys()linux 设定windows系统中ctags程序的位置 let Tlist_Ctags_Cmd /usr/bin/ctags endif nnoremap silentF4 :TlistToggleCR let Tlist_Show_One_File 1 不同时显示多个文件的tag只显示当前文件的letTlist_Exit_OnlyWindow1 如果taglist窗口是最后一个窗口则退出vim let Tlist_Use_Right_Window 1 在右侧窗口中显示taglist窗口letTlist_File_Fold_Auto_Close1 自动折叠当前非编辑文件的方法列表 let Tlist_Auto_Open 0 let Tlist_Auto_Update 1 let Tlist_Hightlight_Tag_On_BufEnter 1 let Tlist_Enable_Fold_Column 0 let Tlist_Process_File_Always 1 let Tlist_Display_Prototype 0 let Tlist_Compact_Format 1 ----------------------------------------------------------------- plugin - mark.vim 给各种tags标记不同的颜色便于观看调式的插件。 \m mark or unmark the word under(or before)the cursor\rmanually input a regular expression. 用于搜索. \nclearthis mark(i.e. the mark under the cursor), orclearall highlighted marks. \* 当前MarkWord的下一个 \# 当前MarkWord的上一个 \/ 所有MarkWords的下一个\? 所有MarkWords的上一个----------------------------------------------------------------- ----------------------------------------------------------------- plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录 :ERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree o 打开关闭文件或者目录 t 在标签页中打开 T 在后台标签页中打开!执行此文件 p 到上层目录 P 到根目录 K 到第一个节点 J 到最后一个节点 u 打开上层目录 m 显示文件系统菜单添加、删除、移动操作 r 递归刷新当前目录 R 递归刷新当前根目录----------------------------------------------------------------- F3 NERDTree 切换 mapF3:NERDTreeToggleCRimapF3ESC:NERDTreeToggleCR:setpastetoggleF11鼠标模式 mapF7:setmouseaCRmap F8 :set mouseCR 是否可见字符 mapF8:set invlistCR----------------------------------------------------------------- plugin - NERD_commenter.vim 注释代码用的 [count],cc 光标以下count行逐行添加注释(7,cc) [count],cu 光标以下count行逐行取消注释(7,cu) [count],cm 光标以下count行尝试添加块注释(7,cm) ,cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。 注count参数可选无则默认为选中行或当前行 -----------------------------------------------------------------letNERDSpaceDelims1 让注释符与语句之间留一个空格 let NERDCompactSexyComs1 多行注释时样子更好看 mapF10:set backupCR----------------------------------------------------------------- plugin - DoxygenToolkit.vim 由注释生成文档并且能够快速生成函数标准注释----------------------------------------------------------------- let g:DoxygenToolkit_commentTypeC letg:DoxygenToolkit_authorNamek00437161letg:DoxygenToolkit_licenseTagCopyright(C), 2017 - 2017, Huawei Tech. Co., Ltd. ALL RIGHTS RESERVED.lets:licenseTagingroup manager\enterletg:DoxygenToolkit_briefTag_pres:licenseTag.* brief letg:DoxygenToolkit_paramTag_preparam [in]letg:DoxygenToolkit_returnTagreturn Statuslet g:DoxygenToolkit_authorTagauthor let g:DoxygenToolkit_versionString1.0 let g:DoxygenToolkit_briefTag_funcNameyes let g:doxygen_enhanced_color 1 mapF10:DoxAuthorCRmapleaderdh :DoxAuthorCRmapleaderdf :DoxCRmapleaderdb :DoxBlockCRmapleaderdc a /* */LEFTLEFTLEFTnmapF6:DoxCRmapF7:DoxAuthorCRmapF2:Ackspaceletg:ackprgag --nogroup --nocolor --column----------------------------------------------------------------- plugin – ZenCoding.vim 很酷的插件HTML代码生成 插件最新版http://github.com/mattn/zencoding-vim 常用命令可看http://nootn.com/blog/Tool/23/----------------------------------------------------------------- ----------------------------------------------------------------- plugin – checksyntax.vim JavaScript常见语法错误检查 默认快捷方式为 F5----------------------------------------------------------------- let g:checksyntax_auto 0 不自动检查----------------------------------------------------------------- plugin - NeoComplCache.vim 自动补全插件----------------------------------------------------------------- let g:AutoComplPop_NotEnableAtStartup 1 let g:NeoComplCache_EnableAtStartup 1 let g:NeoComplCache_SmartCase 1 let g:NeoComplCache_TagsAutoUpdate 1 let g:NeoComplCache_EnableInfo 1 let g:NeoComplCache_EnableCamelCaseCompletion 1 let g:NeoComplCache_MinSyntaxLength 3 let g:NeoComplCache_EnableSkipCompletion 1 let g:NeoComplCache_SkipInputTime 0.5 let g:NeoComplCache_SnippetsDir $VIMFILES./snippets TABcompletion. inoremapexprTABpumvisible()?\C-n:\TAB snippets expand key imap silent C-e Plug(neocomplcache_snippets_expand) smap silent C-e Plug(neocomplcache_snippets_expand) cscope settingifhas(cscope)setcsprg/usr/bin/cscopesetcsto1setcstsetnocsverb add any database in current directory if filereadable(cscope.out) cs add cscope.out endif set csverb endif nmap C-s :cs find s C-Rexpand(cword)CRCR nmap C-g :cs find g C-Rexpand(cword)CRCR nmap C-c :cs find c C-Rexpand(cword)CRCR nmap C-t :cs find t C-Rexpand(cword)CRCR nmap C-e :cs find e C-Rexpand(cword)CRCR nmap C-f :cs find f C-Rexpand(cfile)CRCR nmap C-i :cs find i ^C-Rexpand(cfile)CR$CR nmap C-d :cs find d C-Rexpand(cword)CRCR autocmd BufReadPost * \ if line(\)0line(\)line($) | \ exe normal g\|\endi