windows下的gvim配置:
1.如果win下的gvim在保存并退出(:wq或ZZ)的时候,提示说无法写入默默路径下的_viminfo文件,那么,我遇到的情况是自己的HOME路径不存在。默认会在HOME路径中的_viminfo中写入。。参考:http://jiadingjun.blogspot.com/2009/05/viminfo_30.html
2.ctags报错
需要下载ctags.zip然后复制ctags.exe到<vimdir>/vim73/下面
参考配置:http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.html
3.win下的gvim编译java文件,文件中的中文报错,cmd说不支持gbk
可以自己设定快捷键编译,编译的语句在vimrc中添加编码参数:
1 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2 " 语言的编译和运行 3 " 支持的语言:java F5编译(保存+编译) F6运行 4 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 5 func! CompileCode() 6 exec "w" 7 if &filetype == "java" 8 exec "!javac -encoding utf-8 %" 9 endif 10 endfunc 11 func! RunCode() 12 if &filetype == "java" 13 exec "!java -classpath %:h; %:t:r" 14 endif 15 endfunc 16 17 " F5 保存+编译 18 map <F5> :call CompileCode()<CR> 19 20 " F6 运行 21 map <F6> :call RunCode()<CR>
参考:http://s1099.iteye.com/blog/1447662
完整版:
1 "代码来源:http://s1099.iteye.com/blog/1447662 2 set nocompatible "不要使用vi的键盘模式,而是vim自己的 3 source $VIMRUNTIME/mswin.vim 4 behave mswin "兼容windows下的快捷键 5 6 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 7 " GVIM自身的设置 8 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 9 language messages zh_CN.utf-8 " 解决consle输出乱码 10 colorscheme desert " 灰褐色主题 11 set guioptions-=T " 隐藏工具栏 12 set guifont=Monaco:h10 " 字体 && 字号 13 set noerrorbells " 关闭错误提示音 14 set nobackup " 不要备份文件 15 set linespace=0 " 字符间插入的像素行数目 16 set shortmess=atI " 启动的时候不显示那个援助索马里儿童的提示 17 set novisualbell " 不要闪烁 18 set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离 19 set mouse=a " 可以在buffer的任何地方 -> 20 set selection=exclusive " 使用鼠标(类似office中 -> 21 set selectmode=mouse,key " 在工作区双击鼠标定位) 22 set cursorline " 突出显示当前行 23 set nu! " 显示行号 24 set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界 25 set completeopt=longest,menu "按Ctrl+N进行代码补全 26 27 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 28 " 文本格式和排版 29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 30 set list " 显示Tab符,-> 31 set listchars=tab:\|\ , " 使用一高亮竖线代替 32 set tabstop=4 " 制表符为4 33 set autoindent " 自动对齐(继承前一行的缩进方式) 34 set smartindent " 智能自动缩进(以c程序的方式) 35 set softtabstop=4 36 set shiftwidth=4 " 换行时行间交错使用4个空格 37 set noexpandtab " 不要用空格代替制表符 38 ""set expandtab 39 set cindent " 使用C样式的缩进 40 set smarttab " 在行和段开始处使用制表符 41 set nowrap " 不要换行显示一行 42 43 44 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 45 " 状态行(命令行)的显示 46 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 47 set cmdheight=2 " 命令行(在状态行下)的高度,默认为1,这里是2 48 set ruler " 右下角显示光标位置的状态行 49 set laststatus=2 " 开启状态栏信息 50 set wildmenu " 增强模式中的命令行自动完成操作 51 52 53 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 54 " 文件相关 55 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 56 set fenc=utf-8 57 set encoding=utf-8 " 设置vim的工作编码为utf-8,如果源文件不是此编码,vim会进行转换后显示 58 set fileencoding=utf-8 " 让vim新建文件和保存文件使用utf-8编码 59 set fileencodings=utf-8,gbk,cp936,latin-1 60 filetype on " 侦测文件类型 61 filetype indent on " 针对不同的文件类型采用不同的缩进格式 62 filetype plugin on " 针对不同的文件类型加载对应的插件 63 syntax on " 语法高亮 64 filetype plugin indent on " 启用自动补全 65 66 67 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 68 " 查找 69 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 70 set hlsearch " 开启高亮显示结果 71 set nowrapscan " 搜索到文件两端时不重新搜索 72 set incsearch " 开启实时搜索功能 73 74 75 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 76 " 语言的编译和运行 77 " 支持的语言:java F5编译(保存+编译) F6运行 78 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 79 func! CompileCode() 80 exec "w" 81 if &filetype == "java" 82 exec "!javac -encoding utf-8 %" 83 endif 84 endfunc 85 func! RunCode() 86 if &filetype == "java" 87 exec "!java -classpath %:h; %:t:r" 88 endif 89 endfunc 90 91 " F5 保存+编译 92 map <F5> :call CompileCode()<CR> 93 94 " F6 运行 95 map <F6> :call RunCode()<CR> 96 97 98 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 99 " 实用功能 100 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 101 "--------引号 && 括号自动匹配 102 :inoremap ( ()<ESC>i 103 :inoremap ) <c-r>=ClosePair(')')<CR> 104 :""inoremap { {}<ESC>i 105 :""inoremap } <c-r>=ClosePair('}')<CR> 106 imap { {}<ESC>i<CR><ESC>O 107 "插入大括号 就是录制一个宏 108 :inoremap [ []<ESC>i 109 :inoremap ] <c-r>=ClosePair(']')<CR> 110 ":inoremap < <><ESC>i 111 ":inoremap > <c-r>=ClosePair('>')<CR> 112 :inoremap " ""<ESC>i 113 :inoremap ' ''<ESC>i 114 :inoremap ` ``<ESC>i 115 function ClosePair(char) 116 if getline('.')[col('.') - 1] == a:char 117 return "\<Right>" 118 else 119 return a:char 120 endif 121 endf 122 "--------启用代码折叠,用空格键来开关折叠 123 set foldenable " 打开代码折叠 124 set foldmethod=syntax " 选择代码折叠类型 125 set foldlevel=100 " 禁止自动折叠 126 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR> 127 128 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 129 " 插件 130 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 131 " <F9>打开文件浏览窗口 插件为WinManager 132 let g:winManagerWindowLayout='FileExplorer' 133 nmap <F9> :WMToggle<CR> 134 135 " MiniBufExplorer 136 let g:miniBufExplMapWindowNavVim = 1 137 let g:miniBufExplMapWindowNavArrows = 1 138 let g:miniBufExplMapCTabSwitchBufs = 1 139 let g:miniBufExplModSelTarget = 1 140 141 "新建.c,.h,.sh,.java文件,自动插入文件头 142 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 143 ""定义函数SetTitle,自动插入文件头 144 func SetTitle() 145 "如果文件类型为.sh文件 146 if &filetype == 'sh' 147 call setline(1,"\###########################################################") 148 call append(line("."), "\# Filename: ".expand("%")) 149 call append(line(".")+1, "\# Author: ChrisZZ") 150 call append(line(".")+2, "\# E-mail: zchrissirhcz@163.com") 151 call append(line(".")+3, "\# Created Time: ".strftime("%c")) 152 call append(line(".")+4, "\###################################################") 153 call append(line(".")+5, "\#!/bin/bash") 154 call append(line(".")+6, "") 155 endif 156 157 if &filetype == 'c' 158 call setline(1, "/*") 159 call append(line("."), " * =================================================") 160 call append(line(".")+1, " *") 161 call append(line(".")+2, " * Filename: ".expand("%")) 162 call append(line(".")+3, " *") 163 call append(line(".")+4, " * Description: ") 164 call append(line(".")+5, " *") 165 call append(line(".")+6, " * Version: 0.01") 166 call append(line(".")+7, " * Created: ".strftime("%c")) 167 call append(line(".")+8, " * Author: ChrisZZ, zchrissirhcz@163.com") 168 call append(line(".")+9," * Company: ZJUT") 169 call append(line(".")+10, " *") 170 call append(line(".")+11, " * =================================================") 171 call append(line(".")+12, " */") 172 call append(line(".")+13, "#include<stdio.h>") 173 call append(line(".")+14, "") 174 call append(line(".")+15, "int main(int argc, char** argv){") 175 call append(line(".")+16, "") 176 call append(line(".")+17, " return 0;") 177 call append(line(".")+18, "}") 178 endif 179 180 if &filetype == 'cpp' 181 call setline(1, "/*") 182 call append(line("."), " * =================================================") 183 call append(line(".")+1, " *") 184 call append(line(".")+2, " * Filename: ".expand("%")) 185 call append(line(".")+3, " *") 186 call append(line(".")+4, " * Description: ") 187 call append(line(".")+5, " *") 188 call append(line(".")+6, " * Version: 0.01") 189 call append(line(".")+7, " * Created: ".strftime("%c")) 190 call append(line(".")+8, " * Author: ChrisZZ, zchrissirhcz@163.com") 191 call append(line(".")+9," * Company: ZJUT") 192 call append(line(".")+10, " *") 193 call append(line(".")+11, " * =================================================") 194 call append(line(".")+12, " */") 195 call append(line(".")+13, "#include<iostream>") 196 call append(line(".")+14, "using namespace std;") 197 call append(line(".")+15, "int main(){") 198 call append(line(".")+16, "") 199 call append(line(".")+17, " return 0;") 200 call append(line(".")+18, "}") 201 endif 202 203 if &filetype == 'java' 204 call setline(1, "/*") 205 call append(line("."), " * =================================================") 206 call append(line(".")+1, " *") 207 call append(line(".")+2, " * Filename: ".expand("%")) 208 call append(line(".")+3, " *") 209 call append(line(".")+4, " * Description: ") 210 call append(line(".")+5, " *") 211 call append(line(".")+6, " * Version: 0.01") 212 call append(line(".")+7, " * Created: ".strftime("%c")) 213 call append(line(".")+8, " * Author: ChrisZZ, zchrissirhcz@163.com") 214 call append(line(".")+9," * Company: ZJUT") 215 call append(line(".")+10, " *") 216 call append(line(".")+11, " * =================================================") 217 call append(line(".")+12, " */") 218 call append(line(".")+13, "") 219 endif 220 221 222 "新建文件后,自动定位到文件末尾 223 autocmd BufNewFile * normal G 224 225 endfunc
linux下的.vimrc文件:
1.set nocp 设定不是用vi默认配置。默认配置中当你搜索过某个词之后,再次打开这个文件时有上次搜索的高亮显示。我不喜欢这样(查找的痕迹问题困扰了我好久)
---------------------------------------------------------------------
更新
---------------------------------------------------------------------
最近在学ruby和python的语言,发现用vim时候还是不方便。如果ruby python一个个的去下插件,可行,但是麻烦。vundle真的强大,用git管理vim插件,所以现在用vundle
英文不好的可以看这里http://blog.houqp.me/use-vundle-to-manage-your-plugins/