-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.vimrc
executable file
·623 lines (564 loc) · 18.1 KB
/
.vimrc
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
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
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
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
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
" .vimrc
" Author: Nicola Paolucci <[email protected]>
" Source: https://bitbucket.org/durdn/cfg/src
" Preamble with Pathogen "{{{
call pathogen#helptags()
call pathogen#runtime_append_all_bundles()
filetype plugin indent on
"}}}
" Color Scheme "{{{
set background=dark
colorscheme solarized
" colorscheme ir_black
"}}}
" Basic settings and variables"{{{
if has('syntax') && (&t_Co > 2)
syntax on
endif
highlight ColorColumn ctermbg=lightgrey guibg=lightgrey
set colorcolumn=80
set encoding=utf-8
set nocompatible hidden ignorecase smartcase title expandtab autoindent
set nobackup noswapfile showmode showcmd ttyfast gdefault
set hlsearch visualbell shiftround incsearch nu wildmenu nowrap
"default foldlevel 1 to see headings
set foldlevel=1
set noantialias
let mapleader = ","
let maplocalleader = ";"
set copyindent " copy the previous indentation on autoindenting
set showmatch " set show matching parenthesis
set noerrorbells " don't beep
set tabstop=2
set softtabstop=2
set shiftwidth=2
set history=1000
set undolevels=1000 " use many levels of undo
set scrolloff=3
set shortmess=atI
set guioptions=a " get rid of stupid scrollbar/menu/tabs/etc
set guifont=Terminus:h14
set whichwrap=h,l,~,[,]
set ff=unix " set file type to unix
set foldmethod=marker " sets the fold method to {{ }} markers
set backspace=indent,eol,start
set laststatus=2
set noequalalways
"REPLACED BY vim-powerline set statusline=%F%m%r%h%w\ [%{&ff}]\ [%Y]\ [ascii=\%03.3b]\ [hex=\%02.2B]\ [%04l,%04v][%p%%]\ [len=%L]\ %{fugitive#statusline()}
set listchars=tab:\|\ ,trail:·,eol:¬
set wildmenu
" don't show the preview pane for some omni completions
set completeopt-=preview
" diff should ignore whitespace
set diffopt+=iwhite
" Save when losing focus
" au FocusLost * :wa
" Resize splits when the window is resized
au VimResized * exe "normal! \<c-w>="
" Powerline customization"{{{
call Pl#Theme#InsertSegment('wordcount', 'after', 'lineinfo')
"}}}
" Wildmenu completion {{{
set wildmode=list:longest,list:full
set wildignore+=.hg,.git,.svn " Version control
set wildignore+=*.aux,*.out,*.toc " LaTeX intermediate files
set wildignore+=*.jpg,*.bmp,*.gif,*.png,*.jpeg " binary images
set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest " compiled object files
set wildignore+=*.jar,*.war,*.ear " java formats
set wildignore+=*.spl " compiled spelling word lists
set wildignore+=*.sw? " Vim swap files
set wildignore+=*.DS_Store " OSX bullshit
set wildignore+=*.luac " Lua byte code
set wildignore+=migrations " Django migrations
set wildignore+=*.pyc " Python byte code
set wildignore+=classes
set wildignore+=lib
set wildignore+=*/.m2/* " Maven
set wildignore+=*/target/* " Java target folders
" }}}
" }}}
" Abbreviations {{{
function! EatChar(pat)
let c = nr2char(getchar(0))
return (c =~ a:pat) ? '' : c
endfunction
function! MakeSpacelessIabbrev(from, to)
execute "iabbrev <silent> ".a:from." ".a:to."<C-R>=EatChar('\\s')<CR>"
endfunction
call MakeSpacelessIabbrev('drd/', 'http://durdn.com/')
call MakeSpacelessIabbrev('bb/', 'http://bitbucket.org/')
call MakeSpacelessIabbrev('bbd/', 'http://bitbucket.org/durdn/')
call MakeSpacelessIabbrev('gh/', 'http://github.com/')
call MakeSpacelessIabbrev('ghd/', 'http://github.com/durdn/')
iabbrev np@ [email protected]
"}}}
" Quick editing {{{
"edit shortcuts list"
nnoremap <leader>em <C-w>s<C-w>j<C-w>L:e ~/.vim/mappings.txt<cr>
"edit the .bashrc"
nmap <silent> <leader>eb :e ~/.bashrc<CR>
"edit the .vimrc"
nmap <silent> <leader>ev :e ~/.vimrc<CR>
"nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e ~/.vimrc<cr>
"edit the .gitconfig"
nmap <silent> <leader>eg :e ~/.gitconfig<CR>
"edit the .tmux.conf"
nmap <silent> <leader>et :e ~/.tmux.conf<CR>
"open a scratch file
nmap <silent> <leader>eh :e ~/scratch.txt<CR>
"reload the .vimrc"
nmap <silent> <leader>rv :source ~/.vimrc<CR>
" Reload all snipmate snippets
nmap <silent> <leader>rs :call ReloadAllSnippets()<cr>
" Edit snippets
nmap <silent> <leader>es :e ~/.vim/bundle/durdn-customisation/snippets/<cr>
" Edit vim color scheme
nmap <silent> <leader>ec :e ~/.vim/bundle/durdn-customisation/colors/ir_black.vim<cr>
" Edit delixl aliases
nmap <silent> <leader>ed :e ~/.delixl-aliases<cr>
" Edit mercurial configuration
nmap <silent> <leader>er :e ~/.hgrc<cr>
" Edit slate configuration
nmap <silent> <leader>el :e ~/.slate<cr>
" }}}
" Keyboard Shortcuts and remappings "{{{
" core keyboard tweaks {{{
" Repeat last command and put cursor at start of change
nnoremap . .`[
nnoremap ' `
nnoremap ` '
nnoremap / /\v
vnoremap / /\v
inoremap <F1> <ESC>
nnoremap <F1> <ESC>
vnoremap <F1> <ESC>
" ease of use keyboard mappings (why do I care about top/bottom of screen?)
nnoremap H ^
nnoremap L $
" go to the bottom of file with ;;
nnoremap ;; G
" : changes with less keystrokes
nnoremap ; :
nnoremap j gj
nnoremap k gk
" Don't move on *
nnoremap * *<c-o>
map <C-h> <C-w>h
map <C-j> <C-w>j
map <C-k> <C-w>k
map <C-l> <C-w>l
" capital W/Q same as w/q in command mode
cnoreabbrev W w
cnoreabbrev Q q
" select all
map <leader>a ggVG
" reselect visual block after indent/outdent
vnoremap < <gv
vnoremap > >gv
" buffer switching/management, might as well use those keys for something useful
map <Right> :bnext<CR>
imap <Right> <ESC>:bnext<CR>
map <Left> :bprev<CR>
imap <Left> <ESC>:bprev<CR>
map <Del> :bd<CR>
" use jk instead than <esc>
inoremap jk <esc>
"Go to last edit location with ,.
nnoremap ,. '.
" Space to toggle folds.
nnoremap <Space> za
vnoremap <Space> za
" leader leader alias ,, to go back to previous buffer
nnoremap <leader><leader> <c-^>
" make C-a C-e work in command line mode
cnoremap <C-j> <t_kd>
cnoremap <C-k> <t_ku>
cnoremap <C-a> <Home>
cnoremap <C-e> <End>
" }}}
" buffer operations: show spaces, splits, del, maximize, line numbers {{{
"show spaces"
nmap <silent> <leader>s :set nolist!<CR>
"show line numbers"
nmap <silent> <leader>l :set nonu!<CR>
"maximize only this window"
nmap <silent> <leader>m :only<CR>
"vertical split"
nmap <silent> <leader>v :bel :vne<CR>
"horizontal split"
nmap <silent> <leader>f :bel :new<CR>
"wrap lines"
nmap <silent> <leader>w :set nowrap!<CR>
"close viewport buffer"
nmap <silent> <leader>x :hid<CR>
"close buffer"
nmap <silent> <leader>X :BD<CR>
" toggle between number and relative number on ,l
nnoremap <leader>l :call ToggleRelativeAbsoluteNumber()<CR>
function! ToggleRelativeAbsoluteNumber()
if &number
set relativenumber
else
set number
endif
endfunction
"}}}
" search stuff {{{
" Open a Quickfix window for the last search.
nnoremap <silent> <leader>/ :execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR>
"hide hightlight of searches"
nmap <silent> <leader>n :silent :nohlsearch<CR>
nmap <silent> // :nohlsearch<CR>
" }}}
" Quick edits: clean whitespace, retab: ,W ,T {{{
" Clean whitespace
map <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
" Retab and format with spaces
nnoremap <leader>T :set expandtab<cr>:retab!<cr>
"}}}
" cool path completions {{{
"picked up from carlhuda janus
" Opens an edit command with the path of the currently edited file filled in
" Normal mode: <Leader>nf
nmap <leader>nf :e <C-R>=expand("%:p:h") . "/" <CR> <BS>
" Opens a tab edit command with the path of the currently edited file filled in
" Normal mode: <Leader>nt
nmap <leader>nt :tabe <C-R>=expand("%:p:h") . "/" <CR> <BS>
" Inserts the path of the currently edited file into a command
" Command mode: Ctrl+P
cmap <C-P> <C-R>=expand("%:p")<CR> <BS>
" copy current filename into system clipboard - mnemonic: (c)urrent(f)ilename
nnoremap <silent> ,cf :let @* = expand("%:p")<CR>
" (c)opy (c)ommand - which allows us to execute
" the line we're looking at (it does so by yy-copy, colon
" to get to the command mode, C-f to get to history editing
" p to paste it, C-c to return to command mode, and CR to execute
nmap <silent> ,cc yy:<C-f>p<C-c><CR>
" Nerd tree find current file
nnoremap <silent> <C-\> :NERDTreeFind<CR>
"use tab for auto completion
"function! SuperTab()
"if (strpart(getline('.'),col('.')-2,1)=~'^\W\?$')
"return "\<Tab>"
"else
"return "\<C-n>"
"endif
"endfunction
"imap <Tab> <C-R>=SuperTab()<CR>
" }}}
" various greps {{{
"open up a git grep line, with a quote started for the search
nnoremap <leader>gg :GitGrep ""<left>
"git grep the current file name
nnoremap <leader>gf :call GitGrepCurrentFile()<CR>
let g:gitfullgrepprg="git\\ gra"
function! GitGrepCurrentFile()
let current_filename = expand("%")
let grepprg_bak=&grepprg
exec "set grepprg=" . g:gitfullgrepprg
execute "silent! grep " . current_filename
botright copen
let &grepprg=grepprg_bak
exec "redraw!"
endfunction
"git grep the current word using K (mnemonic Kurrent)
nnoremap <silent> K :GitGrep <cword><CR>
" }}}
" capitalize shortcuts {{{
" In visual-mode, capitalize all words in selection
nmap gcgc 0gUlV:s/\s\(\a\)/ \U\1/p<cr>:set nohlsearch<CR>
" }}}
" enrich/derich markdown with wordpress trick {{{
nmap <leader>pr :%s/\`\([^`]\+\)`/\<span class=\"text codecolorer\"\>\1<\/span>/p<cr>:set nohlsearch<CR>
nmap <leader>pu :%s/<span.\{-}>\(.\{-}\)<\/span>/`\1`/p<cr>:set nohlsearch<CR>
" }}}
" unwrap paragraphs selected {{{
nmap <leader>7 :'<,'>/\(\S\)\n/\1\ /<cr>:'<,'>/\n/&&<CR>
" }}}
" giant fonts for webinars and demos {{{
nmap <leader>6 :set antialias<cr>:set guifont=Monaco:h20<cr>
"}}}
"}}}
" Conditional configuration (macvim,gui,etc)"{{{
" ==================================
if has('unix')
" xml formatting
nnoremap <F2> :silent 1,$!xmllint --format --recover - 2>/dev/null<cr>
"remap omny completion to Ctrl-n
inoremap <C-n> <C-x><C-o>
"write a read only file that needs sudo first
cmap w!! w !sudo tee % >/dev/null
"c-n/p goes to the next prev match and list entries again
map <C-n> :cn<CR>:cl<CR>
map <C-p> :cp<CR>:cl<CR>
endif
if has('gui_gtk')
set guifont=Terminus
endif
if has('gui_macvim')
"terminus on osx different because of retina display
set guifont=Terminus:h16
"winpos 720 0
" goes to real fullscreen on OS X
set fuoptions=maxvert,maxhorz
macmenu &File.New\ Tab key=<nop>
" map <leader>t <Plug>PeepOpen
endif
if has('gui_win64')
set guifont=Terminus:h14
nmap <silent> <leader>ev :e ~/_vimrc<CR>
"overwrite mapping to reload the .vimrc"
nmap <silent> <leader>rv :source ~/_vimrc<CR>
endif
if has('gui_win32')
set guifont=Terminus:h14
"winpos 600 0
"status line does not work with fugitive on win32
"REPLACED BY vim-powerline set statusline=%F%m%r%h%w\ [%{&ff}]\ [%Y]\ [ascii=\%03.3b]\ [hex=\%02.2B]\ [%04l,%04v][%p%%]\ [len=%L]\
"overwrite mapping to edit the .vimrc"
nmap <silent> <leader>ev :e ~/_vimrc<CR>
"overwrite mapping to reload the .vimrc"
nmap <silent> <leader>rv :source ~/_vimrc<CR>
" has proper command-t compiled
map <leader>t :CommandT<CR>
endif
if has('gui_running')
syntax on
set cursorline
set ruler
set lines=85
set columns=119
set guioptions-=T " no toolbar
"remap omny completion to Ctrl-space
inoremap <C-space> <C-x><C-o>
else
inoremap <Nul> <C-x><C-o>
endif
" Remember last location in file
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
endif
"}}}
" Plugins configuration"{{{
" ===================================================================
" ctrlp {{{
"let g:ctrlp_map = '<leader>t'
let g:ctrlp_map = '<c-p>'
let g:ctrlp_dotfiles = 1
let g:ctrlp_working_path_mode = 2
let g:ctrlp_match_window_bottom = 0
let g:ctrlp_match_window_reversed = 0
let g:ctrlp_custom_ignore = {
\ 'dir': 'build/.*\|/temp/.*',
\ 'file': '\.jar$\|\.ear$|\.zip',
\ }
let g:ctrlp_user_command = 'git ls-files %s'
" }}}
" Nerdtree "{{{
" autocmd VimEnter * call s:CdIfDirectory(expand("<amatch>"))
autocmd FocusGained * call s:UpdateNERDTree()
autocmd WinEnter * call s:CloseIfOnlyNerdTreeLeft()
" Close all open buffers on entering a window if the only
" buffer that's left is the NERDTree buffer
function! s:CloseIfOnlyNerdTreeLeft()
if exists("t:NERDTreeBufName")
if bufwinnr(t:NERDTreeBufName) != -1
if winnr("$") == 1
q
endif
endif
endif
endfunction
" If the parameter is a directory, cd into it
function! s:CdIfDirectory(directory)
let explicitDirectory = isdirectory(a:directory)
let directory = explicitDirectory || empty(a:directory)
if explicitDirectory
exe "cd " . fnameescape(a:directory)
endif
" Allows reading from stdin
" ex: git diff | mvim -R -
if strlen(a:directory) == 0
return
endif
if directory
NERDTree
wincmd p
bd
endif
if explicitDirectory
wincmd p
endif
endfunction
" NERDTree utility function
function! s:UpdateNERDTree(...)
let stay = 0
if(exists("a:1"))
let stay = a:1
end
if exists("t:NERDTreeBufName")
let nr = bufwinnr(t:NERDTreeBufName)
if nr != -1
exe nr . "wincmd w"
exe substitute(mapcheck("R"), "<CR>", "", "")
if !stay
wincmd p
end
endif
endif
if exists(":CommandTFlush") == 2
CommandTFlush
endif
endfunction
" Utility functions to create file commands
function! s:CommandCabbr(abbreviation, expansion)
execute 'cabbrev ' . a:abbreviation . ' <c-r>=getcmdpos() == 1 && getcmdtype() == ":" ? "' . a:expansion . '" : "' . a:abbreviation . '"<CR>'
endfunction
function! s:FileCommand(name, ...)
if exists("a:1")
let funcname = a:1
else
let funcname = a:name
endif
execute 'command -nargs=1 -complete=file ' . a:name . ' :call ' . funcname . '(<f-args>)'
endfunction
function! s:DefineCommand(name, destination)
call s:FileCommand(a:destination)
call s:CommandCabbr(a:name, a:destination)
endfunction
" Public NERDTree-aware versions of builtin functions
function! ChangeDirectory(dir, ...)
execute "cd " . fnameescape(a:dir)
let stay = exists("a:1") ? a:1 : 1
NERDTree
if !stay
wincmd p
endif
endfunction
function! Touch(file)
execute "!touch " . shellescape(a:file, 1)
call s:UpdateNERDTree()
endfunction
function! Remove(file)
let current_path = expand("%")
let removed_path = fnamemodify(a:file, ":p")
if (current_path == removed_path) && (getbufvar("%", "&modified"))
echo "You are trying to remove the file you are editing. Please close the buffer first."
else
execute "!rm " . shellescape(a:file, 1)
endif
call s:UpdateNERDTree()
endfunction
function! Mkdir(file)
execute "!mkdir " . shellescape(a:file, 1)
call s:UpdateNERDTree()
endfunction
function! Edit(file)
if exists("b:NERDTreeRoot")
wincmd p
endif
execute "e " . fnameescape(a:file)
ruby << RUBY
destination = File.expand_path(VIM.evaluate(%{system("dirname " . shellescape(a:file, 1))}))
pwd = File.expand_path(Dir.pwd)
home = pwd == File.expand_path("~")
if home || Regexp.new("^" + Regexp.escape(pwd)) !~ destination
VIM.command(%{call ChangeDirectory(fnamemodify(a:file, ":h"), 0)})
end
RUBY
endfunction
" Define the NERDTree-aware aliases
call s:DefineCommand("cd", "ChangeDirectory")
call s:DefineCommand("touch", "Touch")
call s:DefineCommand("rm", "Remove")
"call s:DefineCommand("e", "Edit")
call s:DefineCommand("mkdir", "Mkdir")
set autochdir
let NERDTreeIgnore=['\.rbc$', '\~$', '\.pyc$']
let NERDTreeChDirMode=2
map <leader>d :execute 'NERDTreeToggle ' . getcwd()<CR>
"}}}
" Fuzzy Finder {{{
if has('ruby')
" --- Fuzzy Finder ---
"let g:fuzzy_ignore = "*.log"
"let g:fuzzy_matching_limit = 70
"let g:fuzzy_ignore = "*.pyc,*.swp"
map <leader>b :FuzzyFinderBuffer<CR>
"let g:fuzzy_roots
"let g:fuzzy_ceiling
"map <leader>t :FufFile<CR>
endif
" }}}
" Minibuf {{{
" let g:miniBufExplMapWindowNavVim = 1
" let g:miniBufExplUseSingleClick = 1
" let g:miniBufExplorerMoreThanOne=0
" }}}
" vim markdown folding {{{
let g:markdown_fold_style = 'nested'
"}}}
" vim-ipython mappings {{{
let g:ipy_perform_mappings = 0
"map <silent> <C-i> :python run_this_line()<CR>
"imap <silent> <C-i> <C-O>:python run_this_line()<CR>
"vmap <silent> <C-i> :python run_these_lines()<CR>
"map <silent> <localleader>d :py get_doc_buffer()<CR>
"map <silent> <localleader>r :python run_this_file()<CR>
"}}}
" Snipmate Django extension {{{
":set ft=python.django
":set ft=html.django_template
"}}}
" Distraction Free Writing extension {{{
let g:normal_colorscheme = "solarized"
let g:normal_font = "Terminus:h16"
:map <leader>0 :call ToggleDistractionFreeWriting()<CR>
"}}}
"}}}
" Autocommands {{{
aug nick
" Remove ALL autocommands for the current group.
au!
au BufRead,BufNewFile *.md set ft=markdown foldlevel=2 textwidth=79 colorcolumn=80
au BufRead,BufNewFile *.jsp set ft=jsp.html
au BufRead,BufNewFile *.jspf set ft=jsp.html
au BufRead,BufNewFile *.tag set ft=jsp.html
au BufRead,BufNewFile *.html set ft=html.django_template
au BufRead,BufNewFile *.json set ft=json
au BufRead,BufNewFile *.java set ft=java
au BufRead,BufNewFile *.less set ft=less
au BufRead,BufNewFile *.pp set ft=puppet
au BufRead,BufNewFile *.go set filetype=go
au BufRead,BufNewFile Vagrantfile set filetype=ruby
"au FileType html set ft=django_template.html
au FileType python set ft=python.django " For SnipMate
au FileType python setlocal sw=4 sts=4 et tw=200 sta
"use 4 spaces for tab in gitconfig
au FileType gitconfig setlocal sw=4 sts=4 ts=4 et tw=200 sta
au FileType jsp setlocal sw=4 sts=4 ts=4 noet tw=200 sta
au FileType java setlocal sw=4 sts=4 ts=4 noet tw=200 sta
au FileType go setlocal sw=4 sts=4 ts=4 noet tw=200 sta
"vim should not break lines
au FileType vim setlocal tw=0 wm=0
" autocorrect markdown
:au FileType markdown set spell
"empty scratch.txt when it's unloaded
:autocmd BufDelete scratch.txt :execute "normal!1GdG" | :execute ":w!"
:aug END
"}}}
" DeliXL shortcuts {{{
nmap <leader>sp :w<cr>:silent !cd /home/developer/delixl && ant -f sol/delixl-webshop/copyJSP.xml<cr>:redraw!<cr>
nmap <leader>ht :w<cr>:silent !cd /home/developer/delixl && build-venus.sh && deploy-venus.sh<cr>:redraw!<cr>
"}}}
" Atlassian shortcuts {{{
" generates confluence style from markdown
" nmap <localleader>cf :!python md2wiki.py % | pbcopy<cr>
"}}}
" redraw when reloading .vimrc
"
" for demoing webinars uncomment this section
" set antialias
" set guifont=Monaco:h20
:redraw!