-
Notifications
You must be signed in to change notification settings - Fork 4
/
custom.vim
204 lines (153 loc) · 5.33 KB
/
custom.vim
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
" basic options ----------------------------------------------------------------
function! PatchZenburn()
" make the vertical split separator look like a dar bar
highlight VertSplit guifg=#2e3330 guibg=#2e3330
" create a left margin by using the foldcolumn
set foldcolumn=1
highlight FoldColumn guibg=#3f3f3f guifg=#3f3f3f
endfunction
" patch the color scheme after it's loaded
augroup patchcolorscheme
autocmd ColorScheme * call PatchZenburn()
augroup END
" set color scheme
colorscheme zenburn
let g:zenburn_old_Visual = 1
set showmode! " disable showmode, as powerline shows it
" clojure ----------------------------------------------------------------------
" lisp rainbow parens
let g:lisp_rainbow=1
" slimv repl syntax coloring
let g:slimv_repl_syntax = 1
" open repl in a vertical split on the right
let g:slimv_repl_split = 4
let g:slimv_ctags="/usr/local/bin/ctags -a --language-force=lisp --langmap=Lisp:+.clj"
let g:slimv_menu=1
let g:slimv_balloon=1
" commands ---------------------------------------------------------------------
":V edits vimrc
:command! V exe "e ~/.vim/vimrc"
":VD edits defaults.vim
:command! VD exe "e ~/.vim/defaults.vim"
":VC edits custom.vim
:command! VC exe "e ~/.vim/custom.vim"
":VV reloads .vimrc
:command! VV exe "w | mkview | source ~/.vimrc | filetype detect | echo 'vimrc reloaded'"
" :C opens !/.vim/cheasheet.txt
:command! C exe "e ~/.vim/cheasheet.txt"
" :H shows hidden characters
:command! H exe ":set list!"
" :Q closes all buffers
:command! Q exe ":bufdo bdelete"
" :T converts all buffers into tabs
:command! T exe ":tab sball"
" :Z strips all trailing whitespace in the current file
:command! Z exe ":%s/\s\+$// | :let @/=''"
" :S to turn on/off spell checker
:command! S exe ":set spell!"
" :U turns on/off gundo
:command! U exe ":GundoToggle"
" plugin options ---------------------------------------------------------------
" syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=1
" fuzzyfinder datadir
let g:fuf_dataDir="~/.vim/tmp/fuf"
" powerline
let g:Powerline_symbols = 'fancy'
set laststatus=2
" use newer ctags from homebrew
let Tlist_Ctags_Cmd = "/usr/local/bin/ctags"
" NERDTree
let NERDChristmasTree=1
let NERDTreeMouseMode=3
let NERDTreeBookmarksFile=$HOME.'/vim/tmp/NERDTreeBookmarks'
let NERDTreeShowHidden=1
let NERDTreeDirArrows=1
" Ctrl-P
let g:ctrlp_match_window_bottom = 0
let g:ctrlp_match_window_reversed = 0
let g:ctrlp_cache_dir = $HOME.'/.vim/tmp/ctrlp'
" nerdcommenter
let g:NERDCreateDefaultMappings = 0
" buftabs
:let g:buftabs_only_basename=1
" easytags
" let g:easytags_cmd = '/usr/local/bin/ctags'
" let g:easytags_file = '~/.vim/tmp/easytags/all'
" let g:easytags_by_filetype = '~/.vim/tmp/easytags/'
" set tags=./tags;
" let g:easytags_dynamic_files = 1
" fugitive
" use .. to open parent tree
autocmd User fugitive
\ if fugitive#buffer().type() =~# '^\%(tree\|blob\)$' |
\ nnoremap <buffer> .. :edit %:h<CR> |
\ endif
" auto clean fugitive buffers
autocmd BufReadPost fugitive://* set bufhidden=delete
" neocomplcache ----------------------------------------------------------------
" disable AutoComplPop.
let g:acp_enableAtStartup = 0
" use neocomplcache.
let g:neocomplcache_enable_at_startup = 1
" use smartcase.
let g:neocomplcache_enable_smart_case = 1
" use camel case completion.
let g:neocomplcache_enable_camel_case_completion = 1
" use underbar completion.
let g:neocomplcache_enable_underbar_completion = 1
" set minimum syntax keyword length.
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'
" key-mappings.
imap <C-k> <Plug>(neocomplcache_snippets_expand)
smap <C-k> <Plug>(neocomplcache_snippets_expand)
inoremap <expr><C-g> neocomplcache#undo_completion()
inoremap <expr><C-l> neocomplcache#complete_common_string()
" <TAB>: completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" enable heavy omni completion.
if !exists('g:neocomplcache_omni_patterns')
let g:neocomplcache_omni_patterns = {}
endif
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
let g:neocomplcache_omni_patterns.c = '\%(\.\|->\)\h\w*'
let g:neocomplcache_omni_patterns.cpp = '\h\w*\%(\.\|->\)\h\w*\|\h\w*::'
" plugin mappings --------------------------------------------------------------
" peepopen
map <leader><space> :PeepOpen<cr><cr>
" D-p opens ctrlp files
let g:ctrlp_map = '<D-p>'
" D-l opens ctrlp buffers
nnoremap <D-b> :CtrlPBuffer<cr>
" ,a opens ACK
nnoremap <leader>a :Ack<space>
" ,g opens Grep
nnoremap <leader>g :Grep<space>
" D-y toggles nerdtree
nnoremap <D-y> :NERDTreeToggle<cr>
" \\ toggles comments
nnoremap \\ :call NERDComment("n", "toggle")<CR>
vnoremap \\ :call NERDComment("n", "toggle")<CR>gv
" Waldo
if ! exists("g:waldo_loaded")
let g:waldo_loaded = 1
let s:save_cpo = &cpo
set cpo&vim
function s:LaunchWaldoViaVim()
let cwd = getcwd()
silent exe "!open -a Waldo " . shellescape(cwd)
silent exe "!open -a Waldo " . shellescape(cwd)
endfunction
command! Waldo :call <SID>LaunchWaldoViaVim()
noremap <unique> <script> <Plug>Waldo <SID>Launch
noremap <SID>Launch :call <SID>LaunchWaldoViaVim()<CR>
if !hasmapto('<Plug>Waldo')
map <unique> <silent> <Leader>f <Plug>Waldo
endif
endif