很全面的.vimrc配置

"=========================================================================

" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console 
" 
" Last Change: 2010年08月02日 15时13分 
" 
" Version: 1.80 
" 
"========================================================================= 

set nocompatible " 关闭 vi 兼容模式 
syntax on " 自动语法高亮 
colorscheme default " 设定配色方案 
set number " 显示行号 
set cursorline " 突出显示当前行 
set ruler " 打开状态栏标尺 
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4 
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格 
set tabstop=4 " 设定 tab 长度为 4 
set nobackup " 覆盖文件时不备份 
set autochdir " 自动切换当前目录为当前文件所在的目录 
filetype plugin indent on " 开启插件 
set backupcopy=yes " 设置备份时的行为为覆盖 
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感 
set nowrapscan " 禁止在搜索到文件两端时重新搜索 
set incsearch " 输入搜索内容时就显示搜索结果 
set hlsearch " 搜索时高亮显示被找到的文本 
set noerrorbells " 关闭错误信息响铃 
set novisualbell " 关闭使用可视响铃代替呼叫 
set t_vb= " 置空错误铃声的终端代码 
" set showmatch " 插入括号时,短暂地跳转到匹配的对应括号 
" set matchtime=2 " 短暂跳转到匹配括号的时间 
set magic " 设置魔术 
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存 
set guioptions-=T " 隐藏工具栏 
set guioptions-=m " 隐藏菜单栏 
set smartindent " 开启新行时使用智能自动缩进 
set backspace=indent,eol,start 
" 不设定在插入状态无法用退格键和 Delete 键删除回车符 
set cmdheight=1 " 设定命令行的行数为 1 
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏) 
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ 
" 设置在状态行显示的信息 
set foldenable " 开始折叠 
set foldmethod=syntax " 设置语法折叠 
set foldcolumn=0 " 设置折叠区域的宽度 
setlocal foldlevel=1 " 设置折叠层数为 
" set foldclose=all " 设置为自动关闭折叠 
" 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 

" 用户目录变量$VIMFILES 
if MySys() == "windows" 
let $VIMFILES = $VIM.'/vimfiles' 
elseif MySys() == "linux" 
let $VIMFILES = $HOME.'/.vim' 
endif 

" 设定doc文档目录 
let helptags=$VIMFILES.'/doc' 

" 设置字体 以及中文支持 
if has("win32") 
set guifont=Inconsolata:h12:cANSI 
endif 

" 配置多语言环境 
if has("multi_byte") 
" UTF-8 编码 
set encoding=utf-8 
set termencoding=utf-8 
set formatoptions+=mM 
set fencs=utf-8,gbk 

if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)' 
set ambiwidth=double 
endif 

if has("win32") 
source $VIMRUNTIME/delmenu.vim 
source $VIMRUNTIME/menu.vim 
language messages zh_CN.utf-8 
endif 
else 
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte" 
endif 

" Buffers操作快捷方式! 
nnoremap <C-RETURN> :bnext<CR> 
nnoremap <C-S-RETURN> :bprevious<CR> 

" Tab操作快捷方式! 
nnoremap <C-TAB> :tabnext<CR> 
nnoremap <C-S-TAB> :tabprev<CR> 

"关于tab的快捷键 
map tn :tabnext<cr>  
map tp :tabprevious<cr>  
map tt :tabnew .<cr>  
map te :tabedit  
map tc :tabclose<cr> 

"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动 
"光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的 
"时候会变得非常方便. 
nnoremap <C-h> <C-w>h 
nnoremap <C-j> <C-w>j 
nnoremap <C-k> <C-w>k 
nnoremap <C-l> <C-w>l 

"一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用) 
nnoremap <leader>1 :set filetype=xhtml<CR> 
nnoremap <leader>2 :set filetype=css<CR> 
nnoremap <leader>3 :set filetype=javascript<CR> 
nnoremap <leader>4 :set filetype=php<CR> 

" set fileformats=unix,dos,mac 
" nmap <leader>fd :se fileformat=dos<CR> 
" nmap <leader>fu :se fileformat=unix<CR> 

" use Ctrl+[l|n|p|cc] to list|next|previous|jump to count the result 
map <C-x>l <ESC>:cl<CR> 
map <C-x>n <ESC>:cn<CR> 
map <C-x>p <ESC>:cp<CR> 
map <C-x>c <ESC>:cc<CR> 


" 让 Tohtml 产生有 CSS 语法的 html 
" syntax/2html.vim,可以用:runtime! syntax/2html.vim 
let html_use_css=1 

" Python 文件的一般设置,比如不要 tab 等 
autocmd FileType python set tabstop=4 shiftwidth=4 expandtab 
autocmd FileType python map <F12> :!python %<CR> 

" 选中状态下 Ctrl+c 复制 
vmap <C-c> "+y 

" 打开javascript折叠 
let b:javascript_fold=1 
" 打开javascript对dom、html和css的支持 
let javascript_enable_domhtmlcss=1 
" 设置字典 ~/.vim/dict/文件的路径 
autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict 
autocmd filetype css set dictionary=$VIMFILES/dict/css.dict 
autocmd filetype php set dictionary=$VIMFILES/dict/php.dict 

"----------------------------------------------------------------- 
" plugin - bufexplorer.vim Buffers切换 
" \be 全屏方式查看全部打开的文件列表 
" \bv 左右方式查看 \bs 上下方式查看 
"----------------------------------------------------------------- 


"----------------------------------------------------------------- 
" plugin - taglist.vim 查看函数列表,需要ctags程序 
" F4 打开隐藏taglist窗口 
"----------------------------------------------------------------- 
if MySys() == "windows" " 设定windows系统中ctags程序的位置 
let Tlist_Ctags_Cmd = '"'.$VIMRUNTIME.'/ctags.exe"' 
elseif MySys() == "linux" " 设定windows系统中ctags程序的位置 
let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
endif 
nnoremap <silent><F4> :TlistToggle<CR> 
let Tlist_Show_One_File = 1 " 不同时显示多个文件的tag,只显示当前文件的 
let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim 
let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口 
let Tlist_File_Fold_Auto_Close=1 " 自动折叠当前非编辑文件的方法列表 
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 
" \r manually input a regular expression. 用于搜索. 
" \n clear this mark (i.e. the mark under the cursor), or clear all 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 切换 
map <F3> :NERDTreeToggle<CR> 
imap <F3> <ESC>:NERDTreeToggle<CR> 


"----------------------------------------------------------------- 
" plugin - NERD_commenter.vim 注释代码用的, 
" [count],cc 光标以下count行逐行添加注释(7,cc) 
" [count],cu 光标以下count行逐行取消注释(7,cu) 
" [count],cm 光标以下count行尝试添加块注释(7,cm) 
" ,cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。 
" 注:count参数可选,无则默认为选中行或当前行 
"----------------------------------------------------------------- 
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格 
let NERDCompactSexyComs=1 " 多行注释时样子更好看 


"----------------------------------------------------------------- 
" plugin - DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释 
"----------------------------------------------------------------- 
let g:DoxygenToolkit_authorName="Asins - asinsimple AT gmail DOT com" 
let g:DoxygenToolkit_briefTag_funcName="yes" 
map <leader>da :DoxAuthor<CR> 
map <leader>df :Dox<CR> 
map <leader>db :DoxBlock<CR> 
map <leader>dc a /* */<LEFT><LEFT><LEFT> 


"----------------------------------------------------------------- 
" 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' 
" <TAB> completion. 
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" 
" snippets expand key 
imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) 
smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) 


"----------------------------------------------------------------- 
" plugin - matchit.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转 
" % 正向匹配 g% 反向匹配 
" [% 定位块首 ]% 定位块尾 
"----------------------------------------------------------------- 


"----------------------------------------------------------------- 
" plugin - vcscommand.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转 
" SVN/git管理工具 
"----------------------------------------------------------------- 


"----------------------------------------------------------------- 
" plugin – a.vim 
"-----------------------------------------------------------------
 
 
 
 

Vim配置文件(全平台可用)2012-05-01版

http://www.oschina.net/code/snippet_103341_10313

本版本是我使用Vim一周年的纪念版,也是最后一版,  以后不再更新,还望各位朋友见谅

我是去年(2011年)5月1日正式开始使用Vim编辑器的,从此剑不离手,给予了我极大的帮助

这是我使用Vim一周年的感悟:《  使用Vim一周年纪念

望有缘人能通过我发布的这些集成版本快速入门,步入Vim殿堂,提高编码效率,享受编码乐趣

经过着色的配置文件请访问下面的链接



完整配置的下载地址见本文末尾

-----------------------------------------

相比4月1日那一版,本版本并没有太大的变化,只是上一版侧重于Ruby/Rails的开发,而这一版偏重于Python/Django

所以鉴于此,上一版的  Vim2012-04-01.7z和当前版本的  Vim2012-05-01.7z文件会永久保存在我的下载目录,以供有需者随时下载

考虑到VimWiki使用的人并不多,所以本版本对其进行了移除,此外还有其他部分插件也进行了删减

上一版的保存快捷键是Ctrl + S,这一版换成了jj,还望注意

此外,如果源文件路径含有中文字符,那么调用Taglist是显示不出函数列表的,所以请新人注意,路径不要使用中文(这也是基本的常识)

老规矩,所有常用的按键说明全部写在了配置文件的最前面,Windows下为_vimrc,Linux下为.vimrc

-----------------------------------------

本版本的主要功能

01、支持常规的语法高亮、代码缩进、每行80个字符提示
02、支持括号、引号自动匹配
03、支持单源文件一键编译、运行 [已配置支持C/C++、Java、Haskell、Lua、Perl、Python、Ruby]
04、支持一键载入语法模板
05、集成snipMate,支持tab键补全 [已完整配置支持的语种有C/C++、Python/Django、Ruby/Rails]
06、集成zencoding,支持网页的快速编码
07、集成minibufexpl、NERD_tree、taglist等常规插件,便于开发工程级项目
08、支持GTK+和Qt的语法高亮
09、集成txtbrowser,对普通的txt文本文件也有良好的渲染
10、对于HTML文件,默认载入Django Template语法高亮模式,便于Python/Django开发
11、集成Powerline,支持状态栏彩色显示
12、支持ctags函数跳转 [Linux && Cygwin用户需要安装有ctags才能使用]

-----------------------------------------

更多功能请自行查看Vim配置文件 [Windows为_vimrc,Linux和Cygwin为.vimrc]

zencoding简易的使用说明请参考:

snipMate支持的关键字,请自行查看vimfiles/snippets目录下的各个文件(Linux对应的目录为.vim/snippets),你也可以自行修改和配置

下面是配置的具体安装方法,分Windows和Linux && Cygwin两个版本,请根据需要参考

-----------------------------------------

Windows下的安装方法

01、访问http://www.vim.org/download.php#pc下载最新的Gvim

02、安装Gvim到任意目录,这儿为方便讲解,我假定你安装到了D:\Apps\Gvim

03、将D:\Apps\Gvim\vim73目录加入环境变量 [不知何为环境变量者,请Google]

04、删除Gvim安装目录下的vimfiles目录

05、复制提供的vimfiles目录到D:\Apps\Gvim下,取代已删目录的位置

06、将提供的小工具软件全部复制到D:\Apps\Gvim\vim73目录下

07、复制_vimrc到D:\Apps\Gvim进行替换

08、复制Monaco.ttf到C:\WINDOWS\Fonts目录下进行字体的安装

09、使用任意文本编辑器打开_vimrc,将名字、邮箱、网址等全部替换为你自己的信息,如遇路径不同也全部替换为你本机的实际路径

10、然后。。。然后就大功告成了,接下只需学习如何使用而已,使用说明全部集中在_vimrc文件的头部

-----------------------------------------

Linux && Cywgin下的安装方法

01、请确认已安装Vim,这儿不提供Vim的安装指导,如有需要请Google

02、删除家目录的.vim文件夹和.vimrc文件,如果没有则不需要执行删除动作 [使用命令 rm -rf .vim .vimrc]

03、复制Linux_Cygwin目录下的所有文件到家目录 [在下载的Linux_Cygwin文件夹上打开终端,然后执行命令 cp -r . ~]

04、使用任意文本编辑器打开.vimrc,将名字、邮箱、网址等全部替换为你自己的信息,如遇路径不同也全部替换为你本机的实际路径

05、如此这般就配置好了,尽情享受编码的乐趣吧,使用说明全部集中在.vimrc文件的头部

-----------------------------------------

ctags简易的使用说明,这儿以C/C++为例

01、首先确保系统能够找到ctags.exe,也就是ctags.exe添加到了系统环境变量

02、以MinGW为例,到编译器安装目录的include目录(比如C:\MinGW\include)执行命令 ctags -R --languages=c,c++

03、在_vimrc文件中添加一行 set tags+=C:\MinGW\include\tags

04、以后编辑C/C++源文件时,键入一小部分字符,然后按Ctrl + P即可拥有C/C++的代码提示

05、将光标移到某个函数名上,按Ctrl + ],Vim将自动跳转到该函数的定义,按Ctrl + T返回

以上只是ctags简单的用法,更专业的介绍请Google

-----------------------------------------

资料目录提供了几份实用的Vim教程和图解,希望能给你学习Vim的使用带来帮助


上一版本的下载地址:  http://www.ruchee.com/download/Vim2012-04-01.7z

-----------------------------------------
标签:  Vim  GVim

代码片段(1)

[代码] _vimrc

001 " -----------------   Author: Ruchee
002 " -----------------    Email: my@ruchee.com
003 " -----------------  WebSite: http://www.ruchee.com
004 " -----------------     Date: 2012-05-01
005   
006   
007 " Ctrl + H                   --光标移当前行行首
008 " Ctrl + J                   --光标移下一行行首
009 " Ctrl + K                   --光标移上一行行尾
010 " Ctrl + L                   --光标移当前行行尾
011 " Ctrl + C                   --编译 [支持C/C++、Java、Haskll]
012 " Ctrl + R                   --运行 [支持C/C++、Java、Haskell、Lua、Perl、Python、Ruby]
013 " Ctrl + ]                   --转到函数定义
014 " Ctrl + T                   --返回调用函数
015 " Ctrl + E                   --一步加载语法模板和作者、时间信息
016   
017 " <C-P>                      --单词补全
018 " <C-X><C-L>                 --整行补全
019 " Tab键                      --插入模式下的全功能语法结构补全 [snipMate插件]
020 " Shift + Insert             --向Vim中粘贴从别处复制的内容
021   
022 " u [小写]                   --单步复原 [非插入模式]
023 " U [大写]                   --整行复原 [非插入模式]
024   
025 " jj                         --保存文件并留在插入模式 [插入模式]
026 " kk                         --返回Normal模式 [插入模式]
027 " nt                         --打开NERDTree [非插入模式]
028 " tl                         --打开TagList [非插入模式]
029   
030 " za                         --打开或关闭当前折叠
031 " zM                         --关闭所有折叠
032 " zR                         --打开所有折叠
033   
034 " :set syntax=cpp            --手动选择语法高亮 [或 :set filetype=cpp]
035   
036 " :%!xxd                     --转储二进制文件,以十六进制形式显示
037 " :%!xxd -r                  --还原二进制文件
038   
039   
040 " ---------- 主要插件详细用法说明 ---------------------
041   
042 " :Tlist                     --呼出变量和函数列表 [TagList插件]
043 " :LoadTemplate              --呼出语法模板 [Load_Template插件]
044 " :AuthorInfoDetect          --添加作者、时间等信息 [NERD_commenter && authorinfo插件]
045   
046 " ---------- a.vim [自动切换C/C++同名头文件] ----------
047 "
048 " :A                         --切换同名头文件并独占整个屏幕
049 " :AS                        --切换同名头文件并垂直分屏,头文件在上
050 " :AV                        --切换同名头文件并水平分割,头文件在左
051   
052 " ---------- mark.vim [追踪高亮指定关键字] ------------
053 "
054 " \m                         --normal模式下,在想要高亮的单词上面敲击\m即可高亮或取消高亮该单词
055 " :Mark                      --取消所有高亮
056 " :Mark abc                  --指定高亮单词 abc 或取消高亮 abc
057   
058 " ---------- NERDTree [智能文件浏览器] ----------------
059 "
060 " :NERDTree                  --启动NERDTree插件
061 " o [小写]                   --切换当前文件或目录的打开、关闭状态
062 " u                          --打开上层目录
063 " p [小写]                   --返回上层目录
064 " P [大写]                   --返回根目录
065 " K                          --转到当前目录第一个节点
066 " J                          --转到当前目录最后的节点
067 " m                          --显示文件系统菜单 [增、删、移]
068 " ?                          --弹出帮助菜单
069 " q                          --退出该插件
070   
071   
072 " 将所有以.html结尾的文档以Django Template语法进行渲染
073 " 本配置语句必须放在所有配置的最前面
074 au BufNewFile,BufRead *.html setf htmldjango
075   
076 colorscheme blackboard       " 着色模式:蓝色背景
077 set guifont=Monaco:h10       " 字体 && 字号
078 set tabstop=4                " 设置tab键的宽度
079 set shiftwidth=4             " 换行时行间交错使用4个空格
080 set autoindent               " 自动对齐
081 set backspace=2              " 设置退格键可用
082 set cindent shiftwidth=4     " 自动缩进4空格
083 set smartindent              " 智能自动缩进
084 set ai!                      " 设置自动缩进
085 set nu!                      " 显示行号
086 "set showmatch               " 显示括号配对情况
087 set mouse=a                  " 启用鼠标
088 set ruler                    " 右下角显示光标位置的状态行
089 set incsearch                " 查找book时,当输入/b时会自动找到
090 set hlsearch                 " 开启高亮显示结果
091 set incsearch                " 开启实时搜索功能
092 set nowrapscan               " 搜索到文件两端时不重新搜索
093 set nocompatible             " 关闭兼容模式
094 set vb t_vb=                 " 关闭提示音
095 "set cursorline              " 突出显示当前行
096 set hidden                   " 允许在有未保存的修改时切换缓冲区
097 set list                     " 显示Tab符,使用一高亮竖线代替
098 set listchars=tab:\|\ ,
099   
100 syntax enable                " 打开语法高亮
101 syntax on                    " 开启文件类型侦测
102 filetype indent on           " 针对不同的文件类型采用不同的缩进格式
103 filetype plugin on           " 针对不同的文件类型加载对应的插件
104 filetype plugin indent on    " 启用自动补全
105   
106   
107 if has("gui_running")
108     au GUIEnter * simalt ~x  " 窗口启动时自动最大化
109     "winpos 20 20            " 指定窗口出现的位置,坐标原点在屏幕左上角
110     "set lines=20 columns=90 " 指定窗口大小,lines为高度,columns为宽度
111     "set guioptions-=m       " 隐藏菜单栏
112     "set guioptions-=T       " 隐藏工具栏
113     "set guioptions-=L       " 隐藏左侧滚动条
114     "set guioptions-=r       " 隐藏右侧滚动条
115     "set guioptions-=b       " 隐藏底部滚动条
116     "set showtabline=0       " 隐藏Tab栏
117 endif
118   
119 set writebackup              " 设置无备份文件
120 set nobackup
121 set autochdir                " 设定文件浏览器目录为当前目录
122 "set nowrap                  " 设置不自动换行
123 set foldmethod=syntax        " 选择代码折叠类型
124 set foldlevel=100            " 禁止自动折叠
125   
126 set laststatus=2             " 开启状态栏信息
127 set cmdheight=2              " 命令行的高度,默认为1,这里设为2
128   
129 " 每行超过80个的字符用下划线标示
130 au BufRead,BufNewFile *.s,*.asm,*.h,*.c,*.cpp,*.cc,*.java,*.cs,*.erl,*.hs,*.sh,*.lua,*.pl,*.pm,*.php,*.py,*.rb,*.erb,*.vim,*.js,*.css,*.xml,*.html,*.xhtml 2match Underlined /.\%81v/
131   
132   
133 " 设置编码
134 set fenc=utf-8
135 set encoding=utf-8
136 set fileencodings=utf-8,gbk,cp936,latin-1
137 " 解决菜单乱码
138 source $VIMRUNTIME/delmenu.vim
139 source $VIMRUNTIME/menu.vim
140 " 解决consle输出乱码
141 language messages zh_CN.utf-8
142   
143   
144 " For Haskell
145 :let hs_highlight_delimiters=1            " 高亮定界符
146 :let hs_highlight_boolean=1               " 把True和False识别为关键字
147 :let hs_highlight_types=1                 " 把基本类型的名字识别为关键字
148 :let hs_highlight_more_types=1            " 把更多常用类型识别为关键字
149 :let hs_highlight_debug=1                 " 高亮调试函数的名字
150 :let hs_allow_hash_operator=1             " 阻止把#高亮为错误
151   
152   
153 " ======= 引号 && 括号自动匹配 ======= "
154   
155 :inoremap ( ()<ESC>i
156   
157 :inoremap ) <c-r>=ClosePair(')')<CR>
158   
159 :inoremap { {}<ESC>i
160   
161 :inoremap } <c-r>=ClosePair('}')<CR>
162   
163 :inoremap [ []<ESC>i
164   
165 :inoremap ] <c-r>=ClosePair(']')<CR>
166   
167 ":inoremap < <><ESC>i
168   
169 ":inoremap > <c-r>=ClosePair('>')<CR>
170   
171 :inoremap " ""<ESC>i
172   
173 :inoremap ' ''<ESC>i
174   
175 :inoremap ` ``<ESC>i
176   
177 function ClosePair(char)
178     if getline('.')[col('.') - 1] == a:char
179         return "\<Right>"
180     else
181         return a:char
182     endif
183 endf
184   
185   
186 " MiniBufExplorer     多个文件切换 可使用鼠标双击相应文件名进行切换
187 let g:miniBufExplMapWindowNavVim=1
188 let g:miniBufExplMapWindowNavArrows=1
189 let g:miniBufExplMapCTabSwitchBufs=1
190 let g:miniBufExplModSelTarget=1
191   
192 " :Tlist              调用TagList
193 let Tlist_Show_One_File=1                    " 只显示当前文件的tags
194 let Tlist_Exit_OnlyWindow=1                  " 如果Taglist窗口是最后一个窗口则退出Vim
195 let Tlist_Use_Right_Window=1                 " 在右侧窗口中显示
196 let Tlist_File_Fold_Auto_Close=1             " 自动折叠
197   
198 " TxtBrowser          高亮TXT文本文件
199 au BufRead,BufNewFile *.txt setlocal ft=txt
200   
201 " :LoadTemplate       根据文件后缀自动加载模板
202 let g:template_path='D:/Apps/Gvim/vimfiles/template/'
203   
204 " :AuthorInfoDetect   自动添加作者、时间等信息,本质是NERD_commenter && authorinfo的结合
205 let g:vimrc_author='Ruchee'
206 let g:vimrc_email='my@ruchee.com'
207 let g:vimrc_homepage='http://www.ruchee.com'
208   
209 " Ctrl + H            将光标移到当前行的行首
210 imap <c-h> <ESC>I
211   
212 " Ctrl + J            将光标移到下一行的行首
213 imap <c-j> <ESC>jI
214   
215 " Ctrl + K            将光标移到上一行的末尾
216 imap <c-k> <ESC>kA
217   
218 " Ctrl + L            将光标移到当前行的行尾
219 imap <c-l> <ESC>A
220   
221 " Ctrl + E            一步加载语法模板和作者、时间信息
222 map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi
223 imap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi
224 vmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi
225   
226 " jj                  保存文件并留在插入模式 [插入模式]
227 imap jj <ESC>:w<CR>li
228   
229 " kk                  返回Normal模式 [插入模式]
230 imap kk <ESC>l
231   
232 " nt                  打开NERDTree [非插入模式]
233 map nt :NERDTree<CR>
234   
235 " tl                  打开Taglist [非插入模式]
236 map tl :Tlist<CR><c-l>
237   
238   
239 " ======= 编译 && 运行 ======= "
240   
241 " 编译源文件
242 func! CompileCode()
243         exec "w"
244         if &filetype == "c"
245             exec "!gcc -Wall -std=c99 %<.c -o %<"
246         elseif &filetype == "cpp"
247             exec "!g++ -Wall -std=c++98 %<.cpp -o %<"
248         elseif &filetype == "java"
249             exec "!javac %<.java"
250         elseif &filetype == "haskell"
251             exec "!ghc --make %<.hs -o %<"
252         elseif &filetype == "lua"
253             exec "!lua %<.lua"
254         elseif &filetype == "perl"
255             exec "!perl %<.pl"
256         elseif &filetype == "python"
257             exec "!python %<.py"
258         elseif &filetype == "ruby"
259             exec "!ruby %<.rb"
260         endif
261 endfunc
262   
263 " 运行可执行文件
264 func! RunCode()
265         exec "w"
266         if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell"
267             exec "! %<.exe"
268         elseif &filetype == "java"
269             exec "!java %<"
270         elseif &filetype == "lua"
271             exec "!lua %<.lua"
272         elseif &filetype == "perl"
273             exec "!perl %<.pl"
274         elseif &filetype == "python"
275             exec "!python %<.py"
276         elseif &filetype == "ruby"
277             exec "!ruby %<.rb"
278         endif
279 endfunc
280   
281 " Ctrl + C 一键保存、编译
282 map <c-c> :call CompileCode()<CR>
283 imap <c-c> <ESC>:call CompileCode()<CR>
284 vmap <c-c> <ESC>:call CompileCode()<CR>
285   
286 " Ctrl + R 一键保存、运行
287 map <c-r> :call RunCode()<CR>
288 imap <c-r> <ESC>:call RunCode()<CR>
289 vmap <c-r> <ESC>:call RunCode()<CR>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
windows下的Gvim7.2的配置文件 增加了"文件浏览"和Taglist等一系列插件. 插件也在压缩包内 "本配置文件包括如下内容: "设定窗口打开位置 winpos 300 60 "设定窗口起始大小 set lines=50 columns=118 " 设定默认解码及解决Vim终端模式中文乱码---顺序不要写错! let &termencoding=&encoding set encoding=utf-8 set langmenu=zh_CN.UTF-8 language message zh_CN.UTF-8 set fenc=utf-8 set fencs=usc-bom,utf-8,gb18030,gbk,gb2312,big5,cp936,euc-jp,euc-kr,latin1, set nocompatible source $vimruntime/vimrc_example.vim source $vimruntime/mswin.vim behave mswin "切换提示语言(解决调试窗口提示乱码) 设置帮助语言 文件中需要记录的行数 在处理未保存或只读文件的时候,弹出确认 与windows共享剪贴板 侦测文件类型 带有如下符号的单词不要被换行分割 语法高亮 高亮字符,让其不受100列限制 状态行颜色 把gui的工具栏去掉 把gui的菜单去掉 文件设置 不要备份文件(根据自己需要取舍) 不要生成swap文件,当buffer被丢弃的时候隐藏它 字符间插入的像素行数目 增强模式中的命令行自动完成操作 在状态行上显示光标所在位置的行号和列号 命令行(在状态行下)的高度 允许backspace和光标键跨越行边界 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) 启动的时候不显示那个援助索马里儿童的提示 在被分割的窗口间显示空白,便于阅读 打开文件时光标自动到上次退出该文件时的光标所在位置 搜索和匹配 显示状态行 Lookupfile 相关设置 继承前一行的缩进方式,特别适用于多行注释 为C程序提供自动缩进 TAB键宽度 统一缩进为4 换行 在行和段开始处使用制表符 可以用切换到上下左右的窗口中去 CTags的设定 Autocommands 自动补全 显示行号 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示 设置程序的运行和调试 快捷键F5和Ctrl-F5 更详细资料见文件.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值