diff options
-rw-r--r-- | after/syntax/c.vim | 11 | ||||
-rw-r--r-- | vimrc-full | 52 |
2 files changed, 48 insertions, 15 deletions
diff --git a/after/syntax/c.vim b/after/syntax/c.vim index 49e96f0..72136f6 100644 --- a/after/syntax/c.vim +++ b/after/syntax/c.vim | |||
@@ -1,11 +1,13 @@ | |||
1 | setlocal number | ||
2 | setlocal foldenable | 1 | setlocal foldenable |
3 | setlocal foldmethod=expr | 2 | setlocal foldmethod=expr |
4 | setlocal foldcolumn=0 | 3 | " setlocal foldcolumn=0 |
5 | 4 | ||
6 | " setlocal foldexpr=get(synstack(v:lnum,1),0)==hlID('cComment') | 5 | " setlocal foldexpr=get(synstack(v:lnum,1),0)==hlID('cComment') |
7 | setlocal foldexpr=index([0,hlID('cComment'),hlID('Comment')],get(synstack(v:lnum,1),0)) | 6 | " setlocal foldexpr=len(filter(synstack(v:lnum,indent(v:lnum)+1),'index([hlID(\"cComment\"),hlID(\"cCommentStart\")],v:val)!=-1'))>0 |
8 | 7 | " setlocal foldtext=printf('%*s%.'.eval(&textwidth-indent(v:foldstart)).'S',indent(v:foldstart),'',substitute(substitute(substitute(join(getline(v:foldstart,v:foldend)),'\\s\\s\\+\\\|\[\*\/\]','\ ','g'),'\^\\s\\+','','g'),\ '\\s\\s\\+',\ '\ ',\ 'g')) | |
8 | " setlocal foldexpr=index(get(synstack(v:lnum,1),0),hlID('cComment'))>0 | ||
9 | " setlocal foldexpr=index(synstack(v:lnum,indent(v:lnum)+1),hlID('cComment'))>0 | ||
10 | " setlocal signcolumn=no | ||
9 | " syntax match cType "struct\s+[A-Za-z0-9_]+\>" | 11 | " syntax match cType "struct\s+[A-Za-z0-9_]+\>" |
10 | " syn clear cStructure | 12 | " syn clear cStructure |
11 | " highlight! link defines Special | 13 | " highlight! link defines Special |
@@ -23,7 +25,6 @@ syn region cBlock start=/{/ end=/}/ transparent | |||
23 | " syn region myCComment start="/\*" end="\*/" fold keepend transparent | 25 | " syn region myCComment start="/\*" end="\*/" fold keepend transparent |
24 | 26 | ||
25 | 27 | ||
26 | |||
27 | " let b:current_syntax = "c" | 28 | " let b:current_syntax = "c" |
28 | " let g:polyglot_disabled = ['c/c++'] | 29 | " let g:polyglot_disabled = ['c/c++'] |
29 | " unlet s:ft | 30 | " unlet s:ft |
@@ -64,7 +64,7 @@ if has("multi_byte") | |||
64 | set listchars+=tab:▏\ | " | 64 | set listchars+=tab:▏\ | " |
65 | set listchars+=trail:· | " symbols used when using :set list (which displays non-printable chars) | 65 | set listchars+=trail:· | " symbols used when using :set list (which displays non-printable chars) |
66 | " set listchars+=eol:↲ | " symbols used when using :set list (which displays non-printable chars) | 66 | " set listchars+=eol:↲ | " symbols used when using :set list (which displays non-printable chars) |
67 | " set listchars+=space:· | " symbols used when using :set list (which displays non-printable chars) | 67 | set listchars+=space:· | " symbols used when using :set list (which displays non-printable chars) |
68 | set showbreak+=› | " symbol used in the beginning of a wrapped line | 68 | set showbreak+=› | " symbol used in the beginning of a wrapped line |
69 | 69 | ||
70 | " automatically enter list mode when going in insert mode (makes above syntax command temporarily ineffective) | 70 | " automatically enter list mode when going in insert mode (makes above syntax command temporarily ineffective) |
@@ -215,7 +215,7 @@ set writedelay=0 | |||
215 | " display and performance | 215 | " display and performance |
216 | set lazyredraw | " disables redraw during macro execution (improves performance) | 216 | set lazyredraw | " disables redraw during macro execution (improves performance) |
217 | set cmdheight=2 | " sets the command line's height | 217 | set cmdheight=2 | " sets the command line's height |
218 | set signcolumn=auto | " auto=auto hide, yes=always, no=never show the column with error indicators | 218 | set signcolumn=yes | " auto=auto hide, yes=always, no=never show the column with error indicators |
219 | set nocursorcolumn | " turn visual cursor column off (improves performance) | 219 | set nocursorcolumn | " turn visual cursor column off (improves performance) |
220 | set updatetime=80 | " updates the screen more often | 220 | set updatetime=80 | " updates the screen more often |
221 | set redrawtime=1500 | " Timeout in milliseconds for redrawing the screen (switches syntax off when ssh too slow) / CTRL+L to retry | 221 | set redrawtime=1500 | " Timeout in milliseconds for redrawing the screen (switches syntax off when ssh too slow) / CTRL+L to retry |
@@ -242,17 +242,25 @@ set tags+=../tags | |||
242 | set nofoldenable | " disable folding, because we have zi to toggle foldenable :) | 242 | set nofoldenable | " disable folding, because we have zi to toggle foldenable :) |
243 | set foldclose=all | " automatically fold, when the cursor leaves the folded area | 243 | set foldclose=all | " automatically fold, when the cursor leaves the folded area |
244 | set foldcolumn=1 | " I think I don't need this second indicator | 244 | set foldcolumn=1 | " I think I don't need this second indicator |
245 | set numberwidth=5 | 245 | " set numberwidth=5 |
246 | " set foldmethod=syntax | " foldlevel: syntax, indent, manual / foldmethod=syntax makes Vim incredible slow | 246 | " set foldmethod=syntax | " foldlevel: syntax, indent, manual / foldmethod=syntax makes Vim incredible slow |
247 | set foldnestmax=1 | " top level folding only | 247 | set foldnestmax=1 | " top level folding only |
248 | set foldopen=block,hor,search | " when do we unfold? | 248 | set foldopen=block,hor,search | " when do we unfold? |
249 | " set foldtext=Foldtext() | " | 249 | " set foldtext=Foldtext() | " |
250 | " set foldtext=v:folddashes.substitute(getline(v:foldstart),'\\v^/[/*]\','','g') | 250 | " set foldtext=v:folddashes.substitute(getline(v:foldstart),'\\v^/[/*]\','','g') |
251 | " set foldtext='⊞\ '.substitute(getline(v:foldstart),'^[\ '.printf(&cms,'').']*','','').'↵'.getline(v:foldstart+1).'↵'.getline(v:foldstart+2) | 251 | " set foldtext='⊞\ '.substitute(getline(v:foldstart),'^[\ '.printf(&cms,'').']*','','').'↵'.getline(v:foldstart+1).'↵'.getline(v:foldstart+2) |
252 | set foldtext='⊞\ '.substitute(substitute(substitute(join(getline(v:foldstart,v:foldend)),'\\s\\s\\+\\\|\[\*\/\]','\ ','g'),'\^\\s\\+','','g'),\ '\\s\\s\\+',\ '\ ',\ 'g') | 252 | " set foldtext=repeat('',indent(v:foldstart)).substitute(substitute(substitute(join(getline(v:foldstart,v:foldend)),'\\s\\s\\+\\\|\[\*\/\]','\ ','g'),'\^\\s\\+','','g'),\ '\\s\\s\\+',\ '\ ',\ 'g') |
253 | set foldtext=printf('%*s%.*S',indent(v:foldstart),'',&textwidth-indent(v:foldstart),substitute(substitute(join(getline(v:foldstart,v:foldend),'\ '),'[[:space:]]\\+','\ ','g'),'^[[:space:]]','','g')) | ||
254 | |||
255 | " works ... | ||
256 | " set foldexpr=match(synIDattr(synID(v:lnum,indent(v:lnum)+1,0),'name'),'Comment')>-1 | ||
257 | set foldexpr=!empty(filter(synstack(v:lnum,indent(v:lnum)+1),{_,val->match(synIDattr(val,'name'),'Comment')>-1})) | ||
258 | |||
259 | " set foldtext=printf('%*s%.'.eval(&textwidth-indent(v:foldstart)).'S',indent(v:foldstart),'',substitute(substitute(substitute(join(getline(v:foldstart,v:foldend)),'\\s\\s\\+\\\|\[\*\/\]','\ ','g'),'\^\\s\\+','','g'),\ '\\s\\s\\+',\ '\ ',\ 'g')) | ||
253 | 260 | ||
254 | " vim window behaviour | 261 | " vim window behaviour |
255 | set splitbelow | " open new windows below the current one (i find that more intuitive) | 262 | set splitbelow | " open new windows below the current one (i find that more intuitive) |
263 | set splitright | " this also works for me and makes better use of the scren space I think | ||
256 | set winminwidth=0 | " (and all other windows, so TODO: watch out) | 264 | set winminwidth=0 | " (and all other windows, so TODO: watch out) |
257 | set winwidth=30 | " keep NERDTreeWindow at least this size | 265 | set winwidth=30 | " keep NERDTreeWindow at least this size |
258 | 266 | ||
@@ -692,11 +700,18 @@ Plug 'tpope/vim-fugitive' | " the most complete GIT integration plug | |||
692 | Plug 'godlygeek/tabular' | " align code on a sign, like :Tab/= | 700 | Plug 'godlygeek/tabular' | " align code on a sign, like :Tab/= |
693 | Plug 'tpope/vim-surround' | " plugin makes cs"' inside a line replace " with ' | 701 | Plug 'tpope/vim-surround' | " plugin makes cs"' inside a line replace " with ' |
694 | let g:signify_vcs_list = [ 'git' ] | " use signify only with git (improves speed when loading buffers, see :h signify) | 702 | let g:signify_vcs_list = [ 'git' ] | " use signify only with git (improves speed when loading buffers, see :h signify) |
695 | let g:signify_cursorhold_insert = 0 | 703 | let g:signify_cursorhold_insert = 0 |
696 | let g:signify_cursorhold_normal = 0 | 704 | let g:signify_cursorhold_normal = 0 |
697 | let g:signify_update_on_bufenter = 0 | 705 | let g:signify_update_on_bufenter = 0 |
698 | let g:signify_update_on_focusgained = 0 | 706 | let g:signify_update_on_focusgained = 0 |
699 | let g:signify_sign_show_count = 1 | 707 | let g:signify_sign_show_count = 1 |
708 | |||
709 | let g:signify_sign_add = '≫' | ||
710 | let g:signify_sign_delete = '≪' | ||
711 | let g:signify_sign_delete_first_line = '≪' | ||
712 | let g:signify_sign_change = '≶' | ||
713 | let g:signify_sign_changedelete = g:signify_sign_change | ||
714 | |||
700 | 715 | ||
701 | " NERDTree: replaces NetRW, as long as it has so many bugs | 716 | " NERDTree: replaces NetRW, as long as it has so many bugs |
702 | Plug 'scrooloose/nerdtree' | " | 717 | Plug 'scrooloose/nerdtree' | " |
@@ -995,7 +1010,12 @@ function! ExtendColorTheme() | |||
995 | highlight! link PmenuSbar Pmenu | 1010 | highlight! link PmenuSbar Pmenu |
996 | highlight! PmenuThumb cterm=inverse | 1011 | highlight! PmenuThumb cterm=inverse |
997 | highlight! MoreMsg cterm=inverse | 1012 | highlight! MoreMsg cterm=inverse |
998 | highlight! link Folded LineNr | 1013 | |
1014 | highlight! link LineNr Comment | ||
1015 | highlight! link Folded Comment | ||
1016 | highlight! link SignColumn Comment | ||
1017 | highlight! link FoldColumn Comment | ||
1018 | " highlight! Folded ctermbg=NONE | ||
999 | " highlight! Cursor guibg=#729fcf ctermbg=yellow | 1019 | " highlight! Cursor guibg=#729fcf ctermbg=yellow |
1000 | highlight! link VertSplit NonText | 1020 | highlight! link VertSplit NonText |
1001 | " highlight! SpellBad ctermbg=none | 1021 | " highlight! SpellBad ctermbg=none |
@@ -1009,6 +1029,7 @@ function! ExtendColorTheme() | |||
1009 | highlight! link WildMenu Search | 1029 | highlight! link WildMenu Search |
1010 | 1030 | ||
1011 | " generic, which should exist but don't | 1031 | " generic, which should exist but don't |
1032 | highlight! SignifySignAdd ctermbg=NONE | ||
1012 | highlight! Bold cterm=bold gui=bold | 1033 | highlight! Bold cterm=bold gui=bold |
1013 | highlight! Italic cterm=italic gui=italic | 1034 | highlight! Italic cterm=italic gui=italic |
1014 | highlight! Underline cterm=underline gui=underline | 1035 | highlight! Underline cterm=underline gui=underline |
@@ -1027,6 +1048,17 @@ function! ExtendColorTheme() | |||
1027 | 1048 | ||
1028 | highlight! link Convention Error | 1049 | highlight! link Convention Error |
1029 | 1050 | ||
1051 | |||
1052 | highlight! link SignifySignAdd LineNr | ||
1053 | highlight! link SignifySignChange LineNr | ||
1054 | highlight! link SignifySignDelete LineNr | ||
1055 | highlight! link SignifySignChangeDelete LineNr | ||
1056 | highlight! link SignifySignDeleteFirstLine LineNr | ||
1057 | |||
1058 | highlight! SpellBad ctermbg=NONE ctermfg=red cterm=NONE | ||
1059 | highlight! link YcmErrorSign SpellBad | ||
1060 | highlight! link YcmWarningSign Spellbad | ||
1061 | |||
1030 | " autocmd InsertLeave * call matchadd('Conceal', ' \+$', -1, 101, { 'conceal': '⟶' }) | 1062 | " autocmd InsertLeave * call matchadd('Conceal', ' \+$', -1, 101, { 'conceal': '⟶' }) |
1031 | autocmd InsertEnter * silent! call matchdelete(101) | 1063 | autocmd InsertEnter * silent! call matchdelete(101) |
1032 | autocmd InsertLeave * silent! call matchadd('Convention', ' \+$', -1, 101, { 'conceal': '⟶' }) | 1064 | autocmd InsertLeave * silent! call matchadd('Convention', ' \+$', -1, 101, { 'conceal': '⟶' }) |