Vim-详细配置.doc_第1页
Vim-详细配置.doc_第2页
Vim-详细配置.doc_第3页
Vim-详细配置.doc_第4页
Vim-详细配置.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vim或Gvim详细配置 配置一览:1、括号自动匹配 支持所有的括号类型以及引号等2、一键添加语法模板、作者、时间等信息3、单源文件一键编译、运行 已配置支持所有主流编程语言4、代码补全、函数跳转 由ctags实现5、语法结构智能补全 由snipMate实现6、在Vim里写博客、Wiki 由vimWiki实现7、添加了Vim文档的简体中文版8、更多功能详见配置代码,本处提供配置文件和自定义配置文件夹的下载,下载链接请见本文末尾经过着色的配置文件:/code/linux/vim/_vimrc.html-使用说明:如果想图省事,那你就重新安装你的Vim到D:AppsGvim,然后执行以下步骤:1、把整个vimfiles目录复制到D:AppsGvim目录下覆盖原有目录2、将ctags.exe、cscope.exe、unzip.exe复制到D:AppsGvimvim73目录3、将D:AppsGvimvim73添加进环境变量4、把_vimrc文件复制到D:AppsGvim目录下覆盖原有文件有完整版和无Vimwiki版,建议使用后一版本如需使用wiki功能则可使用完整版,并参考/code/linux/vim/2011-05-18.html完成环境的配置配置文件中,凡涉及具体路径信息的请更换为你自己本机实际路径,凡涉及姓名、邮箱的请更换为你自己的姓名、邮箱-ctags使用方法简要介绍:比如我想添加C/C+语言的代码补全,并能在函数调用间实现跳转,请执行以下步骤:1、首先确保系统能够找到ctags.exe,也就是ctags.exe添加到了系统环境变量2、以MinGW为例,到你编译器安装目录的include目录(比如C:MinGWinclude)执行ctags -R -languages=c,c+,这将在include目录下生成一个tags文件3、在_vimrc文件中添加以下一行:set tags+=C:MinGWincludetags4、以后编辑C/C+源文件时,按Ctrl + P即可拥有C/C+的代码提示。比如,敲入一个pr,然后按这个快捷键,Vim将自动弹出包括printf在内的众多相关变量和函数名供你选择5、函数调用跳转:将光标移动某个函数名上,按Ctrl + ,Vim将跳转到该函数的定义处,按Ctrl + T即可返回以上只是ctags简单的用法,更专业的介绍请参考Google-header.html和footer.html是我博客的wiki模板,如果你想使用vimwiki则可以借鉴使用教程资料文件夹附带了几份Vim参考材料,可以辅助Vim的使用本帖附件下载地址:/download/Vim2012-04-01.7z标签:GVimVim代码片段(3)图片 gvim.jpg代码 _vimrc(完整版)view sourceprint?001 - Author: Ruchee002 - Email: 003 - WebSite: 004 - Date: 2012-01-04005006 Ctrl + K -光标移上一行末尾007 Ctrl + H -光标移行首008 Ctrl + L -光标移行尾009 Ctrl + Z -取代ESC模式键 和Lingos快捷键有冲突010 Ctrl + S -保存文件011 Ctrl + C -编译 支持C/C+、Java、Haskell012 Ctrl + R -运行 支持C/C+、Java、Haskell、Lua、Perl、Python、Ruby013 Ctrl + -转到函数定义014 Ctrl + T -返回调用函数015 Ctrl + E -添加注释 插入模式下 添加的是C语言的行注释,所以适用于C/C+/Java等016 Ctrl + E -一步加载语法模板和作者、时间信息 非插入模式下 本质是:LoadTemplate和:AuthorInfoDetect的结合017018 -单词补全019 -整行补全020 Tab键 -插入模式下的全功能语法结构补全 snipMate插件021022 wm -开启文档浏览窗口023 ww -进入vimWiki模式024025 za -打开或关闭当前折叠026 zM -关闭所有折叠027 zR -打开所有折叠028029 :set syntax=cpp -手动选择语法高亮 或 :set filetype=cpp030031 :%!xxd -转储二进制文件,以十六进制形式显示032 :%!xxd -r -还原二进制文件033034035036 - 主要插件详细用法说明 -037038 :Tlist -呼出变量和函数列表 TagList插件039 :FencView -查看文件编码和更改文件编码 FencView插件040 :LoadTemplate -呼出语法模板 Load_Template插件041 :AuthorInfoDetect -添加作者、时间等信息 NERD_commenter & authorinfo插件042043 - a.vim 自动切换C/C+同名头文件 -044045 :A -切换同名头文件并独占整个屏幕046 :AS -切换同名头文件并垂直分屏,头文件在上047 :AV -切换同名头文件并水平分割,头文件在左048049 - mark.vim 追踪高亮指定关键字 -050051 m -normal模式下,在想要高亮的单词上面敲击m即可高亮或取消高亮该单词052 :Mark -取消所有高亮053 :Mark abc -指定高亮单词 abc 或取消高亮 abc054055 - NERDTree 智能文件浏览器 -056057 :NERDTree -启动NERDTree插件058 o 小写 -切换当前文件或目录的打开、关闭状态059 u -打开上层目录060 p 小写 -返回上层目录061 P 大写 -返回根目录062 K -转到当前目录第一个节点063 J -转到当前目录最后的节点064 m -显示文件系统菜单 增、删、移065 ? -弹出帮助菜单066 q -退出该插件067068 - snipMate 语法结构补全 -069 - 例如:在编辑C/C+源文件时,输入单词main,然后按TAB键,Vim将自动补全成完整的main函数070 - 更多补全请自行查看vimfiles目录下的snippets文件夹071 - 此处只说明了C/C+的补全用法,很多经过了我的修改和调整,你也可以自行调整成适合自己的补全样式072073 main - C/C+语言 main 函数074 inc - #include 075 iinc - #include 076 incs - #include or #include 077 using - using namespace std;078 def - #define079 un - unsigned080 re - return081 p - printf(n);082 s - scanf();083 fpr - fprintf(abc, n);084 if - if()085 elif - elseif()086 el - else087 t - a ? b : c088 do - dowhile();089 wh - while()090 for - for()091 forr - for(i = 0; i 10; i+)092 cl - class abc;093 fun - void abc()094 fund - void abc();095 td - typedef a b;096 st - struct abc;097 tds - typedef struct _abcabc;098 tde - typedef enum;099 . - 100101102103104105 配色方案106colorscheme desert 灰褐色107108 字体、字号109set guifont=Courier New:h10110111set tabstop=4 设置tab键的宽度112set shiftwidth=4 换行时行间交错使用4个空格113set autoindent 自动对齐114set backspace=2 设置退格键可用115set cindent shiftwidth=4 自动缩进4空格116set smartindent 智能自动缩进117set ai! 设置自动缩进118set nu! 显示行号119set showmatch 显示括号配对情况120set mouse=a 启用鼠标121set ruler 右下角显示光标位置的状态行122set incsearch 查找book时,当输入/b时会自动找到123set hlsearch 开启高亮显示结果124set incsearch 开启实时搜索功能125set nowrapscan 搜索到文件两端时不重新搜索126set nocompatible 关闭兼容模式127set vb t_vb= 关闭提示音128set cursorline 突出显示当前行129set hidden 允许在有未保存的修改时切换缓冲区130set list 显示Tab符,使用一高亮竖线代替131set listchars=tab:| ,132133134syntax enable 打开语法高亮135syntax on 开启文件类型侦测136filetype indent on 针对不同的文件类型采用不同的缩进格式137filetype plugin on 针对不同的文件类型加载对应的插件138filetype plugin indent on139140if has(gui_running)141au GUIEnter * simalt x 窗口启动时自动最大化142set guioptions-=m 隐藏菜单栏143set guioptions-=T 隐藏工具栏144set guioptions-=L 隐藏左侧滚动条145set guioptions-=r 隐藏右侧滚动条146set guioptions-=b 隐藏底部滚动条147set showtabline=0 隐藏Tab栏148endif149150set writebackup 设置无备份文件151set nobackup152set autochdir 设定文件浏览器目录为当前目录153set nowrap 设置不自动换行154set foldmethod=syntax 选择代码折叠类型155set foldlevel=100 禁止自动折叠156157 每行超过80个的字符用下划线标示158au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.hs,*.vim 2match Underlined /.%81v/159160161 编码设置162set encoding=utf-8163set fileencodings=utf-8,cp936,gbk,gb18030,big5,latin1164165166 For Haskell167:let hs_highlight_delimiters=1 高亮定界符168:let hs_highlight_boolean=1 把True和False识别为关键字169:let hs_highlight_types=1 把基本类型的名字识别为关键字170:let hs_highlight_more_types=1 把更多常用类型识别为关键字171:let hs_highlight_debug=1 高亮调试函数的名字172:let hs_allow_hash_operator=1 阻止把#高亮为错误173174175set laststatus=2 开启状态栏信息176set cmdheight=2 命令行的高度,默认为1,这里设为2177178 状态行显示的内容 包括系统平台、文件类型、坐标、所占比例、时间等179set statusline=%F%m%r%h%w FORMAT=%&ff TYPE=%Y POS=%l,%v%p% %y%r%m%*%= %strftime(%d/%m/%y - %H:%M)180181182183 # 括号、引号、中括号等自动匹配 # 184185:inoremap ( ()i186187:inoremap ) =ClosePair()188189:inoremap i190191:inoremap =ClosePair()192193:inoremap i194195:inoremap =ClosePair()196197:inoremap i198199:inoremap =ClosePair()200201:inoremap i202203:inoremap i204205:inoremap i206207function ClosePair(char)208if getline(.)col(.) - 1 = a:char209return 210else211return a:char212endif213endf214215216217218 # 自定义快捷键 # 219220 Ctrl + K 将光标移到上一行的末尾221imap kA222223 Ctrl + L 将光标移到行尾224imap A225226 Ctrl + H 将光标移到行首227imap I228229 Ctrl + Z 取代ESC模式键230:inoremap 231232 Ctrl + S 保存文件233map :w234imap :wa235vmap :w236237 Ctrl + E 一步加载语法模板和作者、时间信息 非插入模式238map :LoadTemplate:AuthorInfoDetectGi239vmap :LoadTemplate:AuthorInfoDetectGi240241 Ctrl + E 在当前行添加C语言行注释 插入模式242imap /* */hhi243244245246247248 # 第三方插件 # 249250 WinManager 直接输入 wm 命令即可开启文件浏览窗口251let g:winManagerWindowLayout=FileExplorer252nmap wm :WMToggle253254 MiniBufExplorer 多个文件切换 可使用鼠标双击相应文件名进行切换255let g:miniBufExplMapWindowNavVim=1256let g:miniBufExplMapWindowNavArrows=1257let g:miniBufExplMapCTabSwitchBufs=1258let g:miniBufExplModSelTarget=1259260 TagList 键入:Tlist开启261let Tlist_Show_One_File=1 只显示当前文件的tags262let Tlist_Exit_OnlyWindow=1 如果Taglist窗口是最后一个窗口则退出Vim263let Tlist_Use_Right_Window=1 在右侧窗口中显示264265 ctags266 -先在项目顶层目录执行ctags -R,然后打开源文件,在命令模式中执行如:set tags=././tags267 -这样在函数名上按 即可转到函数定义,按 可以返回调用地址268 -如果长时间需要在该目录工作,也可以将tags路径写入配置文件269270set tags+=C:DevelopMinGWincludetags For C/C+271set tags+=C:DevelopGTKincludetags For GTK+272set tags+=C:DevelopLualuatags For Lua273set tags+=G:Cygwinusrincludetags For Cygwin274275 TxtBrowser 高亮TXT文本文件276au BufRead,BufNewFile *.txt setlocal ft=txt277278 fencview 自动编码识别 :FencView 查看文件编码和更改文件编码279let g:fencview_autodetect=1280281 Load_Template 根据文件后缀自动加载模板,使用:LoadTemplate呼出282let g:template_path=D:AppsGvimvimfilestemplate283284 NERD_commenter & authorinfo 自动添加作者、时间等信息,使用:AuthorInfoDetect呼出285let g:vimrc_author=Ruchee286let g:vimrc_email=287let g:vimrc_homepage=288289290291292293 # 一键保存和编译 # 294 # 如此处没有配置你需要的编程语言,请参照示例自行配置,很简单的295296 编译C源文件297func! CompileGcc()298exec w299let compilecmd=!gcc -Wall -pedantic -std=c99 300let compileflag=-o %301exec compilecmd. % .compileflag302endfunc303304 编译C+源文件305func! CompileCpp()306exec w307let compilecmd=!g+ -Wall -pedantic -std=c+98 308let compileflag=-o %309exec compilecmd. % .compileflag310endfunc311312 编译Java源文件313func! CompileJava()314exec w315exec !javac %316endfunc317318 编译Haskell源文件319func! CompileHaskell()320exec w321let compilecmd=!ghc -make 322let compileflag=-o %323exec compilecmd. % .compileflag324endfunc325326 运行Lua源文件327func! RunLua()328exec w329exec !lua %330endfunc331332 运行Perl源文件333func! RunPerl()334exec w335exec !perl %336endfunc337338 运行Python源文件339func! RunPython()340exec w341exec !python %342endfunc343344 运行Ruby源文件345func! RunRuby()346exec w347exec !ruby %348endfunc349350351 根据文件类型自动选择相应的编译函数352func! CompileCode()353exec w354if &filetype = c355exec call CompileGcc()356elseif &filetype = cpp357exec call CompileCpp()358elseif &filetype = java359exec call CompileJava()360elseif &filetype = haskell361exec call CompileHaskell()362elseif &filetype = lua363exec call RunLua()364elseif &filetype = perl365exec call RunPerl()366elseif &filetype = python367exec call RunPython()368elseif &filetype = ruby369exec call RunRuby()370endif371endfunc372373 运行可执行文件374func! RunResult()375exec w376if &filetype = c377exec ! %378elseif &filetype = cpp379exec ! %380elseif &filetype = java381exec !java %382elseif &filetype = haskell383exec ! %384elseif &filetype = lua385exec !lua %.lua386elseif &filetype = perl387exec !perl %.pl388elseif &filetype = python389exec !python %.py390elseif &filetype = ruby391exec !ruby %.rb392endif393endfunc394395396 Ctrl + C 一键保存、编译397map :call CompileCode()398imap :call CompileCode()399vmap :call CompileCode()400401 Ctrl + R 一键保存、运行402map :call RunResult()403imap :call RunResult()404vmap :call RunResult()405406407408409 # VimWiki 写作助手 # 410411 使用鼠标映射412let g:vimwiki_use_mouse = 1413414 不要将驼峰式词组作为 Wiki 词条415let g:vimwiki_camel_case = 0416417 声明可以在wiki里面使用的HTML标签418let g:vimwiki_valid_html_tags=b,i,s,u,sub,sup,kbd,br,hr,div,del,code,red,center,left,right,h4,h5,h6,pre419420let g:vimwiki_list = 421 path: D:/Apps/Gvim/mysite/wiki,422 path_html: D:/Apps/Gvim/mysite/html/,423 html_header: D:/Apps/Gvim/mysite/template/header.html,424 html_footer: D:/Apps/Gvim/mysite/template/footer.html,425 auto_export: 1,426 nested_syntaxes: Asm: asm, C: c, C+: cpp,Java: java, Haskell: haskell, Lua: lua, Perl: perl, Python: python, PHP: php, HTML: html, Bash: sh, Vim: vim, Make: make, Automake: AUTOMAKE,代码 _vimrc(无Vimwiki版)view sourceprint?001 配色方案002colorscheme desert 灰褐色003004 字体、字号005set guifont=Courier New:h10006007set tabstop=4 设置tab键的宽度008set shiftwidth=4 换行时行间交错使用4个空格009set autoindent 自动对齐010set backspace=2 设置退格键可用011set cindent shiftwidth=4 自动缩进4空格012set smartindent 智能自动缩进013set ai! 设置自动缩进014set nu! 显示行号015set showmatch 显示括号配对情况016set mouse=a 启用鼠标017set ruler 右下角显示光标位置的状态行018set incsearch 查找book时,当输入/b时会自动找到019set hlsearch 开启高亮显示结果020set incsearch 开启实时搜索功能021set nowrapscan 搜索到文件两端时不重新搜索022set nocompatible 关闭兼容模式023set vb t_vb= 关闭提示音024set cursorline 突出显示当前行025set hidden 允许在有未保存的修改时切换缓冲区026set list 显示Tab符,使用一高亮竖线代替027set listchars=tab:| ,028029030syntax enable 打开语法高亮031syntax on 开启文件类型侦测032filetype indent on 针对不同的文件类型采用不同的缩进格式033filetype plugin on 针对不同的文件类型加载对应的插件034filetype plugin indent on035036if has(gui_running)037au GUIEnter * simalt x 窗口启动时自动最大化038set guioptions-=m 隐藏菜单栏039set guioptions-=T 隐藏工具栏040set guioptions-=L 隐藏左侧滚动条041set guioptions-=r 隐藏右侧滚动条042set guioptions-=b 隐藏底部滚动条043set showtabline=0 隐藏Tab栏044endif045046set writebackup 设置无备份文件047set nobackup048set autochdir 设定文件浏览器目录为当前目录049set nowrap 设置不自动换行050set foldmethod=syntax 选择代码折叠类型051set foldlevel=100 禁止自动折叠052053 每行超过80个的字符用下划线标示054au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.hs,*.vim 2match Underlined /.%81v/055056057 编码设置058set encoding=utf-8059set fileencodings=utf-8,cp936,gbk,gb18030,big5,latin1060061062 For Haskell063:let hs_highlight_delimiters=1 高亮定界符064:let hs_highlight_boolean=1 把True和False识别为关键字065:let hs_highlight_types=1 把基本类型的名字识别为关键字066:let hs_highlight_more_types=1 把更多常用类型识别为关键字067:let hs_highlight_debug=1 高亮调试函数的名字068:let hs_allow_hash_operator=1 阻止把#高亮为错误069070071set laststatus=2 开启状态栏信息072set cmdheight=2 命令行的高度,默认为1,这里设为2073074 状态行显示的内容 包括系统平台、文件类型、坐标、所占比例、时间等075set statusline=%F%m%r%h%w FORMAT=%&ff TYPE=%Y POS=%l,%v%p% %y%r%m%*%= %strftime(%d/%m/%y - %H:%M)076077078079 # 括号、引号、中括号等自动匹配 # 080081:inoremap ( ()i082083:inoremap ) =ClosePair()084085:inoremap i086087:inoremap =ClosePair()088089:inoremap i090091:inoremap =ClosePair()092093:inoremap i094095:inoremap =ClosePair()096097:inoremap i098099:inoremap i100101:inoremap i102103function ClosePair(char)104if getline(.)col(.) - 1 = a:char105return 106else107return a:char108endif109endf110111112113114 # 自定义快捷键 # 115116 Ctrl + K 将光标移到上一行的末尾117imap kA118119 Ctrl + L 将光标移到行尾120imap A121122 Ctrl + H 将光标移到行首123imap I124125 Ctrl + Z 取代ESC模式键126:inoremap 127128 Ctrl + S 保存文件129map :w130imap :wa131vmap :w132133 Ctrl + E 一步加载语法模板和作者、时间信息 非插入模式134map :LoadTemplate:AuthorInfoDetectGi135vmap :LoadTemplate:AuthorInfoDetectGi136137 Ctrl + E 在当前行添加C语言行注释 插入模式138imap /* */hhi139140141142143144 # 第三方插件 # 145146 WinManager 直接输入 wm 命令即可开启文件浏览窗口147let g:winManagerWindowLayout=FileExplorer148nmap wm :WMToggle149150 MiniBufExplorer 多个文件切换 可使用鼠标双击相应文件名进行切换151let g:miniBufExplMapWindowNavVim=1152let g:miniBufExplMapWindowNavArrows=1153let g:miniBufExplMapCTabSwitchBufs=1154let g:miniBufExplModSelTarget=1155156 TagList 键入:Tlist开启157let Tlist_Show_One_File=1 只显示当前文件的tags158let Tlist_Exit_OnlyWindow=1 如果Taglist窗口是最后一个窗口则退出Vim159let Tlist_Use_Right_Window=1 在右侧窗口中显示160161 ctags162 -先在项目顶层目录执行ctags -R,然后打开源文件,在命令模式中执行如:set tags=././tags163 -这样在函数名上按 即可转到函数定义,按 可以返回调用地址164 -如果长时间需要在该目录工作,也可以将tags路径写入配置文件165166set tags+=C:DevelopMinGWincludetags For C/C+167set tags+=C:DevelopGTKincludetags For GTK+168set tags+=C:DevelopLualuatags For Lua169set tags+=G:Cygwinusrincludetags For Cygwin170171 TxtBrowser 高亮TXT文本文件172au BufRead,BufNewFile *.txt setlocal ft=txt173174 fencview 自动编码识别 :FencView 查看文件编码和更改文件编码175let g:fencview_autodetect=1176177 Load_Template 根据文件后缀

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论