1
2
3
4
5
6
7
8
9
10
11
12
13 Tip:
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Tricks:
28
29
30
31
32
33
34
35
36
37 let g:omni_sql_no_default_maps = 1
38
39 set nocompatible
40 set showcmd
41
42
43 set tabstop=4
44 set shiftwidth=4
45 set autoindent
46 set smartindent
47
48
49 set nosol
50
51
52 set modeline
53 set modelines=3
54
55
56 set nojoinspaces
57
58
59 set lazyredraw
60
61
62 set wildmenu
63
64 set wildmode=list:longest
65 set wildignore=*.class,*.o,*.bak,*.swp,*.tmp,*.part
66
67
68 set rulerformat=0x%02B\ %3p%%\ %l,%c%V
69
70 set ruler
71
72
73 set shortmess+=I
74
75 let maplocalleader=','
76
77
78
79 set backspace=indent,eol,start
80
81
82
83
84
85
86
87 syntax on
88
89 set background=dark
90
91
92
93 if $TERM =~ '^screen' | set t_Co=256 | endif
94
95 if $TERM =~ '^rxvt-unicode' | set t_Co=256 | endif
96 if $TERM =~ '^xterm' | set t_Co=256 | endif
97
98 if &t_Co >= 256
99 try
100 colorscheme 256asu1black
101 catch
102 colorscheme pablo
103 endtry
104 else
105 colorscheme pablo
106 endif
107
108
109
110
111
112
113
114
115
116 let g:solarized_termcolors=256
117
118
119
120
121 set laststatus=2
122 set statusline+=\
123 set statusline+=%<
124 set statusline+=%t
125 set statusline+=%r
126 set statusline+=%m
127 set statusline+=\
128 set statusline+=%#warningmsg#
129 set statusline+=%{SyntasticStatuslineFlag()}
130 set statusline+=%*
131 set statusline+=%=
132 set statusline+=%{SynGroup()}
133 set statusline+=\
134 set statusline+=%{ShowSpell()}
135 set statusline+=\
136 set statusline+=%{ShowWrap()}
137 set statusline+=\
138 set statusline+=%{fugitive#statusline()}
139 set statusline+=%w
140 set statusline+=\
141 set statusline+=%{&ff}
142 set statusline+=/
143 set statusline+=%{strlen(&fenc)?&fenc:&enc}
144 set statusline+=/
145 set statusline+=%{&ft}
146 set statusline+=\
147 set statusline+=0x%02B
148 set statusline+=\
149 set statusline+=(%l/%L,%c%V)
150 set statusline+=\
151 set statusline+=%P
152 set statusline+=\
153
154 function! SynGroup()
155 return synIDattr(synID(line("."), col("."), 1), "name")
156 endfunction
157
158 function! ShowWrap()
159 if &wrap
160 return "[Wrap]"
161 else
162 return ""
163 endfunction
164
165 function! ShowSpell()
166 if &spell
167 return "[Spell]"
168 else
169 return ""
170 endfunction
171
172 hi StatusLine ctermfg=white ctermbg=236
173 hi StatusLineNC ctermfg=247 ctermbg=236
174
175
176 au InsertEnter * hi StatusLine ctermfg=236 ctermbg=white
177 au InsertLeave * hi StatusLine ctermfg=white ctermbg=236
178
179
180
181 let python_highlight_all=1
182
183
184
185 set foldenable
186
187 set foldmethod=marker
188 autocmd FileType c,cpp,d,perl,java,cs set foldmethod=syntax
189 autocmd FileType python set foldmethod=indent
190 set foldcolumn=1
191 set foldlevel=99
192
193
194 let perl_fold=1
195 let perl_fold_blocks=1
196
197
198
199 autocmd FileType apache,gitcommit set commentstring=#\ %s
200
201 vmap <silent> <LocalLeader>c <Plug>Commentary
202 nmap <silent> <LocalLeader>c <Plug>CommentaryLine
203
204
205
206 set hls
207
208 set incsearch
209
210 set ignorecase
211
212 set smartcase
213 nmap <silent> <LocalLeader>n :nohlsearch<cr>
214
215
216
217 filetype plugin indent on
218
219
220
221
222 autocmd FileType c,cpp,cs,d,html,java,perl,php,python,shell,vim,xhtml,xml,xslt,xsl set tabstop=2 shiftwidth=2 noexpandtab
223
224
225
226
227
228 autocmd BufNewFile *.pl 0r ~/.vim/skeleton.pl|normal G
229
230 autocmd BufNewFile *.py 0r ~/.vim/skeleton.py|normal G
231
232 autocmd BufNewFile *.c 0r ~/.vim/skeleton.c|normal G
233
234 autocmd BufNewFile *.cpp 0r ~/.vim/skeleton.cpp|normal G
235
236 autocmd BufNewFile *.d 0r ~/.vim/skeleton.d|normal G
237
238 autocmd BufNewFile *.html 0r ~/.vim/skeleton.html|normal GddA
239 autocmd BufNewFile *.xhtml,*.shtml 0r ~/.vim/skeleton.xhtml|set ft=xhtml|normal G
240
241 autocmd BufNewFile *.xml 0r ~/.vim/skeleton.xml|normal G
242
243 autocmd BufNewFile *.xsl 0r ~/.vim/skeleton.xsl|normal 2j26|
244
245 autocmd BufNewFile *.sh 0r ~/.vim/skeleton.sh|normal G
246
247 autocmd BufNewFile *.lisp 0r ~/.vim/skeleton.lisp|normal G
248
249 autocmd BufNewFile *.mkd 0r ~/.vim/skeleton.mkd|normal G
250
251
252 set mouse=a
253
254 set ttymouse=xterm
255 nmap <MiddleMouse> <Nop>
256 map <S-Insert> <MiddleMouse>
257
258 set visualbell
259
260
261
262 set title
263
264
265 if version >= 700
266
267 map <F7> :set spell!<Cr>
268 imap <F7> <Esc>:set spell!<Cr>`]a
269
270
271 noremap <C-c> <Esc>
272
273
274 set nospell
275
276
277 autocmd Syntax * syn region vimModeline start="\svim.\{-}:" end=+:+ display oneline transparent containedin=.*Comment.* contains=@NoSpell
278
279 endif
280
281
282
283
284 nmap <silent> <LocalLeader>l xph
285
286 nmap <silent> <LocalLeader>w "_yiw:s/\(\%#\w\+\)\(\W\+\)\(\w\+\)/\3\2\1/<cr><c-o>:nohlsearch<cr>
287
288 nmap <LocalLeader>s :echo SynGroup()<cr>
289 nmap <LocalLeader>S :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . "> trans<" . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<cr>
290
291 imap <silent> <C-Z> <Esc><C-Z>a
292
293
294 noremap <silent> <LocalLeader>i msHmtgg=G``'tzt`s
295 vnoremap <silent> <LocalLeader>i =
296
297
298 noremap <silent> <LocalLeader>p "+p
299
300
301 command -bang Q q<bang>
302 command -bang Qa qa<bang>
303 "|"
304 command -bang -bar -nargs=? -complete=file W w<bang> <args>
305
306
307 cmap w!! %!sudo tee > /dev/null %
308
309
310
311 autocmd Syntax * call MatchTrailingWhitespaces()
312
313 highlight rightMargin term=bold ctermfg=blue guifg=blue
314
315 noremap <silent> <LocalLeader>m :call ToggleMatch()<Cr>
316
317 fun MatchTrailingWhitespaces()
318 match Error /\s\+$/
319 map <silent> <LocalLeader>t /\s\+$<Cr>
320 let g:MatchLongLines=0
321 endfun
322
323 fun MatchLongLines()
324 match rightMargin /.\%>80v/
325 map <silent> <LocalLeader>t /\v(.%>80v)+<Cr>
326 let g:MatchLongLines=1
327 endfun
328
329 fun ToggleMatch()
330 if !exists( "g:MatchLongLines" ) || g:MatchLongLines==0
331 call MatchLongLines()
332 elseif g:MatchLongLines==1
333 call MatchTrailingWhitespaces()
334 endif
335 endfun
336
337
338 CREDITS:
339 EXAMPLE:
340 if has('python')
341 nmap <silent> <LocalLeader>u :exec('py getUnicodeName()')<Cr>
342
343
344 import vim, unicodedata
345
346 def getUnicodeName():
347 try:
348 print unicodedata.name(vim.current.line[vim.current.window.cursor[1]:].decode('UTF-8')[0])
349 except IndexError, inst:
350 print "getUnicodeName():", inst
351
352
353 endif
354
355
356 noremap <F5> :make<Cr>
357 inoremap <F5> <Esc>:make<Cr>
358
359
360 noremap <silent> <F6> :TlistToggle<Cr>
361 inoremap <silent> <F6> <Esc>:TlistToggle<Cr>`]a
362
363
364
365 noremap <silent> <F8> :RN<Cr>
366 inoremap <silent> <F8> <Esc>:RN<Cr>`]a
367
368
369
370 noremap <silent> <F9> :set number!<Cr>
371 inoremap <silent> <F9> <Esc>:set number!<Cr>`]a
372
373 autocmd BufRead *known_hosts,*authorized_keys,*rc,*history set number
374
375
376 function TrimWhiteSpace()
377 %s/\s*$//
378 :endfunction
379
380
381 noremap <F12> msHmt:call TrimWhiteSpace()<CR>'tzt`s
382 inoremap <F12> msHmt:call TrimWhiteSpace()<CR>'tzt`s
383
384 set listchars=tab:▸\ ,trail:_,eol:¬,extends:❯,precedes:❮
385
386 noremap <silent> <F10> :set list!<Cr>
387 inoremap <silent> <F10> <Esc>:set list!<Cr>`]a
388
389 set pastetoggle=<F11>
390
391
392 let html_ignore_folding = 1
393 let html_number_lines = 1
394 let html_use_css = 1
395 let use_xhtml = 1
396
397
398 OPTIONAL:
399
400
401 let g:tex_flavor='latex'
402
403
404
405
406
407 let g:showmarks_enable=0
408 let g:showmarks_textlower=" "
409 let g:showmarks_textupper=" "
410 let g:showmarks_textother=" "
411 let g:showmarks_include="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
412
413
414 let b:closetag_html_style=1
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432 ""
433
434
435
436
437
438
439
440
441 let g:syntastic_enable_signs=1
442
443
444
445
446 runtime bundle/tpope-vim-pathogen/autoload/pathogen.vim
447 call pathogen#infect()
448
449
450
451
452 nnoremap <localleader>z :GundoToggle<CR>
453
454
455
456 ino <C-A> <C-O>yiW<End>=<C-R>=<C-R>0<CR>
457
458 if version >= 700
459
460
461
462 au TabLeave * let g:MRUtabPage = tabpagenr()
463 fun MRUTab()
464 if exists( "g:MRUtabPage" )
465 exe "tabn " g:MRUtabPage
466 endif
467 endfun
468 noremap <silent> gl :call MRUTab()<Cr>
469 endif
470
471 if !exists(':DiffOrig')
472 command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
473 \ | wincmd p | diffthis
474 endif
475
476
477 autocmd Syntax * 2match Error "vim\d\{0,3}:\s\+set[^:]*$"
478
479
480
481 map <silent> <LocalLeader>h :A<Cr>
482 map <silent> <LocalLeader>as :AS<Cr>
483 map <silent> <LocalLeader>av :AV<Cr>
484
485 if filereadable(".vimrc.host")
486 source .vimrc.host
487 endif
488
489
490