View difference between Paste ID: yi5Yc3LM and EQt3GWHN
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