我的gvim配置文件

  1 "history
  2 set history=700
  3 
  4 "syntax highlight
  5 syntax on 
  6 
  7 "enable filetype plugins
  8 filetype plugin indent on
  9 filetype plugin on
 10 "
 11 "Highlight from start of file
 12 autocmd BufEnter * :syntax sync fromstart
 13 
 14 let mapleader=","
 15 
 16 " auto save files when focus is lost
 17 "au FocusLost * :p 
 18 
 19 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 20 " => VIM user interface
 21 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 22 " Set 7 lines to the cursor - when moving vertically using j/k
 23 set so=7
 24 
 25 set nocompatible " 关闭兼容模式
 26 
 27 " Turn on the WiLd menu
 28 set wildmenu
 29 
 30 " Ignore compiled files
 31 set wildignore=*.o,*~,*.pyc
 32 set wildignore+=*/tmp/*,*.so,*.swp,*.zip,.DS_Store 
 33 
 34 "Always show current position
 35 set ruler
 36 
 37 " Height of the command bar
 38 set cmdheight=2
 39 
 40 " Configure backspace so it acts as it should act
 41 set backspace=eol,start,indent
 42 set whichwrap+=<,>,h,l
 43 
 44 " Ignore case when searching
 45 set ignorecase
 46 
 47 " When searching try to be smart about cases 
 48 " 在设置ignorecase的情况下,如果输入的搜索模式中含有大写,
 49 " 则并不忽略大小写
 50 set smartcase
 51 
 52 " Highlight search results
 53 set hlsearch
 54 
 55 " Makes search act like search in modern browsers
 56 " 搜索时,就显示搜索结果
 57 set incsearch 
 58 
 59 " Don't redraw while executing macros (good performance config)
 60 " 延迟重绘
 61 set lazyredraw 
 62 
 63 " For regular expressions turn magic on
 64 " 使用正则时,除了$ . * ^以外的元字符都要加反斜线
 65 set magic
 66 
 67 if has("gui_running")
 68 set guioptions-=T
 69 set guioptions+=e
 70 set guitablabel=%M\ %t
 71 endif
 72 
 73 " Show matching brackets when text indicator is over them
 74 set showmatch 
 75 
 76 " How many tenths of a second to blink when matching brackets
 77 set mat=2
 78 
 79 " 打开自动缩,继承前一行的缩进方式,特别适用于多行注释
 80 set autoindent 
 81 
 82 " 显示行号
 83 set nu 
 84 
 85 " 显示命令
 86 set showcmd 
 87 
 88 " 不使用swp文件
 89 set noswapfile 
 90 
 91 " 关闭备份
 92 set nobackup 
 93 
 94 " 增量式搜索
 95 set incsearch 
 96 
 97 " 高亮搜索
 98 set hlsearch 
 99 
100 set nowb
101 
102 " 在breakat字符处而不是最后一个字符处断行
103 set lbr 
104 
105 " 自动缩进
106 set ai 
107 
108 " 智能缩进
109 set si 
110 
111 " 当文件在外部被修改时,自动重新读取
112 set autoread 
113 
114 " 在所有模式下都允许使用鼠标,还可以是n,v,i,c等
115 set mouse=a 
116 
117 " 隐藏右边滚动条
118 set guioptions-=R 
119 
120 " 正确地处理中文字符的折行和拼接
121 set formatoptions+=mM 
122 
123 " 文件UTF-8编码
124 set fileencodings=utf-8 
125 
126 " 切换粘贴模式
127 "set pastetoggle=<F10> 
128 "set list
129 "set listchars=tab:?\ ,eol:?
130 
131 " 设置缩进
132 set expandtab
133 set smarttab
134 set shiftwidth=4
135 set tabstop=4
136 
137 " 设置移动
138 " 折行内移动
139 map j gj
140 map k gk
141 
142 " Return to last edit position when opening files (You want this!)
143 autocmd BufReadPost *
144 \ if line("'\"") > 0 && line("'\"") <= line("$") |
145 \ exe "normal! g`\"" |
146 \ endif
147 " Remember info about open buffers on close
148 set viminfo^=%
149 
150 " 设置状态栏
151 "总是显示状态栏
152 set laststatus=2
153 
154 "状态栏格式
155 set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ Column:\ %3c\ %P
156 
157 function! HasPaste()
158 if &paste
159 return 'PASTE MODE '
160 en
161 return ''
162 endfunction
163 
164 " 自动完成括号和引号
165 inoremap ( ()<esc>:let leavechar=")"<cr>i
166 inoremap [ []<esc>:let leavechar="]"<cr>i
167 "inoremap { {}<esc>:let leavechar="}"<cr>i
168 inoremap {<cr> {<esc>o}<esc>:let leavechar="}"<cr>O
169 inoremap <leader>' ''<esc>:let leavechar="'"<cr>i
170 inoremap <leader>" ""<esc>:let leavechar='"'<cr>i
171 " 对于{还不适用
172 imap <C-l> <Esc>:exec "normal f" .leavechar<CR>a
173 " 给现有文字添加括号
174 vnoremap ( <Esc>`>a)<Esc>`<i(<Esc>))
175 
176 """""""""""""""""""""""""""""""""""""""""""""""""
177 """"""""""""""""""""C && C++ programming"""""""""
178 """""""""""""""""""""""""""""""""""""""""""""""""
179 "打开C/C++风格的自动缩进
180 set cin
181 "自动设置目录为正在编辑的文件所在目录
182 set autochdir
183 "自动格式化
184 set formatoptions=tcrqn
185 "继承前一行的缩进方式
186 set autoindent
187 "为C程序提供自动缩进
188 set smartindent
189 
190 "设置winmanager
191 "let g:winManagerWindowLayout='FileExplorer,Taglist'
192 "let g:winManagerWindowLayout="BufExplorer,FileExplorer|TagList"
193 "let g:NERDTree_title="[NERDTree]"
194 "function! NERDTree_Start() 
195 " exe 'NERDTree'
196 " endfunction 
197 
198 "function! NERDTree_IsValid() 
199 " return 1 
200 " endfunction
201 let g:winManagerWindowLayout="TagList|FileExplorer,BufExplorer"
202 let g:winManagerWidth=25
203 "let g:bufExplorerMaxHeight=20
204 "let g:bufExplorerResize=0
205 "set autooopen ok
206 let g:AutoOpenWinManager=1
207 nmap <silent> <F8> :WMToggle<cr>
208 "设置file explorer
209 let g:explVertical=1
210 "let g:explWinSize=""
211 let g:explHideFiles='^\.,.*\.o$,.*\.class$,.*\.swp$,.*\.pyc$,.*\.swo$,\.DS_Store$'
212 nmap <C-W><C-F> :FirstExplorerWindow<cr>
213 nmap <C-W><C-B> :BottomExplorerWindow<cr>
214 
215 "设置Taglist
216 let Tlist_Ctags_Cmd='D:\ctags58\ctags.exe'
217 let Tlist_Show_One_File=1
218 let Tlist_Use_Right_Window=1
219 let Tlist_Sort_Type="name"
220 "let Tlist_Process_File_Always=1
221 let Tlist_Exit_OnlyWindow=1
222 "let Tlist_Auto_Open=1
223 let Tlist_File_Fold_Auto_Close=1
224 "let Tlist_WinHeight=10
225 "let Tlist_WinWidth=35
226 "显示taglist菜单
227 let Tlist_Show_Menu=1
228 "nnoremap <silent> <F9> :TlistToggle<CR>
229 
230 
231 "设置cscope
232 if has("cscope")
233 set csprg=/usr/local/bin/cscope
234 set csto=0
235 set cst
236 set nocsverb
237 "add any database in current directory
238 if filereadable("cscope.out")
239 cs add cscope.out
240 "else add database pointed to by environment
241 elseif $CSCOPE_DB !=""
242 cs add $CSCOPE_DB
243 endif
244 set csverb
245 endif
246 "<C-@>s表示同时按住C和@ 再按下s
247 nmap <C-s> :cs find s <C-R>=expand("<cword>")<CR><CR>
248 nmap <C-g> :cs find g <C-R>=expand("<cword>")<CR><CR>
249 nmap <C-c> :cs find c <C-R>=expand("<cword>")<CR><CR>
250 nmap <C-t> :cs find t <C-R>=expand("<cword>")<CR><CR>
251 nmap <C-e> :cs find e <C-R>=expand("<cword>")<CR><CR>
252 nmap <C-f> :cs find f <C-R>=expand("<cfile>")<CR><CR>
253 nmap <C-i> :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
254 nmap <C-d> :cs find d <C-R>=expand("<cword>")<CR><CR>
255 
256 "设置ctags
257 "map <F12> :call Do_CsTag()<CR>
258 
259 "function Do_CsTag()
260 " if(executable('cscope')&&has('cscope'))
261 " call system('find . -name "*.h" -o -name "*.c" -o -name "*.cpp">cscope.files')
262 " call system('cscope -bq')
263 " if filereadable("cscope.out")
264 " call system('cs add cscope.out')
265 " endif
266 " endif
267 " if(executable('ctags'))
268 " call system('ctags -R --c-types=+p --fields=+S *')
269 " endif
270 "endf
271 
272 set tags=Z:/root/program/tags
273 " ^z快速进入shell
274 nmap <C-Z> :shell<cr>
275 " 在文件名上按gf时,在新的tab中打开
276 " map gf :tabnew <cfile><cr>
277 " Tab和Shift-Tab缩进
278 nmap <tab> v>
279 nmap <s-tab> v<
280 vmap <tab> >gv
281 vmap <s-tab> <gv
282 
283 " CTRL-C are Copy
284 "vnoremap <C-C> "+y
285 " CTRL-V are Paste
286 "map <C-V> "+gP
287 "cmap <C-V> <C-R>+
288 "imap <C-V> <C-R>+
289 
290 " strip all trailing whitespace in the current file
291 nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
292 " reselect the text that was just pasted
293 nnoremap <leader>V V`]
294 " 水平分割窗口
295 nnoremap <leader>s <C-w>s
296 " 垂直分割窗口
297 nnoremap <leader>v <C-w>v
298 " ack
299 nnoremap <leader>a :Ack
300 " highlight cursor column
301 nnoremap <leader>lc :set cursorcolumn!<CR>
302 " highlight cursor line
303 nnoremap <leader>ll :set cursorline!<CR>
304 
305 nnoremap <leader>ms :set colorcolumn=80<CR>
306 nnoremap <leader>mh :set colorcolumn=0<CR>
307 
308 " toggle between one window and multi-window (ZoomWin plugin)
309 map <leader>z <C-w>o
310 
311 " 窗口区域切换,Ctrl+jkhl 来切换
312 map <C-j> <C-W>j
313 map <C-k> <C-W>k
314 map <C-h> <C-W>h
315 map <C-l> <C-W>l
316 " 窗口区域切换,Ctrl+↑↓←→ 来切换
317 imap <silent> <C-left> <esc><C-W><left>
318 vmap <silent> <C-left> <esc><C-W><left>
319 nmap <silent> <C-left> <C-W><left>
320 imap <silent> <C-right> <esc><C-W><right>
321 vmap <silent> <C-right> <esc><C-W><right>
322 nmap <silent> <C-right> <C-W><right>
323 imap <silent> <C-up> <esc><C-W><up>
324 vmap <silent> <C-up> <esc><C-W><up>
325 nmap <silent> <C-up> <C-W><up>
326 imap <silent> <C-down> <esc><C-W><down>
327 vmap <silent> <C-down> <esc><C-W><down>
328 nmap <silent> <C-down> <C-W><down>
329 
330 " AutoComplPop
331 "let g:AutoComplPop_Behavior = {
332 "\ 'c': [ {'command' : "\<C-x>\<C-o>",
333 "\ 'pattern' : ".",
334 "\ 'repeat' : 0}
335 "\ ]
336 "\}
337 "let g:acp_behaviorSnipmateLength=1
338 
339 " ctrlp
340 set runtimepath^=~/.vim/bundle/ctrlp
341 let g:ctrlp_working_path_mode = 2
342 let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'
343 
344 set t_Co=256
345 let g:CSApprox_attr_map = { 'bold' : 'bold', 'italic' : '', 'sp' : '' }
346 colorscheme desert
347 
348 "取消查找高亮
349 map <F2> :nohlsearch<CR>
350 set cursorline
351 if has("win32")
352 set guifont=Courier_New:h12:cANSI
353 au GUIEnter * simalt ~x
354 endif
posted @ 2012-10-24 13:24  leealways87  阅读(537)  评论(0编辑  收藏  举报