一个比较偷懒的方法是执行一下命令:
cd /etc/vim
sudo vi vimrc
然后把里面的注释去掉就可以了,但是里面的配置不太全。
原文链接 http://www.oschina.net/code/snippet_103341_9644
linux 平台:
1 " ----------------- Author: Ruchee 2 " ----------------- Email: my@ruchee.com 3 " ----------------- WebSite: http://www.ruchee.com 4 " ----------------- Date: 2012-05-01 5 6 7 " Ctrl + H --光标移当前行行首 8 " Ctrl + J --光标移下一行行首 9 " Ctrl + K --光标移上一行行尾 10 " Ctrl + L --光标移当前行行尾 11 " Ctrl + C --编译 [支持C/C++、Java、Haskell] 12 " Ctrl + R --运行 [支持C/C++、Java、Haskell、Lua、Perl、Python、Ruby] 13 " Ctrl + ] --转到函数定义 14 " Ctrl + T --返回调用函数 15 " Ctrl + E --一步加载语法模板和作者、时间信息 16 17 " <C-P> --单词补全 18 " <C-X><C-L> --整行补全 19 " Tab键 --插入模式下的全功能语法结构补全 [snipMate插件] 20 " Shift + Insert --向Vim中粘贴从别处复制的内容 21 22 " u [小写] --单步复原 [非插入模式] 23 " U [大写] --整行复原 [非插入模式] 24 25 " jj --保存文件并留在插入模式 [插入模式] 26 " kk --返回Normal模式 [插入模式] 27 " nt --打开NERDTree [非插入模式] 28 " tl --打开TagList [非插入模式] 29 30 " za --打开或关闭当前折叠 31 " zM --关闭所有折叠 32 " zR --打开所有折叠 33 34 " :set syntax=cpp --手动选择语法高亮 [或 :set filetype=cpp] 35 36 " :%!xxd --转储二进制文件,以十六进制形式显示 37 " :%!xxd -r --还原二进制文件 38 39 40 " ---------- 主要插件详细用法说明 --------------------- 41 42 " :Tlist --呼出变量和函数列表 [TagList插件] 43 " :LoadTemplate --呼出语法模板 [Load_Template插件] 44 " :AuthorInfoDetect --添加作者、时间等信息 [NERD_commenter && authorinfo插件] 45 46 " ---------- a.vim [自动切换C/C++同名头文件] ---------- 47 " 48 " :A --切换同名头文件并独占整个屏幕 49 " :AS --切换同名头文件并垂直分屏,头文件在上 50 " :AV --切换同名头文件并水平分割,头文件在左 51 52 " ---------- NERDTree [智能文件浏览器] ---------------- 53 " 54 " :NERDTree --启动NERDTree插件 55 " o [小写] --切换当前文件或目录的打开、关闭状态 56 " u --打开上层目录 57 " p [小写] --返回上层目录 58 " P [大写] --返回根目录 59 " K --转到当前目录第一个节点 60 " J --转到当前目录最后的节点 61 " m --显示文件系统菜单 [增、删、移] 62 " ? --弹出帮助菜单 63 " q --退出该插件 64 65 66 " 将所有以.html结尾的文档以Django Template语法进行渲染 67 " 本配置语句必须放在所有配置的最前面 68 au BufNewFile,BufRead *.html setf htmldjango 69 70 colorscheme elflord " 着色模式 71 set guifont=Monaco:h10 " 字体 && 字号 72 set tabstop=4 " 设置tab键的宽度 73 set shiftwidth=4 " 换行时行间交错使用4个空格 74 set autoindent " 自动对齐 75 set backspace=2 " 设置退格键可用 76 set cindent shiftwidth=4 " 自动缩进4空格 77 set smartindent " 智能自动缩进 78 set ai! " 设置自动缩进 79 set nu! " 显示行号 80 "set showmatch " 显示括号配对情况 81 set mouse=a " 启用鼠标 82 set ruler " 右下角显示光标位置的状态行 83 set incsearch " 开启实时搜索功能 84 set hlsearch " 开启高亮显示结果 85 set nowrapscan " 搜索到文件两端时不重新搜索 86 set nocompatible " 关闭兼容模式 87 set vb t_vb= " 关闭提示音 88 "set cursorline " 突出显示当前行 89 set hidden " 允许在有未保存的修改时切换缓冲区 90 set list " 显示Tab符,使用一高亮竖线代替 91 set listchars=tab:\|\ , 92 93 syntax enable " 打开语法高亮 94 syntax on " 开启文件类型侦测 95 filetype indent on " 针对不同的文件类型采用不同的缩进格式 96 filetype plugin on " 针对不同的文件类型加载对应的插件 97 filetype plugin indent on " 启用自动补全 98 99 set writebackup " 设置无备份文件 100 set nobackup 101 set autochdir " 设定文件浏览器目录为当前目录 102 "set nowrap " 设置不自动换行 103 set foldmethod=syntax " 选择代码折叠类型 104 set foldlevel=100 " 禁止自动折叠 105 106 set laststatus=2 " 开启状态栏信息 107 set cmdheight=2 " 命令行的高度,默认为1,这里设为2 108 109 " 每行超过80个的字符用下划线标示 110 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/ 111 112 113 " 设置编码 114 set fenc=utf-8 115 set encoding=utf-8 116 set fileencodings=utf-8,gbk,cp936,latin-1 117 118 119 " For Haskell 120 :let hs_highlight_delimiters=1 " 高亮定界符 121 :let hs_highlight_boolean=1 " 把True和False识别为关键字 122 :let hs_highlight_types=1 " 把基本类型的名字识别为关键字 123 :let hs_highlight_more_types=1 " 把更多常用类型识别为关键字 124 :let hs_highlight_debug=1 " 高亮调试函数的名字 125 :let hs_allow_hash_operator=1 " 阻止把#高亮为错误 126 127 128 " ======= 引号 && 括号自动匹配 ======= " 129 130 :inoremap ( ()<ESC>i 131 132 :inoremap ) <c-r>=ClosePair(')')<CR> 133 134 :inoremap { {}<ESC>i 135 136 :inoremap } <c-r>=ClosePair('}')<CR> 137 138 :inoremap [ []<ESC>i 139 140 :inoremap ] <c-r>=ClosePair(']')<CR> 141 142 ":inoremap < <><ESC>i 143 144 ":inoremap > <c-r>=ClosePair('>')<CR> 145 146 :inoremap " ""<ESC>i 147 148 :inoremap ' ''<ESC>i 149 150 :inoremap ` ``<ESC>i 151 152 function ClosePair(char) 153 if getline('.')[col('.') - 1] == a:char 154 return "\<Right>" 155 else 156 return a:char 157 endif 158 endf 159 160 161 " MiniBufExplorer 多个文件切换 可使用鼠标双击相应文件名进行切换 162 let g:miniBufExplMapWindowNavVim=1 163 let g:miniBufExplMapWindowNavArrows=1 164 let g:miniBufExplMapCTabSwitchBufs=1 165 let g:miniBufExplModSelTarget=1 166 167 " :Tlist 调用TagList 168 let Tlist_Show_One_File=1 " 只显示当前文件的tags 169 let Tlist_Exit_OnlyWindow=1 " 如果Taglist窗口是最后一个窗口则退出Vim 170 let Tlist_Use_Right_Window=1 " 在右侧窗口中显示 171 let Tlist_File_Fold_Auto_Close=1 " 自动折叠 172 173 " TxtBrowser 高亮TXT文本文件 174 au BufRead,BufNewFile *.txt setlocal ft=txt 175 176 " :LoadTemplate 根据文件后缀自动加载模板 177 let g:template_path='/home/ruchee/.vim/template/' 178 179 " :AuthorInfoDetect 自动添加作者、时间等信息,本质是NERD_commenter && authorinfo的结合 180 let g:vimrc_author='Ruchee' 181 let g:vimrc_email='my@ruchee.com' 182 let g:vimrc_homepage='http://www.ruchee.com' 183 184 " Ctrl + H 将光标移到当前行的行首 185 imap <c-h> <ESC>I 186 187 " Ctrl + J 将光标移到下一行的行首 188 imap <c-j> <ESC>jI 189 190 " Ctrl + K 将光标移到上一行的末尾 191 imap <c-k> <ESC>kA 192 193 " Ctrl + L 将光标移到当前行的行尾 194 imap <c-l> <ESC>A 195 196 " Ctrl + E 一步加载语法模板和作者、时间信息 197 map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi 198 imap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi 199 vmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi 200 201 " jj 保存文件并留在插入模式 [插入模式] 202 imap jj <ESC>:w<CR>li 203 204 " kk 返回Normal模式 [插入模式] 205 imap kk <ESC>l 206 207 " nt 打开NERDTree [非插入模式] 208 map nt :NERDTree<CR> 209 210 " tl 打开Taglist [非插入模式] 211 map tl :Tlist<CR><c-l> 212 213 214 " ======= 编译 && 运行 ======= " 215 216 " 编译源文件 217 func! CompileCode() 218 exec "w" 219 if &filetype == "c" 220 exec "!gcc -Wall -std=c99 %<.c -o %<" 221 elseif &filetype == "cpp" 222 exec "!g++ -Wall -std=c++98 %<.cpp -o %<" 223 elseif &filetype == "java" 224 exec "!javac %<.java" 225 elseif &filetype == "haskell" 226 exec "!ghc --make %<.hs -o %<" 227 elseif &filetype == "lua" 228 exec "!lua %<.lua" 229 elseif &filetype == "perl" 230 exec "!perl %<.pl" 231 elseif &filetype == "python" 232 exec "!python %<.py" 233 elseif &filetype == "ruby" 234 exec "!ruby %<.rb" 235 endif 236 endfunc 237 238 " 运行可执行文件 239 func! RunCode() 240 exec "w" 241 if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell" 242 exec "! ./%<" 243 elseif &filetype == "java" 244 exec "!java %<" 245 elseif &filetype == "lua" 246 exec "!lua %<.lua" 247 elseif &filetype == "perl" 248 exec "!perl %<.pl" 249 elseif &filetype == "python" 250 exec "!python %<.py" 251 elseif &filetype == "ruby" 252 exec "!ruby %<.rb" 253 endif 254 endfunc 255 "下面的语句可以很方便地实现编译和运行 256 " Ctrl + C 一键保存、编译 257 map <c-c> :call CompileCode()<CR> 258 imap <c-c> <ESC>:call CompileCode()<CR> 259 vmap <c-c> <ESC>:call CompileCode()<CR> 260 261 " Ctrl + R 一键保存、运行 262 map <c-r> :call RunCode()<CR> 263 imap <c-r> <ESC>:call RunCode()<CR> 264 vmap <c-r> <ESC>:call RunCode()<CR>
windows平台:
1 " ----------------- Author: Ruchee 2 " ----------------- Email: my@ruchee.com 3 " ----------------- WebSite: http://www.ruchee.com 4 " ----------------- Date: 2012-05-01 5 6 7 " Ctrl + H --光标移当前行行首 8 " Ctrl + J --光标移下一行行首 9 " Ctrl + K --光标移上一行行尾 10 " Ctrl + L --光标移当前行行尾 11 " Ctrl + C --编译 [支持C/C++、Java、Haskll] 12 " Ctrl + R --运行 [支持C/C++、Java、Haskell、Lua、Perl、Python、Ruby] 13 " Ctrl + ] --转到函数定义 14 " Ctrl + T --返回调用函数 15 " Ctrl + E --一步加载语法模板和作者、时间信息 16 17 " <C-P> --单词补全 18 " <C-X><C-L> --整行补全 19 " Tab键 --插入模式下的全功能语法结构补全 [snipMate插件] 20 " Shift + Insert --向Vim中粘贴从别处复制的内容 21 22 " u [小写] --单步复原 [非插入模式] 23 " U [大写] --整行复原 [非插入模式] 24 25 " jj --保存文件并留在插入模式 [插入模式] 26 " kk --返回Normal模式 [插入模式] 27 " nt --打开NERDTree [非插入模式] 28 " tl --打开TagList [非插入模式] 29 30 " za --打开或关闭当前折叠 31 " zM --关闭所有折叠 32 " zR --打开所有折叠 33 34 " :set syntax=cpp --手动选择语法高亮 [或 :set filetype=cpp] 35 36 " :%!xxd --转储二进制文件,以十六进制形式显示 37 " :%!xxd -r --还原二进制文件 38 39 40 " ---------- 主要插件详细用法说明 --------------------- 41 42 " :Tlist --呼出变量和函数列表 [TagList插件] 43 " :LoadTemplate --呼出语法模板 [Load_Template插件] 44 " :AuthorInfoDetect --添加作者、时间等信息 [NERD_commenter && authorinfo插件] 45 46 " ---------- a.vim [自动切换C/C++同名头文件] ---------- 47 " 48 " :A --切换同名头文件并独占整个屏幕 49 " :AS --切换同名头文件并垂直分屏,头文件在上 50 " :AV --切换同名头文件并水平分割,头文件在左 51 52 " ---------- mark.vim [追踪高亮指定关键字] ------------ 53 " 54 " \m --normal模式下,在想要高亮的单词上面敲击\m即可高亮或取消高亮该单词 55 " :Mark --取消所有高亮 56 " :Mark abc --指定高亮单词 abc 或取消高亮 abc 57 58 " ---------- NERDTree [智能文件浏览器] ---------------- 59 " 60 " :NERDTree --启动NERDTree插件 61 " o [小写] --切换当前文件或目录的打开、关闭状态 62 " u --打开上层目录 63 " p [小写] --返回上层目录 64 " P [大写] --返回根目录 65 " K --转到当前目录第一个节点 66 " J --转到当前目录最后的节点 67 " m --显示文件系统菜单 [增、删、移] 68 " ? --弹出帮助菜单 69 " q --退出该插件 70 71 72 " 将所有以.html结尾的文档以Django Template语法进行渲染 73 " 本配置语句必须放在所有配置的最前面 74 au BufNewFile,BufRead *.html setf htmldjango 75 76 colorscheme blackboard " 着色模式:蓝色背景 77 set guifont=Monaco:h10 " 字体 && 字号 78 set tabstop=4 " 设置tab键的宽度 79 set shiftwidth=4 " 换行时行间交错使用4个空格 80 set autoindent " 自动对齐 81 set backspace=2 " 设置退格键可用 82 set cindent shiftwidth=4 " 自动缩进4空格 83 set smartindent " 智能自动缩进 84 set ai! " 设置自动缩进 85 set nu! " 显示行号 86 "set showmatch " 显示括号配对情况 87 set mouse=a " 启用鼠标 88 set ruler " 右下角显示光标位置的状态行 89 set incsearch " 开启实时搜索功能 90 set hlsearch " 开启高亮显示结果 91 set nowrapscan " 搜索到文件两端时不重新搜索 92 set nocompatible " 关闭兼容模式 93 set vb t_vb= " 关闭提示音 94 "set cursorline " 突出显示当前行 95 set hidden " 允许在有未保存的修改时切换缓冲区 96 set list " 显示Tab符,使用一高亮竖线代替 97 set listchars=tab:\|\ , 98 99 syntax enable " 打开语法高亮 100 syntax on " 开启文件类型侦测 101 filetype indent on " 针对不同的文件类型采用不同的缩进格式 102 filetype plugin on " 针对不同的文件类型加载对应的插件 103 filetype plugin indent on " 启用自动补全 104 105 106 if has("gui_running") 107 au GUIEnter * simalt ~x " 窗口启动时自动最大化 108 "winpos 20 20 " 指定窗口出现的位置,坐标原点在屏幕左上角 109 "set lines=20 columns=90 " 指定窗口大小,lines为高度,columns为宽度 110 "set guioptions-=m " 隐藏菜单栏 111 "set guioptions-=T " 隐藏工具栏 112 "set guioptions-=L " 隐藏左侧滚动条 113 "set guioptions-=r " 隐藏右侧滚动条 114 "set guioptions-=b " 隐藏底部滚动条 115 "set showtabline=0 " 隐藏Tab栏 116 endif 117 118 set writebackup " 设置无备份文件 119 set nobackup 120 set autochdir " 设定文件浏览器目录为当前目录 121 "set nowrap " 设置不自动换行 122 set foldmethod=syntax " 选择代码折叠类型 123 set foldlevel=100 " 禁止自动折叠 124 125 set laststatus=2 " 开启状态栏信息 126 set cmdheight=2 " 命令行的高度,默认为1,这里设为2 127 128 " 每行超过80个的字符用下划线标示 129 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/ 130 131 132 " 设置编码 133 set fenc=utf-8 134 set encoding=utf-8 135 set fileencodings=utf-8,gbk,cp936,latin-1 136 " 解决菜单乱码 137 source $VIMRUNTIME/delmenu.vim 138 source $VIMRUNTIME/menu.vim 139 " 解决consle输出乱码 140 language messages zh_CN.utf-8 141 142 143 " For Haskell 144 :let hs_highlight_delimiters=1 " 高亮定界符 145 :let hs_highlight_boolean=1 " 把True和False识别为关键字 146 :let hs_highlight_types=1 " 把基本类型的名字识别为关键字 147 :let hs_highlight_more_types=1 " 把更多常用类型识别为关键字 148 :let hs_highlight_debug=1 " 高亮调试函数的名字 149 :let hs_allow_hash_operator=1 " 阻止把#高亮为错误 150 151 152 " ======= 引号 && 括号自动匹配 ======= " 153 154 :inoremap ( ()<ESC>i 155 156 :inoremap ) <c-r>=ClosePair(')')<CR> 157 158 :inoremap { {}<ESC>i 159 160 :inoremap } <c-r>=ClosePair('}')<CR> 161 162 :inoremap [ []<ESC>i 163 164 :inoremap ] <c-r>=ClosePair(']')<CR> 165 166 ":inoremap < <><ESC>i 167 168 ":inoremap > <c-r>=ClosePair('>')<CR> 169 170 :inoremap " ""<ESC>i 171 172 :inoremap ' ''<ESC>i 173 174 :inoremap ` ``<ESC>i 175 176 function ClosePair(char) 177 if getline('.')[col('.') - 1] == a:char 178 return "\<Right>" 179 else 180 return a:char 181 endif 182 endf 183 184 185 " MiniBufExplorer 多个文件切换 可使用鼠标双击相应文件名进行切换 186 let g:miniBufExplMapWindowNavVim=1 187 let g:miniBufExplMapWindowNavArrows=1 188 let g:miniBufExplMapCTabSwitchBufs=1 189 let g:miniBufExplModSelTarget=1 190 191 " :Tlist 调用TagList 192 let Tlist_Show_One_File=1 " 只显示当前文件的tags 193 let Tlist_Exit_OnlyWindow=1 " 如果Taglist窗口是最后一个窗口则退出Vim 194 let Tlist_Use_Right_Window=1 " 在右侧窗口中显示 195 let Tlist_File_Fold_Auto_Close=1 " 自动折叠 196 197 " TxtBrowser 高亮TXT文本文件 198 au BufRead,BufNewFile *.txt setlocal ft=txt 199 200 " :LoadTemplate 根据文件后缀自动加载模板 201 let g:template_path='D:/Apps/Gvim/vimfiles/template/' 202 203 " :AuthorInfoDetect 自动添加作者、时间等信息,本质是NERD_commenter && authorinfo的结合 204 let g:vimrc_author='Ruchee' 205 let g:vimrc_email='my@ruchee.com' 206 let g:vimrc_homepage='http://www.ruchee.com' 207 208 " Ctrl + H 将光标移到当前行的行首 209 imap <c-h> <ESC>I 210 211 " Ctrl + J 将光标移到下一行的行首 212 imap <c-j> <ESC>jI 213 214 " Ctrl + K 将光标移到上一行的末尾 215 imap <c-k> <ESC>kA 216 217 " Ctrl + L 将光标移到当前行的行尾 218 imap <c-l> <ESC>A 219 220 " Ctrl + E 一步加载语法模板和作者、时间信息 221 map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi 222 imap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi 223 vmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi 224 225 " jj 保存文件并留在插入模式 [插入模式] 226 imap jj <ESC>:w<CR>li 227 228 " kk 返回Normal模式 [插入模式] 229 imap kk <ESC>l 230 231 " nt 打开NERDTree [非插入模式] 232 map nt :NERDTree<CR> 233 234 " tl 打开Taglist [非插入模式] 235 map tl :Tlist<CR><c-l> 236 237 238 " ======= 编译 && 运行 ======= " 239 240 " 编译源文件 241 func! CompileCode() 242 exec "w" 243 if &filetype == "c" 244 exec "!gcc -Wall -std=c99 %<.c -o %<" 245 elseif &filetype == "cpp" 246 exec "!g++ -Wall -std=c++98 %<.cpp -o %<" 247 elseif &filetype == "java" 248 exec "!javac %<.java" 249 elseif &filetype == "haskell" 250 exec "!ghc --make %<.hs -o %<" 251 elseif &filetype == "lua" 252 exec "!lua %<.lua" 253 elseif &filetype == "perl" 254 exec "!perl %<.pl" 255 elseif &filetype == "python" 256 exec "!python %<.py" 257 elseif &filetype == "ruby" 258 exec "!ruby %<.rb" 259 endif 260 endfunc 261 262 " 运行可执行文件 263 func! RunCode() 264 exec "w" 265 if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell" 266 exec "! %<.exe" 267 elseif &filetype == "java" 268 exec "!java %<" 269 elseif &filetype == "lua" 270 exec "!lua %<.lua" 271 elseif &filetype == "perl" 272 exec "!perl %<.pl" 273 elseif &filetype == "python" 274 exec "!python %<.py" 275 elseif &filetype == "ruby" 276 exec "!ruby %<.rb" 277 endif 278 endfunc 279 280 " Ctrl + C 一键保存、编译 281 map <c-c> :call CompileCode()<CR> 282 imap <c-c> <ESC>:call CompileCode()<CR> 283 vmap <c-c> <ESC>:call CompileCode()<CR> 284 285 " Ctrl + R 一键保存、运行 286 map <c-r> :call RunCode()<CR> 287 imap <c-r> <ESC>:call RunCode()<CR> 288 vmap <c-r> <ESC>:call RunCode()<CR>