diff options
-rw-r--r-- | doc/shortcuts.txt | 13 | ||||
-rw-r--r-- | vimrc-full | 57 |
2 files changed, 50 insertions, 20 deletions
diff --git a/doc/shortcuts.txt b/doc/shortcuts.txt index a5c33ae..fdd28c8 100644 --- a/doc/shortcuts.txt +++ b/doc/shortcuts.txt | |||
@@ -23,8 +23,9 @@ ciw = select inner word | |||
23 | caw = select 'a word' | 23 | caw = select 'a word' |
24 | " where c can be replaced by v for visual mode | 24 | " where c can be replaced by v for visual mode |
25 | 25 | ||
26 | 26 | :%s/foo/bar/g = replace all foo with bar | |
27 | 27 | :g/foo/s/bar//g = on lines with foo replace bar with nothing | |
28 | :g!/foo/s/bar//g = on lines not containing foo replace bar with nothing | ||
28 | 29 | ||
29 | [visual mode] # with selected lines | 30 | [visual mode] # with selected lines |
30 | gq = formats text so that it fits in whatever :set textwidth was set | 31 | gq = formats text so that it fits in whatever :set textwidth was set |
@@ -144,6 +145,14 @@ viB:sort = sort inner block by name | |||
144 | [fancy utf-8 symbols] | 145 | [fancy utf-8 symbols] |
145 | ௵ | 146 | ௵ |
146 | 147 | ||
148 | [debugging] | ||
149 | :profile! start /tmp/profile.log | ||
150 | :profile func * | ||
151 | :profile file * | ||
152 | " At this point do slow actions | ||
153 | :profdel * | ||
154 | :e /tmp/profile.log | ||
155 | |||
147 | [vim modeline] | 156 | [vim modeline] |
148 | filetype can have multiple values, like python.django | 157 | filetype can have multiple values, like python.django |
149 | The last line can be a mode line, which holds settings like tab width: | 158 | The last line can be a mode line, which holds settings like tab width: |
@@ -52,7 +52,7 @@ if has("multi_byte") | |||
52 | set listchars+=extends:» | " symbols used when using :set list (which displays non-printable chars) | 52 | set listchars+=extends:» | " symbols used when using :set list (which displays non-printable chars) |
53 | set listchars+=precedes:« | " symbols used when using :set list (which displays non-printable chars) | 53 | set listchars+=precedes:« | " symbols used when using :set list (which displays non-printable chars) |
54 | 54 | ||
55 | set listchars+=tab:▏\ | " | 55 | set listchars+=tab:▏\ | " |
56 | set listchars+=trail:· | " symbols used when using :set list (which displays non-printable chars) | 56 | set listchars+=trail:· | " symbols used when using :set list (which displays non-printable chars) |
57 | " set listchars+=eol:↲ | " symbols used when using :set list (which displays non-printable chars) | 57 | " set listchars+=eol:↲ | " symbols used when using :set list (which displays non-printable chars) |
58 | " set listchars+=space:· | " symbols used when using :set list (which displays non-printable chars) | 58 | " set listchars+=space:· | " symbols used when using :set list (which displays non-printable chars) |
@@ -232,6 +232,15 @@ set equalalways | " do not evenly size windows when opening new or | |||
232 | set nocursorline | " turn visual cursor line off (improves performance) | 232 | set nocursorline | " turn visual cursor line off (improves performance) |
233 | "======================================================================================================================= | 233 | "======================================================================================================================= |
234 | 234 | ||
235 | " Vim8 has a terminal command... | ||
236 | if has('terminal') | ||
237 | " use default ESC key to leave insert mode in the internal terminal emulator | ||
238 | tnoremap <Esc> <C-W>N | ||
239 | " make terminal windows hidden by default (copied from :help terminal) | ||
240 | autocmd BufWinEnter * if &buftype == 'terminal' | setlocal bufhidden=hide | endif | ||
241 | endif | ||
242 | |||
243 | |||
235 | " NEOVIM_incompatible: | 244 | " NEOVIM_incompatible: |
236 | " | 245 | " |
237 | if has('nvim') " Neovim? | 246 | if has('nvim') " Neovim? |
@@ -318,7 +327,7 @@ if has("autocmd") | |||
318 | autocmd FileType vim setlocal keywordprg=:help |. | 327 | autocmd FileType vim setlocal keywordprg=:help |. |
319 | autocmd FileType c,cpp setlocal equalprg=clang-format | 328 | autocmd FileType c,cpp setlocal equalprg=clang-format |
320 | autocmd FileType c,cpp setlocal breakat-=- | 329 | autocmd FileType c,cpp setlocal breakat-=- |
321 | autocmd WinNew * if &previewwindow | setlocal nonumber signcolumn=no filetype=c nobuflisted | endif | 330 | autocmd BufWinEnter * if &previewwindow | setlocal nonumber signcolumn=no filetype=c nobuflisted | endif |
322 | 331 | ||
323 | 332 | ||
324 | " autocmd FileType c,cpp setlocal iskeyword-=_ | 333 | " autocmd FileType c,cpp setlocal iskeyword-=_ |
@@ -415,8 +424,8 @@ if has("autocmd") | |||
415 | \ :execute ':!nvr --servername /tmp/nvimsocket --remote % +'.line('.')<CR>:stopinsert<CR>:set readonly<CR> | 424 | \ :execute ':!nvr --servername /tmp/nvimsocket --remote % +'.line('.')<CR>:stopinsert<CR>:set readonly<CR> |
416 | 425 | ||
417 | menu &Verify.&Textwidth\ and\ white\ space | 426 | menu &Verify.&Textwidth\ and\ white\ space |
418 | \ :execute ':match SpellBad /\%>'.&textwidth.'v./'<CR> | 427 | \ :execute ':match Error /\%>'.&textwidth.'v./'<CR> |
419 | \ :2match SpellBad /\s\+$/<CR> | 428 | \ :2match Error /\s\+$/<CR> |
420 | 429 | ||
421 | menu &Verify.Highlight\ current\ file\ name | 430 | menu &Verify.Highlight\ current\ file\ name |
422 | \ :execute ':match SpellBad /'.escape(expand('%:t'), '.').'/'<CR> | 431 | \ :execute ':match SpellBad /'.escape(expand('%:t'), '.').'/'<CR> |
@@ -590,9 +599,9 @@ let g:lightline_buffer_git_icon = ' ' | |||
590 | let g:lightline_buffer_ellipsis_icon = '..' | 599 | let g:lightline_buffer_ellipsis_icon = '..' |
591 | let g:lightline_buffer_expand_left_icon = '◀ ' | 600 | let g:lightline_buffer_expand_left_icon = '◀ ' |
592 | let g:lightline_buffer_expand_right_icon = ' ▶' | 601 | let g:lightline_buffer_expand_right_icon = ' ▶' |
593 | let g:lightline_buffer_active_buffer_left_icon = '' | 602 | " let g:lightline_buffer_active_buffer_left_icon = ' ' |
594 | let g:lightline_buffer_active_buffer_right_icon = '' | 603 | " let g:lightline_buffer_active_buffer_right_icon = '' |
595 | let g:lightline_buffer_separator_icon = ' ' | 604 | " let g:lightline_buffer_separator_icon = 'XX' |
596 | 605 | ||
597 | " lightline-buffer function settings | 606 | " lightline-buffer function settings |
598 | let g:lightline_buffer_show_bufnr = 0 | 607 | let g:lightline_buffer_show_bufnr = 0 |
@@ -606,7 +615,12 @@ let g:lightline_buffer_minfextlen = 3 | |||
606 | let g:lightline_buffer_reservelen = 20 | 615 | let g:lightline_buffer_reservelen = 20 |
607 | 616 | ||
608 | " \ ['warnings', 'errors', 'syntastic'] | 617 | " \ ['warnings', 'errors', 'syntastic'] |
618 | " \ 'left': [ [ 'bufferinfo' ], [ 'bufferbefore', 'buffercurrent', 'bufferafter' ], ], | ||
609 | let g:lightline = { | 619 | let g:lightline = { |
620 | \ 'tabline': { | ||
621 | \ 'left': [ [ 'bufferinfo' ], [ 'bufferbefore', 'buffercurrent', 'bufferafter' ], ], | ||
622 | \ 'right': [ [], [ 'close' ] ], | ||
623 | \ }, | ||
610 | \ 'colorscheme': 'Tomorrow_Night_Bright', | 624 | \ 'colorscheme': 'Tomorrow_Night_Bright', |
611 | \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, | 625 | \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, |
612 | \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" }, | 626 | \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" }, |
@@ -620,13 +634,10 @@ let g:lightline = { | |||
620 | \ [ 'spell', 'fileencoding', 'fileformat', 'filetype' ] | 634 | \ [ 'spell', 'fileencoding', 'fileformat', 'filetype' ] |
621 | \ ], | 635 | \ ], |
622 | \ }, | 636 | \ }, |
623 | \ 'tabline': { | ||
624 | \ 'left': [ [ 'bufferinfo' ], [ 'bufferbefore', 'buffercurrent', 'bufferafter' ], ], | ||
625 | \ 'right': [ [], [ 'close' ] ], | ||
626 | \ }, | ||
627 | \ 'component': { | 637 | \ 'component': { |
628 | \ 'tagbar': '%{substitute(tagbar#currenttag("%s", "", "fs"), "\(.*\)", "", "")}', | 638 | \ 'tagbar': '%{substitute(tagbar#currenttag("%s", "", "fs"), "\(.*\)", "", "")}', |
629 | \ 'ycmparent': '%{substitute(execute("YcmComplete GetParent"), "\(.*\)", "", "")}' | 639 | \ 'ycmparent': '%{substitute(execute("YcmComplete GetParent"), "\(.*\)", "", "")}', |
640 | \ 'filename': '%t' | ||
630 | \ }, | 641 | \ }, |
631 | \ 'component_expand': { | 642 | \ 'component_expand': { |
632 | \ 'buffercurrent': 'lightline#buffer#buffercurrent2', | 643 | \ 'buffercurrent': 'lightline#buffer#buffercurrent2', |
@@ -661,7 +672,7 @@ autocmd! ColorScheme * call ExtendLightlineColorTheme() | |||
661 | let g:ycm_server_python_interpreter = 'python3' | 672 | let g:ycm_server_python_interpreter = 'python3' |
662 | let g:ycm_python_binary_path = '/usr/bin/python3' " the python interpreter of choice (for code checking) | 673 | let g:ycm_python_binary_path = '/usr/bin/python3' " the python interpreter of choice (for code checking) |
663 | let g:ycm_add_preview_to_completeopt = 1 " reuse existing preview window | 674 | let g:ycm_add_preview_to_completeopt = 1 " reuse existing preview window |
664 | let g:ycm_autoclose_preview_window_after_insertion = 0 | 675 | let g:ycm_autoclose_preview_window_after_insertion = 1 |
665 | let g:ycm_collect_identifiers_from_tags_files = 0 " Let YCM read tags from Ctags file | 676 | let g:ycm_collect_identifiers_from_tags_files = 0 " Let YCM read tags from Ctags file |
666 | let g:ycm_seed_identifiers_with_syntax = 1 " Completion for programming language's keyword | 677 | let g:ycm_seed_identifiers_with_syntax = 1 " Completion for programming language's keyword |
667 | let g:ycm_complete_in_comments = 1 " Completion in comments | 678 | let g:ycm_complete_in_comments = 1 " Completion in comments |
@@ -738,10 +749,13 @@ autocmd! ColorScheme * call ExtendLightlineColorTheme() | |||
738 | "======================================================================================================================= | 749 | "======================================================================================================================= |
739 | " Plug 'rhysd/vim-clang-format' | unnecessary, because we can just :pyf /usr/share/clang/clang-format.py | 750 | " Plug 'rhysd/vim-clang-format' | unnecessary, because we can just :pyf /usr/share/clang/clang-format.py |
740 | Plug 'kana/vim-operator-user' " dependency, which allows overriding the = operator for indentation | 751 | Plug 'kana/vim-operator-user' " dependency, which allows overriding the = operator for indentation |
752 | |||
753 | " TODO: check if this is unrequired, when set equalprog is set to that py file | ||
741 | autocmd FileType c,cpp,objc map <buffer> = :pyf /usr/share/clang/clang-format.py<CR> | 754 | autocmd FileType c,cpp,objc map <buffer> = :pyf /usr/share/clang/clang-format.py<CR> |
755 | |||
742 | " let g:clang_format#detect_style_file = 1 | 756 | " let g:clang_format#detect_style_file = 1 |
743 | " autocmd FileType c,cpp,objc map <buffer> = <Plug>(operator-clang-format) | 757 | " autocmd FileType c,cpp,objc map <buffer> = <Plug>(operator-clang-format) |
744 | 758 | ||
745 | " Plug 'tpope/vim-characterize' | " normal mode: make ga show character names of Unicode chars (ga shows hex and dec values) | 759 | " Plug 'tpope/vim-characterize' | " normal mode: make ga show character names of Unicode chars (ga shows hex and dec values) |
746 | " Plug 'rkitover/vimpager' | 760 | " Plug 'rkitover/vimpager' |
747 | " found this command instead (use as PAGER): | 761 | " found this command instead (use as PAGER): |
@@ -797,14 +811,14 @@ function! ExtendColorTheme() | |||
797 | highlight! link Folded LineNr | 811 | highlight! link Folded LineNr |
798 | highlight! Cursor guibg=#729fcf ctermbg=yellow | 812 | highlight! Cursor guibg=#729fcf ctermbg=yellow |
799 | highlight! link VertSplit LineNr | 813 | highlight! link VertSplit LineNr |
800 | highlight! SpellBad ctermbg=none | 814 | " highlight! SpellBad ctermbg=none |
801 | highlight! SpecialKey ctermfg=19 | 815 | highlight! SpecialKey ctermfg=19 |
802 | highlight! WhiteSpace ctermfg=19 | 816 | highlight! WhiteSpace ctermfg=19 |
803 | 817 | ||
804 | highlight! link TabLine LineNr | 818 | highlight! link TabLine LineNr |
805 | highlight! TabLineSel ctermbg=blue ctermfg=black | 819 | highlight! TabLineSel ctermbg=blue ctermfg=black |
806 | highlight! link TabLineFill LineNr | 820 | highlight! link TabLineFill LineNr |
807 | highlight! Search ctermbg=12 ctermfg=0 | 821 | highlight! Search ctermbg=LightYellow ctermfg=black |
808 | 822 | ||
809 | " generic, which should exist but don't | 823 | " generic, which should exist but don't |
810 | highlight! Bold cterm=bold gui=bold | 824 | highlight! Bold cterm=bold gui=bold |
@@ -814,6 +828,13 @@ function! ExtendColorTheme() | |||
814 | 828 | ||
815 | " make tab stop (see listchars) less disturbing... | 829 | " make tab stop (see listchars) less disturbing... |
816 | highlight! link SpecialKey NonText | 830 | highlight! link SpecialKey NonText |
831 | |||
832 | |||
833 | " Show trailing whitepace and spaces before a tab as part of the syntax highlighting | ||
834 | autocmd Syntax * syn match Error /\s\+$\| \+\ze\t/ containedin=ALL | ||
835 | " automatically enter list mode when going in insert mode (makes above syntax command temporarily ineffective) | ||
836 | autocmd InsertEnter * set list | ||
837 | autocmd InsertLeave * set nolist | ||
817 | endfunction | 838 | endfunction |
818 | autocmd! ColorScheme * call ExtendColorTheme() | 839 | autocmd! ColorScheme * call ExtendColorTheme() |
819 | 840 | ||
@@ -830,7 +851,7 @@ else | |||
830 | colorscheme base16-phd | 851 | colorscheme base16-phd |
831 | endif | 852 | endif |
832 | 853 | ||
833 | set background=light | 854 | " set background=dark |
834 | 855 | ||
835 | " ====================================================================================================================== | 856 | " ====================================================================================================================== |
836 | " TESTING: | 857 | " TESTING: |
@@ -844,4 +865,4 @@ set scrolloff=0 | " keeps cursor centered | |||
844 | autocmd VimEnter,WinEnter * exec ':set scrolljump='.winheight(0)/2 | 865 | autocmd VimEnter,WinEnter * exec ':set scrolljump='.winheight(0)/2 |
845 | 866 | ||
846 | " display highlight group under the cursor | 867 | " display highlight group under the cursor |
847 | map <leader>h :echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")') | 868 | map <leader>h :echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')<CR> |