diff options
author | Max Christian Pohle | 2018-04-15 17:37:39 +0200 |
---|---|---|
committer | Max Christian Pohle | 2018-04-15 17:37:39 +0200 |
commit | 7fbf4a822abb9d4d559f20c464cf3895333e0ea7 (patch) | |
tree | 1ee1461ea6e5b02faa0562256240498ed8df977e | |
parent | c7a0281e3dc49dcea0df1f4edd8ee130b01872dc (diff) | |
download | vim-karlmarks-7fbf4a822abb9d4d559f20c464cf3895333e0ea7.tar.bz2 vim-karlmarks-7fbf4a822abb9d4d559f20c464cf3895333e0ea7.zip |
Refactoring: See 'convenience' section
-rw-r--r-- | vimrc-full | 98 |
1 files changed, 40 insertions, 58 deletions
@@ -1,4 +1,4 @@ | |||
1 | " vim: noai:ts=2:sw=2:sts=2 iskeyword+=\:,\!,\<,\>,\-,\& | 1 | " vim: noai:ts=2:sw=2:sts=2 iskeyword+=\:,\!,\<,\>,\-,\& number |
2 | 2 | ||
3 | "======================================================================================================================= | 3 | "======================================================================================================================= |
4 | " GENERAL: | 4 | " GENERAL: |
@@ -9,6 +9,7 @@ set ts=4 sts=4 sw=4 expandtab | " better done with a modeline or local exrc | |||
9 | set virtualedit=all | " virtual edit should be default behaviour, because I don't see any reason against | 9 | set virtualedit=all | " virtual edit should be default behaviour, because I don't see any reason against |
10 | set nonumber norelativenumber | " do not show numbers by default, because that causes a performance loss, instead activate them on a file type basis | 10 | set nonumber norelativenumber | " do not show numbers by default, because that causes a performance loss, instead activate them on a file type basis |
11 | set ignorecase smartcase hlsearch | " search with ignore case by default, but use case sensitive search when one capital char is contained and highlight while typing (even though its slower) | 11 | set ignorecase smartcase hlsearch | " search with ignore case by default, but use case sensitive search when one capital char is contained and highlight while typing (even though its slower) |
12 | set cindent cinoptions+=(0 | " indent at parentheses | ||
12 | 13 | ||
13 | 14 | ||
14 | set path+=** | " allow recursive searches for files | 15 | set path+=** | " allow recursive searches for files |
@@ -258,7 +259,6 @@ set sessionoptions+=winsize | |||
258 | " set nocindent smartindent | " use smart indent rather then cindent | 259 | " set nocindent smartindent | " use smart indent rather then cindent |
259 | set noautoindent | 260 | set noautoindent |
260 | set nosmartindent | 261 | set nosmartindent |
261 | set cindent cinoptions+=(0 | " indent at parentheses | ||
262 | 262 | ||
263 | set noshiftround | " indent/un-indent sna=ps to multiple of shiftwidths | 263 | set noshiftround | " indent/un-indent sna=ps to multiple of shiftwidths |
264 | set noequalalways | " do not evenly size windows when opening new or closing old | 264 | set noequalalways | " do not evenly size windows when opening new or closing old |
@@ -321,7 +321,6 @@ if has("autocmd") | |||
321 | " set omnifunc=syntaxcomplete#Complete | 321 | " set omnifunc=syntaxcomplete#Complete |
322 | 322 | ||
323 | augroup set_window_title " { | 323 | augroup set_window_title " { |
324 | " autocmd BufWinEnter quickfix setl statusline=%t | ||
325 | " autocmd BufEnter * let &titlestring = hostname() . "[vim(" . expand("%:t") . ")]" | 324 | " autocmd BufEnter * let &titlestring = hostname() . "[vim(" . expand("%:t") . ")]" |
326 | autocmd CursorHold * let &titlestring = "%t %y ".$USER."@".hostname().":%{expand(\"%:~:.:h\")}" | 325 | autocmd CursorHold * let &titlestring = "%t %y ".$USER."@".hostname().":%{expand(\"%:~:.:h\")}" |
327 | set title | 326 | set title |
@@ -413,35 +412,6 @@ if has("autocmd") | |||
413 | " use the shada/viminfo file to return the cursor to where it was... | 412 | " use the shada/viminfo file to return the cursor to where it was... |
414 | autocmd BufReadPost * call setpos(".", getpos("'\"")) | 413 | autocmd BufReadPost * call setpos(".", getpos("'\"")) |
415 | 414 | ||
416 | |||
417 | augroup ToggleQuickFix | ||
418 | function! ToggleQuickFix() | ||
419 | if exists("g:qwindow") | ||
420 | lclose | ||
421 | unlet g:qwindow | ||
422 | else | ||
423 | try | ||
424 | lopen 10 | ||
425 | let g:qwindow = 1 | ||
426 | catch | ||
427 | echo "No Errors found!" | ||
428 | endtry | ||
429 | endif | ||
430 | endfunction | ||
431 | function! QFixToggle(forced) | ||
432 | if exists("g:qfix_win") && a:forced == 0 | ||
433 | cclose | ||
434 | unlet g:qfix_win | ||
435 | else | ||
436 | copen 10 | ||
437 | let g:qfix_win = bufnr("$") | ||
438 | endif | ||
439 | endfunction | ||
440 | |||
441 | nmap <script> <silent> <F7> :call QFixToggle(0)<CR> | ||
442 | nmap <script> <silent> <F8> :call ToggleQuickFix()<CR> | ||
443 | augroup END | ||
444 | |||
445 | augroup CurrentFileName | 415 | augroup CurrentFileName |
446 | " highlight the current files name inside the document... | 416 | " highlight the current files name inside the document... |
447 | let @g = ":exe ':match SpellBad /'.escape(expand('%:t'), '.').'/'" | 417 | let @g = ":exe ':match SpellBad /'.escape(expand('%:t'), '.').'/'" |
@@ -613,12 +583,6 @@ if has("autocmd") | |||
613 | \ :ta | 583 | \ :ta |
614 | endif | 584 | endif |
615 | 585 | ||
616 | |||
617 | |||
618 | |||
619 | " exec current line as a command, insert output of command (from: https://youtu.be/MquaityA1SM?t=35m45s) | ||
620 | nnoremap Q !!$SHELL<CR> | ||
621 | |||
622 | " autocmd BufEnter * @f | 586 | " autocmd BufEnter * @f |
623 | augroup END | 587 | augroup END |
624 | 588 | ||
@@ -709,10 +673,6 @@ let g:signify_update_on_bufenter = 0 | |||
709 | let g:signify_update_on_focusgained = 0 | 673 | let g:signify_update_on_focusgained = 0 |
710 | let g:signify_sign_show_count = 1 | 674 | let g:signify_sign_show_count = 1 |
711 | 675 | ||
712 | " BUFEXPLORER: | " a buffer to list all buffers has the advantage, that default /-searches work in there | ||
713 | Plug 'jlanzarotta/bufexplorer' | ||
714 | nnoremap <F12> :ToggleBufExplorer<CR> | ||
715 | |||
716 | " NERDTree: replaces NetRW, as long as it has so many bugs | 676 | " NERDTree: replaces NetRW, as long as it has so many bugs |
717 | Plug 'scrooloose/nerdtree' | " | 677 | Plug 'scrooloose/nerdtree' | " |
718 | let NERDTreeIgnore = ['\.aux$', '\.o$'] | 678 | let NERDTreeIgnore = ['\.aux$', '\.o$'] |
@@ -819,8 +779,8 @@ let g:lightline = { | |||
819 | \ 'right': [] | 779 | \ 'right': [] |
820 | \ }, | 780 | \ }, |
821 | \ 'active': { | 781 | \ 'active': { |
822 | \ 'left': [ [ 'register', 'mode', 'paste' ], ['readonly', 'filetype'], [ 'absolutepath' ]], | 782 | \ 'left': [ [ 'mode', 'register', 'paste' ], [ 'absolutepath', 'title' ] , ['tagbar']], |
823 | \ 'right': [ [ 'lineinfo', 'percent' ], [ 'spell', 'fileencoding', 'fileformat' ] , ['tagbar'] ] | 783 | \ 'right': [ [ 'lineinfo', 'percent' ], [ 'filetype', 'readonly', 'spell', 'fileencoding', 'fileformat' ] ] |
824 | \ }, | 784 | \ }, |
825 | \ 'component': { | 785 | \ 'component': { |
826 | \ 'tagbar': '%{substitute(tagbar#currenttag("%s", "", "fs"), "\(.*\)", "", "")}', | 786 | \ 'tagbar': '%{substitute(tagbar#currenttag("%s", "", "fs"), "\(.*\)", "", "")}', |
@@ -832,7 +792,8 @@ let g:lightline = { | |||
832 | \ 'gitbranch': ' %{fugitive#head()}', | 792 | \ 'gitbranch': ' %{fugitive#head()}', |
833 | \ 'tabnumber': " %{tabpagenr()}/%{tabpagenr('$')}", | 793 | \ 'tabnumber': " %{tabpagenr()}/%{tabpagenr('$')}", |
834 | \ 'readonly': '%{&readonly ? "" : ""}', | 794 | \ 'readonly': '%{&readonly ? "" : ""}', |
835 | \ 'register': '%{v:register}' | 795 | \ 'register': '%{v:register}', |
796 | \ 'title': '%{getwinvar(0, "quickfix_title")}' | ||
836 | \ }, | 797 | \ }, |
837 | \ 'component_expand': { | 798 | \ 'component_expand': { |
838 | \ 'buffercurrent': 'lightline#buffer#buffercurrent2', | 799 | \ 'buffercurrent': 'lightline#buffer#buffercurrent2', |
@@ -889,9 +850,6 @@ if has("python") | |||
889 | " Plug 'Rip-Rip/clang_complete' | 850 | " Plug 'Rip-Rip/clang_complete' |
890 | Plug 'zchee/deoplete-clang' | 851 | Plug 'zchee/deoplete-clang' |
891 | Plug 'Shougo/neoinclude.vim' | 852 | Plug 'Shougo/neoinclude.vim' |
892 | Plug 'huawenyu/neogdb.vim' | ||
893 | let g:gdb_require_enter_after_toggling_breakpoint = 0 | ||
894 | nmap <leader>v :call neobugger#gdb#Send("print " . expand('<cword>'))<CR> | ||
895 | else | 853 | else |
896 | Plug 'idanarye/vim-vebugger' | 854 | Plug 'idanarye/vim-vebugger' |
897 | 855 | ||
@@ -1123,6 +1081,40 @@ else | |||
1123 | colorscheme PaperColor | 1081 | colorscheme PaperColor |
1124 | endif | 1082 | endif |
1125 | 1083 | ||
1084 | " ====================================================================================================================== | ||
1085 | " CONVENIENCE: | ||
1086 | " ====================================================================================================================== | ||
1087 | if empty(argv()) | ||
1088 | " autocmd VimEnter * call setloclist(0, filter(map(copy(v:oldfiles), {_, p->{'filename': expand(get(split(p, "'"), 0))}}), { val -> echo val})) | ||
1089 | |||
1090 | " from the list of recent files: make absolute paths, filter out files not | ||
1091 | " contained in cwd and finally filter out directories and non-files... | ||
1092 | autocmd StdinReadPre * let s:std_in=1 | ||
1093 | autocmd VimEnter * if !exists("s:std_in") | call setqflist(map(filter(filter( | ||
1094 | \ map(copy(v:oldfiles), {_, p->expand(p)}), 'v:val =~ "'.getcwd().'"'), | ||
1095 | \ 'filereadable(v:val)'), {_, p->{'filename': fnamemodify(p, ':.')}})) | copen | only | ||
1096 | endif | ||
1097 | |||
1098 | command Vimls | ||
1099 | \ call setloclist(0, map(getbufinfo({'buflisted':1}), | ||
1100 | \ "{'bufnr': v:val.bufnr, | ||
1101 | \ 'lnum': v:val.lnum, | ||
1102 | \ 'text': '='.printf('%*s, % 3d: %s [%s]', winwidth(0) / 2, '', v:val.bufnr, v:val.name, getbufvar(v:val.bufnr, '&buftype')), | ||
1103 | \ 'pattern': 'not loaded'} | ||
1104 | \ ")) | ||
1105 | |||
1106 | command Ctoggle | ||
1107 | \ if(get(getqflist({'winid':1}), 'winid') == win_getid())|cclose|else|copen|endif | ||
1108 | command Ltoggle | ||
1109 | \ if(get(getloclist(0, {'winid':1}), 'winid') == win_getid())|lclose|else|lopen|endif | ||
1110 | |||
1111 | nnoremap <silent> <F7> :Ltoggle<CR> | ||
1112 | nnoremap <silent> <F8> :Ctoggle<CR> | ||
1113 | nnoremap <silent> <F12> :Vimls<CR>:Ltoggle<CR> | ||
1114 | |||
1115 | " exec current line as a command, insert output of command (from: https://youtu.be/MquaityA1SM?t=35m45s) | ||
1116 | nnoremap Q !!$SHELL<CR> | ||
1117 | |||
1126 | 1118 | ||
1127 | " ====================================================================================================================== | 1119 | " ====================================================================================================================== |
1128 | " TESTING: | 1120 | " TESTING: |
@@ -1137,13 +1129,3 @@ autocmd VimEnter,WinEnter * exec ':set scrolljump='.winheight(0)/2 | |||
1137 | " display highlight group under the cursor | 1129 | " display highlight group under the cursor |
1138 | map <leader>h :echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')<CR> | 1130 | map <leader>h :echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')<CR> |
1139 | 1131 | ||
1140 | if empty(argv()) | ||
1141 | " autocmd VimEnter * call setloclist(0, filter(map(copy(v:oldfiles), {_, p->{'filename': expand(get(split(p, "'"), 0))}}), { val -> echo val})) | ||
1142 | |||
1143 | " from the list of recent files: make absolute paths, filter out files not | ||
1144 | " contained in cwd and finally filter out directories and non-files... | ||
1145 | autocmd StdinReadPre * let s:std_in=1 | ||
1146 | autocmd VimEnter * if !exists("s:std_in") | call setqflist(map(filter(filter( | ||
1147 | \ map(copy(v:oldfiles), {_, p->expand(p)}), 'v:val =~ "'.getcwd().'"'), | ||
1148 | \ 'filereadable(v:val)'), {_, p->{'filename': fnamemodify(p, ':.')}})) | copen | only | ||
1149 | endif | ||