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