Mercurial > dotfiles.old
annotate vimrc @ 41:1b3381f349f0
Improve zsh prompt
author | zegervdv <zegervdv@me.com> |
---|---|
date | Fri, 18 Apr 2014 11:16:02 +0200 |
parents | f79361618cac |
children | 4c3b25554bbb |
rev | line source |
---|---|
27 | 1 " vim:fdm=marker |
2 | |
3 " General Settings {{{ | |
0 | 4 set nocompatible |
5 set laststatus=2 | |
6 set noshowmode | |
7 | |
8 execute pathogen#infect() | |
9 | |
10 set backspace=2 | |
11 set autowrite | |
12 | |
13 set vb | |
14 set guioptions-=r | |
15 set guioptions-=l | |
16 set guioptions-=R | |
17 set guioptions-=L | |
18 | |
19 syntax on | |
20 set expandtab | |
21 set number | |
22 set ruler | |
23 set nocursorline | |
24 set showmatch | |
25 set title | |
26 set wrap | |
27 set wrapmargin=2 | |
28 set linebreak | |
29 set lbr | |
30 set tabstop=2 shiftwidth=2 | |
21
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
31 if has("gui_running") |
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
32 set background=dark |
35 | 33 " color base16-ocean |
22 | 34 color hybrid |
21
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
35 else |
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
36 color hybrid |
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
37 endif |
0 | 38 set guifont=Inconsolata\ for\ Powerline:h12 |
39 set autowrite | |
40 set hidden | |
41 set hlsearch | |
42 set incsearch | |
43 set ignorecase | |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
44 set gdefault |
0 | 45 set smartcase |
46 set smartindent | |
47 set autoindent | |
48 set scrolloff=4 | |
49 set textwidth=80 | |
50 | |
51 set history=100 | |
52 set wildmenu | |
19 | 53 set wildmode=full |
0 | 54 |
55 set diffopt+=iwhite | |
56 | |
57 set formatoptions= | |
58 set formatoptions+=c " Format comments | |
59 set formatoptions+=r " Continue comments by default | |
60 set formatoptions+=o " Make comment when using o or O from comment line | |
61 set formatoptions+=q " Format comments with gq | |
62 set formatoptions+=n " Recognize numbered lists | |
63 set formatoptions+=2 " Use indent from 2nd line of a paragraph | |
64 set formatoptions+=l " Don't break lines that are already long | |
65 set formatoptions+=1 " Break before 1-letter words | |
66 | |
67 set splitright | |
68 set virtualedit=block | |
69 set conceallevel=0 | |
70 | |
71 set cryptmethod=blowfish | |
72 | |
73 filetype plugin indent on | |
74 autocmd FileType ruby set tabstop=2|set shiftwidth=2 | |
75 | |
76 set clipboard=unnamed | |
77 | |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
78 set undofile |
16 | 79 set viminfo='10,\"100,:20,%,n~/.viminfo |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
80 |
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
81 " set list |
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
82 " set listchars=tab:▸\ ,eol:¬ |
27 | 83 " }}} |
84 " Custom remaps and tricks {{{ | |
16 | 85 " When editing a file, always jump to the last known cursor position. |
86 " Don't do it for commit messages, when the position is invalid, or when | |
87 " inside an event handler (happens when dropping a file on gvim). | |
88 autocmd BufReadPost * | |
89 \ if &ft != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") | | |
90 \ exe "normal g`\"" | | |
91 \ endif | |
0 | 92 |
40 | 93 nnoremap <F5> :buffers<CR>:buffer<Space> |
94 | |
95 " Set leader to , | |
96 let mapleader = "," | |
97 | |
0 | 98 map <Leader>d :bp<bar>sp<bar>bn<bar>bd<CR> |
99 | |
100 " See long lines as line breaks | |
101 map j gj | |
102 map k gk | |
103 | |
104 " remap tag-search to better place | |
105 nmap <C-$> <C-]> | |
106 | |
107 " Jump to end of line in insert mode | |
33 | 108 inoremap <C-a> <C-o>I |
0 | 109 inoremap <C-e> <C-o>A |
110 | |
33 | 111 nnoremap <C-a> ^ |
112 nnoremap <C-e> $ | |
113 | |
114 nnoremap + <C-a> | |
115 | |
116 " Jump out of inner bracket | |
117 inoremap <C-f> <ESC>%%a | |
0 | 118 |
4
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
119 " Switch between the last two files |
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
120 nnoremap <SPACE><SPACE> <C-^> |
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
121 |
0 | 122 " Very Magic search patterns |
123 nmap / /\v | |
124 cmap s/ s/\v | |
125 | |
40 | 126 " Clear highlight |
127 nnoremap <silent> <leader>n :nohlsearch<CR> | |
128 | |
0 | 129 inoremap £ \ |
130 | |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
131 nnoremap <TAB> % |
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
132 vnoremap <TAB> % |
0 | 133 |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
134 " Move between windows |
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
135 nnoremap <C-l> <C-w><C-l> |
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
136 nnoremap <C-h> <C-w><C-h> |
34
3ed98613040a
Add mapping to switch between tabs in vim
zegervdv <zegervdv@me.com>
parents:
33
diff
changeset
|
137 nnoremap <C-j> <C-w>j |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
138 nnoremap <C-k> <C-w><C-k> |
24 | 139 |
34
3ed98613040a
Add mapping to switch between tabs in vim
zegervdv <zegervdv@me.com>
parents:
33
diff
changeset
|
140 nnoremap <C-S-TAB> :tabprevious<CR> |
3ed98613040a
Add mapping to switch between tabs in vim
zegervdv <zegervdv@me.com>
parents:
33
diff
changeset
|
141 nnoremap <C-TAB> :tabnext<CR> |
3ed98613040a
Add mapping to switch between tabs in vim
zegervdv <zegervdv@me.com>
parents:
33
diff
changeset
|
142 inoremap <C-S-TAB> <ESC>:tabprevious<CR> |
3ed98613040a
Add mapping to switch between tabs in vim
zegervdv <zegervdv@me.com>
parents:
33
diff
changeset
|
143 inoremap <C-TAB> <ESC>:tabnext<CR> |
3ed98613040a
Add mapping to switch between tabs in vim
zegervdv <zegervdv@me.com>
parents:
33
diff
changeset
|
144 |
33 | 145 " highlight last inserted text |
146 nnoremap gV `[v`] | |
147 | |
148 " Briefly change colour of last highlight | |
0 | 149 nnoremap <silent> n n:call HLNext(0.4)<cr> |
150 nnoremap <silent> N N:call HLNext(0.4)<cr> | |
151 | |
152 function! HLNext (blinktime) | |
153 highlight WhiteOnRed ctermfg=white ctermbg=red guifg=white guibg=red | |
154 let [bufnum, lnum, col, off] = getpos('.') | |
155 let matchlen = strlen(matchstr(strpart(getline('.'),col-1),@/)) | |
156 let target_pat = '\c\%#'.@/ | |
157 let ring = matchadd('WhiteOnRed', target_pat, 101) | |
158 redraw | |
159 exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm' | |
160 call matchdelete(ring) | |
161 redraw | |
162 endfunction | |
163 | |
164 " Swap v and CTRL-V | |
165 nnoremap v <C-V> | |
166 nnoremap <C-V> v | |
167 | |
168 vnoremap v <C-V> | |
169 vnoremap <C-V> v | |
170 | |
171 " Use backspace as delete in visual mode | |
172 vmap <BS> x | |
173 | |
174 " Keep selection when shifting | |
175 vmap <expr> > KeepVisualSelection(">") | |
176 vmap <expr> < KeepVisualSelection("<") | |
177 | |
178 function! KeepVisualSelection(cmd) | |
179 set nosmartindent | |
180 if mode() ==# "V" | |
181 return a:cmd . ":set smartindent\<CR>gv" | |
182 else | |
183 return a:cmd . ":set smartindent\<CR>" | |
184 endif | |
185 endfunction | |
186 | |
187 let g:indent_guides_auto_colors = 0 | |
188 let g:indent_guides_guide_size = 1 | |
189 highlight IndentGuidesEven guibg=background | |
190 highlight IndentGuidesOdd guibg='#282a2e' | |
191 | |
27 | 192 " }}} |
40 | 193 " Vim Math plugin; make simple calculations {{{ |
0 | 194 vmap <expr> ++ VMATH_YankAndAnalyse() |
195 nmap ++ vip++ | |
40 | 196 " }}} |
197 " Airline configuration {{{ | |
0 | 198 let g:airline_inactive_collapse=0 |
199 let g:airline_powerline_fonts=1 | |
200 | |
201 let g:airline_left_sep = '' | |
202 let g:airline_right_sep = '' | |
203 | |
204 let g:airline_theme = 'tomorrow' | |
205 | |
206 let g:airline#extensions#syntastic#enabled = 0 | |
40 | 207 " }}} |
208 " YankRing {{{ | |
0 | 209 let g:yankring_replace_n_pkey = 'cp' |
40 | 210 nnoremap <silent> <leader>y :YRShow<CR> |
211 " }}} | |
212 " Nerdtree {{{ | |
0 | 213 map <F2> :NERDTreeToggle<CR> |
214 map <Leader>e :NERDTreeToggle<CR> | |
215 let NERDTreeIgnore = ['\.aux$', '\.log$', '\.out$'] | |
40 | 216 " }}} |
217 " Vim - Rspec {{{ | |
0 | 218 map <leader>t :call RunCurrentSpecFile()<CR> |
219 map <leader>s :call RunNearestSpec()<CR> | |
220 map <leader>l :call RunLastSpec()<CR> | |
221 map <leader>r :call RunAllSpecs()<CR> | |
40 | 222 " }}} |
223 " Cucumber {{{ | |
0 | 224 map <leader>f :call RunAllFeatures()<CR> |
225 map <leader>k :call RunCurrentFeature()<CR> | |
40 | 226 " }}} |
227 " ctrl p - Fuzzy file finder {{{ | |
0 | 228 noremap <C-p> :CtrlP<CR> |
229 let g:ctrl_map = '<c-p>' | |
230 let g:ctrl_cmd = 'CtrlP' | |
231 | |
38 | 232 let g:ctrlp_working_path=0 |
33 | 233 nnoremap <C-o> :CtrlPBuffer<CR> |
32
2da8d8daa033
Add remaps to vim and aliases to zsh
zegervdv <zegervdv@me.com>
parents:
29
diff
changeset
|
234 " map <C-m> :CtrlPTag<CR> |
0 | 235 |
5 | 236 if executable('ag') |
237 let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' | |
238 let g:ctrlp_use_caching = 0 | |
239 endif | |
240 | |
0 | 241 " ctrl p - Commands |
242 map <leader>p :CtrlPCmdPalette<CR> | |
40 | 243 " }}} |
244 " Markdown {{{ | |
0 | 245 let g:vim_markdown_folding_disabled=1 |
40 | 246 " }}} |
247 " tComment {{{ | |
0 | 248 nmap <leader>c <C-_><C-_> |
40 | 249 " }}} |
250 " Neo Complete {{{ | |
29 | 251 let g:acp_enableAtStartup = 0 |
252 let g:neocomplete#enable_at_startup = 1 | |
253 let g:neocomplete#enable_smart_case = 1 | |
254 let g:neocomplete#enable_fuzzy_completion = 1 | |
255 let g:neocomplete#sources#syntax#min_keyword_length = 3 | |
256 let g:neocomplete#lock_buffer_name_pattern = '\*ku\*' | |
0 | 257 |
258 " Define dictionary. | |
259 let g:neocomplete#sources#dictionary#dictionaries = { | |
260 \ 'default' : '', | |
261 \ 'vimshell' : $HOME.'/.vimshell_hist', | |
262 \ 'scheme' : $HOME.'/.gosh_completions' | |
263 \ } | |
27 | 264 |
265 " Define keyword. | |
266 if !exists('g:neocomplete#keyword_patterns') | |
267 let g:neocomplete#keyword_patterns = {} | |
268 endif | |
269 | |
270 let g:neocomplete#keyword_patterns['default'] = '\h\w*' | |
0 | 271 " Recommended key-mappings. |
272 " <CR>: close popup and save indent. | |
273 inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> | |
274 function! s:my_cr_function() | |
29 | 275 " return neocomplete#close_popup() . "\<CR>" |
0 | 276 " For no inserting <CR> key. |
29 | 277 return pumvisible() ? neocomplete#close_popup() : "\<CR>" |
0 | 278 endfunction |
279 " <TAB>: completion. | |
280 inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
281 " <C-h>, <BS>: close popup and delete backword char. | |
282 inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>" | |
283 | |
28 | 284 let s:clang_library_path='/Library/Developer/CommandLineTools/usr/lib' |
285 if isdirectory(s:clang_library_path) | |
286 let g:clang_library_path=s:clang_library_path | |
287 endif | |
288 let g:clang_complete_auto = 0 | |
289 let g:clang_auto_select = 0 | |
29 | 290 let g:clang_use_library = 1 |
28 | 291 |
0 | 292 autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS |
293 autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags | |
294 autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS | |
295 autocmd FileType python setlocal omnifunc=pythoncomplete#Complete | |
296 autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags | |
297 autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete | |
298 if !exists('g:neocomplete#sources#omni#input_patterns') | |
299 let g:neocomplete#sources#omni#input_patterns = {} | |
300 endif | |
301 | |
26 | 302 " autocmd FileType c NeoCompleteTagMakeCache |
40 | 303 " }}} |
304 " Neo Snippets {{{ | |
0 | 305 imap <C-k> <Plug>(neosnippet_expand_or_jump) |
306 smap <C-k> <Plug>(neosnippet_expand_or_jump) | |
307 xmap <C-k> <Plug>(neosnippet_expand_target) | |
308 | |
23
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
309 " imap <expr><TAB> neosnippet#expandable_or_jumpable() ? |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
310 " \ "\<Plug>(neosnippet_expand_or_jump)" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
311 " \: pumvisible() ? "\<C-n>" : "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
312 " smap <expr><TAB> neosnippet#expandable_or_jumpable() ? |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
313 " \ "\<Plug>(neosnippet_expand_or_jump)" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
314 " \: "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
315 |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
316 |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
317 imap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
318 imap <expr><C-k> neosnippet#expandable_or_jumpable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
319 smap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" |
0 | 320 let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::' |
321 | |
322 let g:neosnippet#snippets_directory='~/.vim/snippets' | |
40 | 323 " }}} |
324 " Tabular {{{ | |
0 | 325 inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a |
326 | |
327 function! s:align() | |
328 let p = '^\s*|\s.*\s|\s*$' | |
329 if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p) | |
330 let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g')) | |
331 let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*')) | |
332 Tabularize/|/l1 | |
333 normal! 0 | |
334 call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) | |
335 endif | |
336 endfunction | |
337 | |
338 " Align Migration files | |
339 vmap <c-a> :Tabularize /:/l1l0l0<CR> | |
340 | |
341 nmap <Leader>a= :Tabularize /=<CR> | |
342 vmap <Leader>a= :Tabularize /=<CR> | |
343 nmap <Leader>a=> :Tabularize /=><CR> | |
344 vmap <Leader>a=> :Tabularize /=><CR> | |
345 nmap <Leader>a: :Tabularize /:\zs/l0l1<CR> | |
346 vmap <Leader>a: :Tabularize /:\zs/l0l1<CR> | |
347 nmap <Leader>a, :Tabularize /,\zs/l0l1<CR> | |
348 vmap <Leader>a, :Tabularize /,\zs/l0l1<CR> | |
349 vmap <Leader>a- :Tabularize /-<CR> | |
40 | 350 " }}} |
351 " Latex plugin {{{ | |
0 | 352 au BufNewFile,BufRead,BufEnter *.tex setlocal spell spelllang=en_gb |
353 au BufNewFile,BufRead,BufEnter *.tex setlocal textwidth=0 | |
354 au BufNewFile,BufRead,BufEnter *.txt setlocal spell spelllang=en_gb | |
355 au BufNewFile,BufRead,BufEnter *.txt setlocal textwidth=0 | |
356 | |
357 let g:tex_conseal = "" | |
358 | |
359 let g:tex_comment_nospell=1 | |
360 let g:Tex_DefaultTargetFormat = 'pdf' | |
361 let g:tex_flavor = 'latex' | |
362 let g:Tex_TreatMacViewerAsUNIX = 1 | |
363 let g:Tex_ExecuterUNIXViewerInForeground = 1 | |
364 let g:Tex_ViewRule_pdf = 'open -a Preview' | |
365 let g:Tex_ViewRule_ps = 'open -a Preview' | |
40 | 366 " }}} |
367 " Tagbar {{{ | |
0 | 368 nmap <F8> :TagbarToggle<CR> |
40 | 369 " }}} |
370 " Gundo tree {{{ | |
0 | 371 nnoremap <leader>u :GundoToggle<CR> |
40 | 372 " }}} |
373 " Smalls {{{ | |
13 | 374 nmap s <Plug>(smalls) |
375 omap s <Plug>(smalls) | |
376 xmap s <Plug>(smalls) | |
40 | 377 " }}} |
378 " Textmanip {{{ | |
14
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
379 xmap <C-j> <Plug>(textmanip-move-down) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
380 xmap <C-k> <Plug>(textmanip-move-up) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
381 xmap <C-h> <Plug>(textmanip-move-left) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
382 xmap <C-l> <Plug>(textmanip-move-right) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
383 xmap <F10> <Plug>(textmanip-toggle-mode) |
40 | 384 " }}} |
385 " Startify {{{ | |
27 | 386 let g:startify_session_dir = "~/.vim/sessions" |
387 " }}} | |
388 | |
13 | 389 " Load local vimrc |
3
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
390 if filereadable($HOME . "/.vimrc.local") |
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
391 source ~/.vimrc.local |
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
392 endif |
24 | 393 |
394 nnoremap <Enter> o<ESC> |