SHOW:
|
|
- or go back to the newest paste.
1 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
2 | " => General | |
3 | ||
4 | set nocompatible | |
5 | filetype off | |
6 | set rtp+=~/.vim/bundle/vundle/ | |
7 | call vundle#rc() | |
8 | filetype plugin indent on | |
9 | ||
10 | Bundle 'Igorjan94/codeforces.vim' | |
11 | Bundle 'vim-scripts/dbext.vim' | |
12 | Bundle 'kien/ctrlp.vim' | |
13 | Bundle 'Shougo/vimproc.vim' | |
14 | Bundle 'majutsushi/tagbar' | |
15 | Bundle 'Valloric/YouCompleteMe' | |
16 | Bundle 'scrooloose/syntastic' | |
17 | - | Bundle 'travitch/hasksyn' |
17 | + | Bundle 'travitch/hasksyn' "* |
18 | - | Bundle 'tpope/vim-surround' |
18 | + | Bundle 'tpope/vim-surround' "* |
19 | Bundle 'gmarik/vundle' | |
20 | - | Bundle 'vim-scripts/a.vim' |
20 | + | Bundle 'vim-scripts/a.vim' "* |
21 | - | Bundle 'scrooloose/nerdcommenter' |
21 | + | Bundle 'scrooloose/nerdcommenter' "* |
22 | Bundle 'scrooloose/nerdtree' | |
23 | - | Bundle 'eagletmt/neco-ghc' |
23 | + | Bundle 'eagletmt/neco-ghc' "* |
24 | - | Bundle 'eagletmt/ghcmod-vim' |
24 | + | Bundle 'eagletmt/ghcmod-vim' "* |
25 | Bundle 'mbbill/undotree' | |
26 | Bundle 'bling/vim-airline' | |
27 | - | Bundle 'tpope/vim-fugitive' |
27 | + | Bundle 'tpope/vim-fugitive' "* |
28 | Bundle 'Lokaltog/vim-easymotion' | |
29 | Bundle 'altercation/vim-colors-solarized' | |
30 | - | Bundle 'dhruvasagar/vim-table-mode' |
30 | + | Bundle 'dhruvasagar/vim-table-mode' "* |
31 | - | Bundle 'Twinside/vim-haskellConceal' |
31 | + | Bundle 'Twinside/vim-haskellConceal' "* |
32 | - | Bundle 'Twinside/vim-hoogle' |
32 | + | Bundle 'Twinside/vim-hoogle' "* |
33 | - | Bundle 'mattn/gist-vim' |
33 | + | Bundle 'mattn/gist-vim' "* |
34 | - | Bundle 'mattn/webapi-vim' |
34 | + | Bundle 'mattn/webapi-vim' "* |
35 | - | Bundle 'bitc/lushtags' |
35 | + | Bundle 'bitc/lushtags' "* |
36 | Bundle 'itchyny/calendar.vim' | |
37 | - | Bundle 'itchyny/thumbnail.vim' |
37 | + | Bundle 'itchyny/thumbnail.vim' "* |
38 | - | Bundle 'xuhdev/vim-latex-live-preview' |
38 | + | Bundle 'xuhdev/vim-latex-live-preview' "* |
39 | - | Bundle 'LaTeX-Box-Team/LaTeX-Box' |
39 | + | Bundle 'LaTeX-Box-Team/LaTeX-Box' "* |
40 | Bundle 'junegunn/vim-easy-align' | |
41 | Bundle 'airblade/vim-gitgutter' | |
42 | - | Bundle 'takac/vim-hardtime' |
42 | + | Bundle 'takac/vim-hardtime' "* |
43 | - | Bundle 'vim-scripts/Tabmerge' |
43 | + | Bundle 'vim-scripts/Tabmerge' "* |
44 | Bundle 'powerman/vim-plugin-ruscmd' | |
45 | Bundle 'kien/rainbow_parentheses.vim' | |
46 | - | Bundle 'wting/rust.vim' |
46 | + | Bundle 'wting/rust.vim' "* |
47 | Bundle 'idris-hackers/idris-vim' | |
48 | ||
49 | set nocp | |
50 | filetype plugin on | |
51 | ||
52 | ||
53 | set history=700 | |
54 | set confirm | |
55 | set cindent | |
56 | ||
57 | "TODO disable in vimrc | |
58 | ||
59 | "for p in ["syntastic", "YouCompleteMe", "tagbar", "taglist", "vimproc", 'vimshell'] | exec 'set rtp+=~/.nix-profile/vim-plugins/'.p | endfor | |
60 | " Enable filetype plugins | |
61 | filetype plugin on | |
62 | filetype indent on | |
63 | "filetype on | |
64 | autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o | |
65 | ||
66 | command WQ wq | |
67 | command Wq wq | |
68 | command W w | |
69 | command Q q | |
70 | ||
71 | autocmd vimenter * cd %:p:h | |
72 | ||
73 | set nocompatible | |
74 | set hidden | |
75 | filetype indent plugin on | syn on | |
76 | ||
77 | " Start interactive EasyAlign in visual mode | |
78 | vmap <Enter> <Plug>(EasyAlign) | |
79 | nmap s <Plug>(easymotion-s2) | |
80 | map / <Plug>(easymotion-sn) | |
81 | omap / <Plug>(easymotion-tn) | |
82 | map n <Plug>(easymotion-next) | |
83 | map N <Plug>(easymotion-prev) | |
84 | ||
85 | let g:calendar_google_calendar = 1 | |
86 | let g:calendar_google_task = 1 | |
87 | ||
88 | let g:gist_clip_command = 'xclip -selection clipboard' | |
89 | let g:gist_detect_filetype = 1 | |
90 | let g:gist_use_password_in_gitconfig = 1 | |
91 | ||
92 | let NERDTreeShowHidden=1 | |
93 | let NERDTreeQuitOnOpen=1 | |
94 | let g:necoghc_enable_detailed_browse = 1 | |
95 | ||
96 | au VimEnter * RainbowParenthesesToggle | |
97 | au Syntax * RainbowParenthesesLoadRound | |
98 | au Syntax * RainbowParenthesesLoadSquare | |
99 | au Syntax * RainbowParenthesesLoadBraces | |
100 | ||
101 | let g:airline#extensions#syntastic#enabled = 1 | |
102 | let g:airline_theme='dark' | |
103 | let g:airline_left_sep = '▶' | |
104 | let g:airline_right_sep = '◀' | |
105 | let g:airline_detect_modified=1 | |
106 | let g:airline_detect_paste=1 | |
107 | ||
108 | " How many lines should be searched for context | |
109 | let g:hasksyn_indent_search_backward = 100 | |
110 | ||
111 | " Should we try to de-indent after a return | |
112 | let g:hasksyn_dedent_after_return = 1 | |
113 | ||
114 | " Should we try to de-indent after a catchall case in a case .. of | |
115 | let g:hasksyn_dedent_after_catchall_case = 1 | |
116 | ||
117 | let tagbar_autofocus=1 | |
118 | let tagbar_autoclose=1 | |
119 | ||
120 | let g:EclimCompletionMethod = 'omnifunc' | |
121 | ||
122 | let g:ycm_server_keep_logfiles = 1 | |
123 | let g:ycm_server_log_level = 'debug' | |
124 | let g:ycm_path_to_python_interpreter = '/usr/bin/python2' | |
125 | let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' | |
126 | "autocmd FileType c let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/c/.ycm_extra_conf.py' | |
127 | let g:ycm_semantic_triggers = { | |
128 | \ 'c' : ['->', '.'], | |
129 | \ 'cpp' : ['->', '.', '::'], | |
130 | \ 'objc' : ['->', '.'], | |
131 | \ 'ocaml' : ['.', '#'], | |
132 | \ 'cpp,objcpp' : ['->', '.', '::'], | |
133 | \ 'perl' : ['->'], | |
134 | \ 'php' : ['->', '::'], | |
135 | \ 'cs,java,javascript,d,vim,python,perl6,scala,vb,elixir,go' : ['.'], | |
136 | \ 'ruby' : ['.', '::'], | |
137 | \ 'lua' : ['.', ':'], | |
138 | \ 'erlang' : [':'], | |
139 | \ } | |
140 | ||
141 | ||
142 | ||
143 | "set listchars=tab: | |
144 | "set list | |
145 | set fencs=utf-8,cp1251,koi8-r,ucs-2,cp866 | |
146 | au FileType qf call AdjustWindowHeight(3, 10) | |
147 | function! AdjustWindowHeight(minheight, maxheight) | |
148 | exe max([min([line("$")+1, a:maxheight]), a:minheight]) . "wincmd _" | |
149 | endfunction | |
150 | ||
151 | " Set Russian key to understand | |
152 | "set keymap=russian-cukenwin | |
153 | set iminsert=0 | |
154 | set imsearch=0 | |
155 | imap <F10> <Esc>:TagbarToggle<CR> | |
156 | nmap <F10> <Esc>:TagbarToggle<CR> | |
157 | imap <F11> <Esc>:NERDTreeToggle<CR> | |
158 | nmap <F11> <Esc>:NERDTreeToggle<CR> | |
159 | " Num strings | |
160 | set nu! | |
161 | set ai! | |
162 | set cin! | |
163 | imap <C-S-v> <S-Insert> | |
164 | " Set to auto read when a file is changed from the outside | |
165 | set autoread | |
166 | ||
167 | " With a map leader it's possible to do extra key combinations | |
168 | " like <leader>w saves the current file | |
169 | let mapleader = "," | |
170 | let g:mapleader = "," | |
171 | set viminfo='10,\"100,:20,%,n~/.viminfo | |
172 | au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm | |
173 | $"|endif|endif | |
174 | ||
175 | map <leader>Q :let @+ = system("pastebinit " . " -f " . &filetype . " " . expand("%"))<CR> | |
176 | ||
177 | " Fast saving | |
178 | "map <C-E> <Esc>:tabedit %<.h<CR> | |
179 | vnoremap p "_dP | |
180 | nnoremap <C-u> :UndotreeToggle<CR> | |
181 | imap <F5> <Esc> :tabprev<CR> | |
182 | nmap <leader>w :w!<cr> | |
183 | map <F2> <Esc>:w !sudo tee %<CR> | |
184 | imap <F2> <Esc>:w<CR> | |
185 | imap <F5> <Esc> :tabprev<CR> | |
186 | map <F5> :tabprev<CR> | |
187 | imap <F6> <Esc> :tabnext<CR> | |
188 | map <F6> :tabnext <CR> | |
189 | function! GAC() | |
190 | call inputsave() | |
191 | let commit = input('Commit message: ') | |
192 | call inputrestore() | |
193 | let aaa = system("git add " . expand("%") . " && git commit -m \"" . commit . "\"") | |
194 | echom aaa | |
195 | endfunction | |
196 | let Tlist_Exit_OnlyWindow = 1 | |
197 | " put from clipboard | |
198 | nmap <leader>p "+p | |
199 | map cn <ESC>:cn<CR> | |
200 | map cb <ESC>:cp<CR> | |
201 | " yank to clipboard | |
202 | map <leader>y "+y | |
203 | map <leader>y "+y | |
204 | set wildmenu | |
205 | set wcm=<Tab> | |
206 | menu Exit.quit :quit<CR> | |
207 | menu Exit.quit! :quit!<CR> | |
208 | menu Exit.save :exit<CR> | |
209 | map <F3> :emenu Exit.<Tab> | |
210 | function! InsertTabWrapper(direction) | |
211 | let col = col('.') - 1 | |
212 | if !col || getline('.')[col - 1] !~ '\k' | |
213 | return "\<tab>" | |
214 | elseif "backward" == a:direction | |
215 | return "\<c-p>" | |
216 | else | |
217 | return "\<c-n>" | |
218 | endif | |
219 | endfunction | |
220 | inoremap <tab> <c-r>=InsertTabWrapper ("forward")<cr> | |
221 | inoremap <s-tab> <c-r>=InsertTabWrapper ("backward")<cr> | |
222 | ||
223 | ||
224 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
225 | " => VIM user interface | |
226 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
227 | " Set 7 lines to the cursor - when moving vertically using j/k | |
228 | set so=7 | |
229 | ||
230 | " Turn on the WiLd menu | |
231 | set wildmenu | |
232 | ||
233 | " Ignore compiled files | |
234 | set wildignore=*.o,*~,*.pyc | |
235 | ||
236 | "Always show current position | |
237 | set ruler | |
238 | ||
239 | " Height of the command bar | |
240 | set cmdheight=1 | |
241 | ||
242 | " A buffer becomes hidden when it is abandoned | |
243 | set hid | |
244 | ||
245 | " Configure backspace so it acts as it should act | |
246 | set backspace=eol,start,indent | |
247 | set whichwrap+=<,>,h,l | |
248 | ||
249 | " Ignore case when searching | |
250 | set ignorecase | |
251 | ||
252 | " When searching try to be smart about cases | |
253 | set smartcase | |
254 | ||
255 | " Highlight search results | |
256 | set hlsearch | |
257 | ||
258 | " Makes search act like search in modern browsers | |
259 | set incsearch | |
260 | ||
261 | " Don't redraw while executing macros (good performance config) | |
262 | set lazyredraw | |
263 | ||
264 | " For regular expressions turn magic on | |
265 | set magic | |
266 | ||
267 | " Show matching brackets when text indicator is over them | |
268 | set showmatch | |
269 | " How many tenths of a second to blink when matching brackets | |
270 | set mat=2 | |
271 | ||
272 | " No annoying sound on errors | |
273 | set noerrorbells | |
274 | set novisualbell | |
275 | set t_vb= | |
276 | set tm=500 | |
277 | ||
278 | ||
279 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
280 | " => Colors and Fonts | |
281 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
282 | " Enable syntax highlighting | |
283 | syntax enable | |
284 | ||
285 | let g:solarized_termcolors=256 | |
286 | colorscheme solarized "desert | |
287 | "colorscheme torte | |
288 | set background=dark | |
289 | ||
290 | " Set extra options when running in GUI mode | |
291 | if exists('$WINDOWID') | |
292 | set t_Co=256 | |
293 | endif | |
294 | ||
295 | if has("gui_running") | |
296 | set guioptions-=T | |
297 | set guioptions+=e | |
298 | set guitablabel=%M\ %t | |
299 | endif | |
300 | ||
301 | " Set utf8 as standard encoding and en_US as the standard language | |
302 | set encoding=utf8 | |
303 | " Use Unix as the standard file type | |
304 | set ffs=unix,dos,mac | |
305 | ||
306 | ||
307 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
308 | " => Files, backups and undo | |
309 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
310 | " Turn backup off, since most stuff is in SVN, git et.c anyway... | |
311 | set nobackup | |
312 | set nowb | |
313 | set noswapfile | |
314 | ||
315 | ||
316 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
317 | " => Text, tab and indent related | |
318 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
319 | " Use spaces instead of tabs | |
320 | set expandtab | |
321 | ||
322 | " Be smart when using tabs ;) | |
323 | set smarttab | |
324 | ||
325 | " 1 tab == 4 spaces | |
326 | set shiftwidth=4 | |
327 | set tabstop=4 | |
328 | set shiftround "Round spaces to nearest shiftwidth multiple | |
329 | set nojoinspaces "Don't convert spaces to tabs | |
330 | ||
331 | " Linebreak on 500 characters | |
332 | set lbr | |
333 | set tw=500 | |
334 | ||
335 | set ai "Auto indent | |
336 | set si "Smart indent | |
337 | set wrap "Wrap lines | |
338 | ||
339 | ||
340 | """""""""""""""""""""""""""""" | |
341 | " => Visual mode related | |
342 | """""""""""""""""""""""""""""" | |
343 | " Visual mode pressing * or # searches for the current selection | |
344 | " Super useful! From an idea by Michael Naumann | |
345 | vnoremap <silent> * :call VisualSelection('f')<CR> | |
346 | vnoremap <silent> # :call VisualSelection('b')<CR> | |
347 | ||
348 | ||
349 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
350 | " => Moving around, tabs, windows and buffers | |
351 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
352 | " Treat long lines as break lines (useful when moving around in them) | |
353 | map j gj | |
354 | map k gk | |
355 | ||
356 | " Map <Space> to / (search) and Ctrl-<Space> to ? (backwards search) | |
357 | map <space> / | |
358 | map <leader><space> <ESC>:%s/ | |
359 | ||
360 | " Disable highlight when <leader><cr> is pressed | |
361 | map <silent> <leader><cr> :noh<cr> | |
362 | ||
363 | " Smart way to move between windows | |
364 | map <C-j> <C-W>j | |
365 | map <C-k> <C-W>k | |
366 | map <C-h> <C-W>h | |
367 | map <C-l> <C-W>l | |
368 | ||
369 | " Close the current buffer | |
370 | map <leader>bd :Bclose<cr> | |
371 | ||
372 | " Close all the buffers | |
373 | map <leader>ba :1,1000 bd!<cr> | |
374 | ||
375 | " Useful mappings for managing tabs | |
376 | map <leader>tn :tabnew<cr> | |
377 | map <leader>to :tabonly<cr> | |
378 | map <leader>tc :tabclose<cr> | |
379 | map <leader>tm :tabmove | |
380 | ||
381 | " Opens a new tab with the current buffer's path | |
382 | " Super useful when editing files in the same directory | |
383 | map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/ | |
384 | ||
385 | " Switch CWD to the directory of the open buffer | |
386 | map <leader>cd :cd %:p:h<cr>:pwd<cr> | |
387 | ||
388 | " Specify the behavior when switching between buffers | |
389 | try | |
390 | set switchbuf=useopen,usetab,newtab | |
391 | set stal=2 | |
392 | catch | |
393 | endtry | |
394 | ||
395 | " Return to last edit position when opening files (You want this!) | |
396 | ||
397 | ||
398 | """""""""""""""""""""""""""""" | |
399 | " => Status line | |
400 | """""""""""""""""""""""""""""" | |
401 | " Always show the status line | |
402 | set laststatus=2 | |
403 | ||
404 | " Format the status line | |
405 | set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l | |
406 | ||
407 | ||
408 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
409 | " => Editing mappings | |
410 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
411 | " Remap VIM 0 to first non-blank character | |
412 | map 0 ^ | |
413 | ||
414 | " Delete trailing white space on save, useful for Python and CoffeeScript ;) | |
415 | func! DeleteTrailingWS() | |
416 | exe "normal mz" | |
417 | %s/\s\+$//ge | |
418 | exe "normal `z" | |
419 | endfunc | |
420 | autocmd BufWrite *.py :call DeleteTrailingWS() | |
421 | autocmd BufWrite *.coffee :call DeleteTrailingWS() | |
422 | ||
423 | ||
424 | " Toggle paste mode on and off | |
425 | map <leader>v :setlocal paste!<cr> | |
426 | ||
427 | ||
428 | ||
429 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
430 | " => Helper functions | |
431 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
432 | function! CmdLine(str) | |
433 | exe "menu Foo.Bar :" . a:str | |
434 | emenu Foo.Bar | |
435 | unmenu Foo | |
436 | endfunction | |
437 | ||
438 | ||
439 | " Returns true if paste mode is enabled | |
440 | function! HasPaste() | |
441 | if &paste | |
442 | return 'PASTE MODE ' | |
443 | en | |
444 | return '' | |
445 | endfunction | |
446 | set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<> | |
447 | ||
448 | set relativenumber | |
449 | vnoremap <C-r> "hy:%s/<C-r>h//gc<left><left><left> | |
450 | "set list | |
451 | "set listchars=tab:▸\ ,eol:¬ | |
452 | " set cursorline | |
453 | set undofile | |
454 | ||
455 | autocmd FileType cpp call CppMake() | |
456 | function! CppMake() | |
457 | if filereadable("Makefile") | |
458 | set makeprg=make\ -s | |
459 | else | |
460 | if filereadable("makefile") | |
461 | set makeprg=make\ -s | |
462 | else | |
463 | set makeprg=clang++\ -O2\ -std=c++11\ -o\ %<\ % | |
464 | endif | |
465 | endif | |
466 | endfunction | |
467 | ||
468 | autocmd FileType java set makeprg=javac\ % | |
469 | autocmd FileType haskell set makeprg=ghc\ -o\ %<\ % | |
470 | ||
471 | nmap <F8> <ESC>:w<CR><ESC>:!./%<CR> | |
472 | imap <F8> <ESC>:w<CR><ESC>:!./%<CR> | |
473 | autocmd FileType cpp nmap <F8> <ESC>:w<CR><ESC>:!./%<<CR> | |
474 | autocmd FileType cpp imap <F8> <ESC>:w<CR><ESC>:!./%<<CR> | |
475 | autocmd FileType java nmap <F8> <ESC>:w<CR><ESC>:!java %<<CR> | |
476 | autocmd FileType java imap <F8> <ESC>:w<CR><ESC>:!java %<<CR> | |
477 | autocmd FileType haskell nmap <F8> <ESC>:w<CR><ESC>:!./%<<CR> | |
478 | autocmd FileType haskell imap <F8> <ESC>:w<CR><ESC>:!./%<<CR> | |
479 | autocmd FileType python nmap <F8> <ESC>:w<CR><ESC>:!python3 %<CR> | |
480 | autocmd FileType python imap <F8> <ESC>:w<CR><ESC>:!python3 %<CR> | |
481 | ||
482 | ||
483 | autocmd FileType cpp noremap <C-F9> <ESC>:w<CR><ESC>:make<CR> | |
484 | autocmd FileType java noremap <C-F9> <ESC>:w<CR><ESC>:make<CR> | |
485 | ||
486 | autocmd FileType python imap <F9> <ESC>:w<CR><ESC>:!python3 %<CR> | |
487 | autocmd FileType perl imap <F9> <ESC>:w<CR><ESC>:!perl %<CR> | |
488 | autocmd FileType java imap <F9> <ESC>:w<CR><ESC>:make<CR><ESC>:!java %<<CR> | |
489 | autocmd FileType cpp imap <F9> <ESC>:w<CR><ESC>:make<CR><ESC>:!./%<<CR> | |
490 | autocmd FileType c imap <F9> <ESC>:w<CR><ESC>:!clang % -o %<<CR><ESC>:!./%<<CR> | |
491 | autocmd FileType haskell imap <F9> <ESC>:w<CR><ESC>:make<CR><ESC>:!./%<<CR> | |
492 | ||
493 | autocmd FileType python nmap <F9> <ESC>:w<CR><ESC>:!python3 %<CR> | |
494 | autocmd FileType perl nmap <F9> <ESC>:w<CR><ESC>:!perl %<CR> | |
495 | autocmd FileType java nmap <F9> <ESC>:w<CR><ESC>:make<CR><ESC>:!java %<<CR> | |
496 | autocmd FileType cpp nmap <F9> <ESC>:w<CR><ESC>:make<CR><ESC>:!./%<<CR> | |
497 | autocmd FileType c nmap <F9> <ESC>:w<CR><ESC>:!clang % -o %<<CR><ESC>:!./%<<CR> | |
498 | autocmd FileType haskell nmap <F9> <ESC>:w<CR><ESC>:make<CR><ESC>:!./%<<CR> | |
499 | ||
500 | ||
501 | autocmd FileType cpp imap <F7> <ESC>:w<CR>:!clang++ -std=c++11 -E %<CR> | |
502 | autocmd FileType cpp nmap <F7> <ESC>:w<CR>:!clang++ -std=c++11 -E %<CR> | |
503 | ||
504 | autocmd FileType cpp imap <C-f> <Esc>:w<CR><Esc>:%!astyle --mode=c --style=allman --indent=spaces=4 --indent-namespaces --break-blocks --align-pointer=middle --align-reference=type --suffix=none<CR><CR> | |
505 | autocmd FileType java imap <C-f> <Esc>:w<CR><Esc>:%!astyle --mode=c --style=allman --indent=spaces=4 --indent-namespaces --break-blocks --align-pointer=middle --align-reference=type --suffix=none<CR><CR> | |
506 | autocmd BufRead *.hs imap <C-f> <Esc>:w<CR><Esc>:%!stylish-haskell<CR><CR> | |
507 | ||
508 | autocmd FileType cpp nmap <C-f> <Esc>:w<CR><Esc>:%!astyle --mode=c --style=allman --indent=spaces=4 --indent-namespaces --break-blocks --align-pointer=middle --align-reference=type --suffix=none<CR><CR> | |
509 | autocmd FileType java nmap <C-f> <Esc>:w<CR><Esc>:%!astyle --mode=c --style=allman --indent=spaces=4 --indent-namespaces --break-blocks --align-pointer=middle --align-reference=type --suffix=none<CR><CR> | |
510 | autocmd BufRead *.hs nmap <C-f> <Esc>:w<CR><Esc>:%!stylish-haskell<CR><CR> | |
511 | ||
512 | " Ctrl-Space for completions. Heck Yeah! | |
513 | inoremap <expr> <C-Space> pumvisible() \|\| &omnifunc == '' ? | |
514 | \ "\<lt>C-n>" : | |
515 | \ "\<lt>C-x>\<lt>C-o><c-r>=pumvisible() ?" . | |
516 | \ "\"\\<lt>c-n>\\<lt>c-p>\\<lt>c-n>\" :" . | |
517 | \ "\" \\<lt>bs>\\<lt>C-n>\"\<CR>" | |
518 | imap <C-@> <C-Space> | |
519 | ||
520 | let g:ycm_autoclose_preview_window_after_insertion = 1 | |
521 | let g:ycm_complete_in_comments = 1 | |
522 | let g:ycm_goto_buffer_command = 'new-tab' | |
523 | ||
524 | let g:ctrlp_map = '<c-p>' | |
525 | let g:ctrlp_cmd = 'CtrlP' | |
526 | ||
527 | let g:EclimJavaSearchSingleResult = 'tabnew' | |
528 | ||
529 | let g:undotree_SetFocusWhenToggle = 1 | |
530 | ||
531 | let g:CodeForcesUsername = 'Igorjan94' | |
532 | let g:CodeForcesCount = 40 | |
533 | let g:CodeForcesContestId = 518 | |
534 | let g:CodeForcesShowUnofficial = 1 | |
535 | let g:CodeForcesCommandLoadTask = 'vsplit' | |
536 | ||
537 | noremap <leader>vv <ESC>:CodeForces | |
538 | ||
539 | autocmd FileType cpp nnoremap <C-E> <ESC>:YcmCompleter GoToDefinitionElseDeclaration<CR> | |
540 | autocmd FileType java nnoremap <C-E> <ESC>:JavaSearch<CR> | |
541 | ||
542 | set timeoutlen=2000 | |
543 | ||
544 | imap <leader>{ {<CR><CR>}<ESC>k$i | |
545 | imap <leader>re readln();<ESC>hi | |
546 | imap <leader>wr writeln();<ESC>hi | |
547 | imap <leader>S System.out.println();<ESC>hi | |
548 | imap <leader>esc <ESC> | |
549 | imap <leader>str struct<CR>{<CR><TAB><CR>};<ESC>k$i | |
550 | imap <leader>v vector< | |
551 | imap <leader>wh whole( | |
552 | imap <leader>el elohw( | |
553 | imap <leader>mne min_element( | |
554 | imap <leader>mxe max_element( | |
555 | imap <leader>b begin(), | |
556 | imap <leader>en end(), | |
557 | imap <leader>f first | |
558 | imap <leader>s second | |
559 | imap <leader>we writeln_range( | |
560 | imap <leader>[] []()<CR>{<CR>return<CR>};<ESC>kkk$i | |
561 | ||
562 | set foldenable | |
563 | set foldmethod=marker |