diff options
| -rw-r--r-- | vimrc-full | 202 |
1 files changed, 73 insertions, 129 deletions
| @@ -740,81 +740,6 @@ let g:tagbar_foldlevel = 99 | |||
| 740 | 740 | ||
| 741 | nnoremap <F9> :TagbarToggle<CR>| " bind TagBar to hotkey F9 | 741 | nnoremap <F9> :TagbarToggle<CR>| " bind TagBar to hotkey F9 |
| 742 | 742 | ||
| 743 | |||
| 744 | " LIGHTLINE: a fancy status line ======================================================================================= | ||
| 745 | " | ||
| 746 | set noshowmode | " mode will be shown twice, in lightline and below, so we want to deactivate one | ||
| 747 | set laststatus=2 | " required by AirLine and Lightline, without status line does not appear until a window split | ||
| 748 | |||
| 749 | " Plug 'itchyny/lightline.vim' | ||
| 750 | |||
| 751 | " lightline-buffer ui settings | ||
| 752 | " replace these symbols with ASCII characters if your environment does not support unicode | ||
| 753 | let g:lightline_buffer_logo = '' | ||
| 754 | let g:lightline_buffer_readonly_icon = '' | ||
| 755 | let g:lightline_buffer_modified_icon = '✭' | ||
| 756 | let g:lightline_buffer_git_icon = ' ' | ||
| 757 | let g:lightline_buffer_ellipsis_icon = '..' | ||
| 758 | let g:lightline_buffer_active_buffer_left_icon = ' ' | ||
| 759 | let g:lightline_buffer_active_buffer_right_icon = '' | ||
| 760 | " let g:lightline_buffer_separator_icon = 'XX' | ||
| 761 | |||
| 762 | " lightline-buffer function settings | ||
| 763 | let g:lightline_buffer_show_bufnr = 0 | ||
| 764 | let g:lightline_buffer_rotate = 0 | ||
| 765 | let g:lightline_buffer_fname_mod = ':t' | ||
| 766 | let g:lightline_buffer_excludes = ['vimfiler'] | ||
| 767 | let g:lightline_buffer_maxflen = 30 | ||
| 768 | let g:lightline_buffer_maxfextlen = 3 | ||
| 769 | let g:lightline_buffer_minflen = 16 | ||
| 770 | let g:lightline_buffer_minfextlen = 3 | ||
| 771 | let g:lightline_buffer_reservelen = 20 | ||
| 772 | |||
| 773 | " \ ['warnings', 'errors', 'syntastic'] | ||
| 774 | " \ 'left': [ [ 'bufferinfo' ], [ 'bufferbefore', 'buffercurrent', 'bufferafter' ], ], | ||
| 775 | let g:lightline = { | ||
| 776 | \ 'tabline': { | ||
| 777 | \ 'left': [ [ 'servername', 'sessionname' ] ], | ||
| 778 | \ 'right': [ [], ['gitbranch', 'tabnumber'] ], | ||
| 779 | \ }, | ||
| 780 | \ 'colorscheme': 'Tomorrow_Night', | ||
| 781 | \ 'separator': { 'left': "\uE0B4", 'right': "\uE0B6" }, | ||
| 782 | \ 'subseparator': { 'left': "\uE0b1", 'right': "\uE0b3" }, | ||
| 783 | \ 'inactive': { | ||
| 784 | \ 'left': [ [ 'pwd', 'relativepath'] ], | ||
| 785 | \ 'right': [] | ||
| 786 | \ }, | ||
| 787 | \ 'active': { | ||
| 788 | \ 'left': [ [ 'mode', 'register', 'paste' ], [ 'pwd', 'relativepath' ] , ['tagbar']], | ||
| 789 | \ 'right': [ [ 'lineinfo', 'percent' ], [ 'filetype', 'readonly', 'spell', 'fileencoding', 'fileformat' ] ] | ||
| 790 | \ }, | ||
| 791 | \ 'component': { | ||
| 792 | \ 'tagbar': '%{substitute(tagbar#currenttag("%s", "", "fs"), "\(.*\)", "", "")}', | ||
| 793 | \ 'ycmparent': '%{substitute(execute("YcmComplete GetParent"), "\(.*\)", "", "")}', | ||
| 794 | \ 'filename': '%t', | ||
| 795 | \ 'buffer_alt': '%{expand("#:t")}', | ||
| 796 | \ 'servername': ' %{v:servername}', | ||
| 797 | \ 'sessionname': '%{v:this_session}', | ||
| 798 | \ 'gitbranch': ' %{fugitive#head()}', | ||
| 799 | \ 'tabnumber': " %{tabpagenr()}/%{tabpagenr('$')}", | ||
| 800 | \ 'readonly': '%{&readonly ? "" : ""}', | ||
| 801 | \ 'register': '%{v:register}', | ||
| 802 | \ 'title': '%{getwinvar(0, "quickfix_title")}', | ||
| 803 | \ 'pwd': '%{fnamemodify(getcwd(), ":~")}', | ||
| 804 | \ 'relativepath': '%{fnamemodify(expand("%"), ":.")}' | ||
| 805 | \ }, | ||
| 806 | \ 'component_expand': { | ||
| 807 | \ 'buffercurrent': 'lightline#buffer#buffercurrent2', | ||
| 808 | \ 'syntastic': 'SyntasticStatuslineFlag', | ||
| 809 | \ }, | ||
| 810 | \ 'component_function': { | ||
| 811 | \ 'bufferinfo': 'lightline#buffer#bufferinfo', | ||
| 812 | \ 'warnings': 'youcompleteme#GetWarningCount', | ||
| 813 | \ 'errors': 'youcompleteme#GetErrorCount', | ||
| 814 | \ }, | ||
| 815 | \ } | ||
| 816 | |||
| 817 | |||
| 818 | " Autocompleter: ===================================== | 743 | " Autocompleter: ===================================== |
| 819 | if has("python") | 744 | if has("python") |
| 820 | 745 | ||
| @@ -824,7 +749,7 @@ if has("python") | |||
| 824 | " let g:UltiSnipsExpandTrigger = '<Tab>'| " expands the snippet, be careful not to use <tab> elsewhere (ycm uses it by default, but it has been deactivated by g:ycm_key_list_select_completion) | 749 | " let g:UltiSnipsExpandTrigger = '<Tab>'| " expands the snippet, be careful not to use <tab> elsewhere (ycm uses it by default, but it has been deactivated by g:ycm_key_list_select_completion) |
| 825 | let g:UltiSnipsExpandTrigger = '<Tab>'| " expands the snippet, be careful not to use <tab> elsewhere (ycm uses it by default, but it has been deactivated by g:ycm_key_list_select_completion) | 750 | let g:UltiSnipsExpandTrigger = '<Tab>'| " expands the snippet, be careful not to use <tab> elsewhere (ycm uses it by default, but it has been deactivated by g:ycm_key_list_select_completion) |
| 826 | 751 | ||
| 827 | let g:UltiSnipsJumpForwardTrigger = '<Tab>'| | 752 | let g:UltiSnipsJumpForwardTrigger = '<Tab>'| |
| 828 | let g:UltiSnipsJumpBackwardTrigger = '<S-Tab>'| | 753 | let g:UltiSnipsJumpBackwardTrigger = '<S-Tab>'| |
| 829 | "d let g:UltiSnipsJumpForwardTrigger = '<PageDown>' | 754 | "d let g:UltiSnipsJumpForwardTrigger = '<PageDown>' |
| 830 | " let g:UltiSnipsJumpBackwardTrigger = '<PageUp>' | 755 | " let g:UltiSnipsJumpBackwardTrigger = '<PageUp>' |
| @@ -1046,9 +971,9 @@ function! ExtendColorTheme() | |||
| 1046 | highlight! SpecialKey ctermfg=19 | 971 | highlight! SpecialKey ctermfg=19 |
| 1047 | highlight! WhiteSpace ctermfg=19 | 972 | highlight! WhiteSpace ctermfg=19 |
| 1048 | 973 | ||
| 1049 | highlight! link TabLine LineNr | 974 | " highlight! link TabLine LineNr |
| 1050 | highlight! TabLineSel ctermbg=blue ctermfg=black | 975 | " highlight! TabLineSel ctermbg=blue ctermfg=black |
| 1051 | highlight! link TabLineFill LineNr | 976 | " highlight! link TabLineFill LineNr |
| 1052 | highlight! Search ctermbg=LightYellow ctermfg=black guibg=#fefd86 guifg=#222222 | 977 | highlight! Search ctermbg=LightYellow ctermfg=black guibg=#fefd86 guifg=#222222 |
| 1053 | highlight! link WildMenu Search | 978 | highlight! link WildMenu Search |
| 1054 | 979 | ||
| @@ -1161,15 +1086,19 @@ else | |||
| 1161 | let g:PaperColor_Theme_Options = { | 1086 | let g:PaperColor_Theme_Options = { |
| 1162 | \ 'theme': { | 1087 | \ 'theme': { |
| 1163 | \ 'default': { | 1088 | \ 'default': { |
| 1164 | \ 'transparent_background': 1 | 1089 | \ 'transparent_background': 0 |
| 1165 | \ } | 1090 | \ } |
| 1166 | \ } | 1091 | \ } |
| 1167 | \ } | 1092 | \ } |
| 1168 | set background=dark | 1093 | set background=light |
| 1169 | colorscheme PaperColor | 1094 | colorscheme PaperColor |
| 1170 | endif | 1095 | endif |
| 1171 | 1096 | ||
| 1097 | |||
| 1172 | augroup status | 1098 | augroup status |
| 1099 | set noshowmode | " mode will be shown twice, in lightline and below, so we want to deactivate one | ||
| 1100 | set laststatus=2 | " required by AirLine and Lightline, without status line does not appear until a window split | ||
| 1101 | |||
| 1173 | function! CreateInvertGroup(highlight_group) | 1102 | function! CreateInvertGroup(highlight_group) |
| 1174 | if(synIDattr(hlID(a:highlight_group), "reverse")==1) | 1103 | if(synIDattr(hlID(a:highlight_group), "reverse")==1) |
| 1175 | let w:color=synIDattr(hlID(a:highlight_group), "fg#") | 1104 | let w:color=synIDattr(hlID(a:highlight_group), "fg#") |
| @@ -1185,63 +1114,78 @@ augroup status | |||
| 1185 | return l:retval | 1114 | return l:retval |
| 1186 | endfunction | 1115 | endfunction |
| 1187 | 1116 | ||
| 1117 | function ModeString() | ||
| 1118 | return get({ | ||
| 1119 | \ 'n' : 'normal', | ||
| 1120 | \ 'i' : 'insert', | ||
| 1121 | \ 'R' : 'replace', | ||
| 1122 | \ 'v' : 'visual', | ||
| 1123 | \ "V" : 'visual line', | ||
| 1124 | \ "\<C-V>" : 'visual block', | ||
| 1125 | \ 'c' : 'command', | ||
| 1126 | \ 's' : 'select', | ||
| 1127 | \ 'S' : 'select line', | ||
| 1128 | \ "\<C-s>" : 'select block', | ||
| 1129 | \ 't' : 'terminal' | ||
| 1130 | \ }, mode(), mode()) | ||
| 1131 | endfunction | ||
| 1132 | |||
| 1188 | function! UpdateStatus(highlight_group) | 1133 | function! UpdateStatus(highlight_group) |
| 1189 | let l:invert_group = CreateInvertGroup(a:highlight_group) | 1134 | let l:invert_group = CreateInvertGroup(a:highlight_group) |
| 1190 | return | 1135 | return '' |
| 1191 | \ "%#StatusLineHighlight#" . | 1136 | \ ."%#StatusLineHighlight#" |
| 1192 | \ "%#".a:highlight_group."#" . | 1137 | \ ."%#".a:highlight_group."#" |
| 1193 | \ "%{(&readonly\ ?\ '\ \ \ '\ :\ '')}" . | 1138 | \ ."%(%w%h%q\ %{ModeString()}%)" |
| 1194 | \ "%{(&modified\ ?\ nr2char(0xF0C7).'\ '\ :\ '')}" . | 1139 | \ ."%-2{nr2char(0xe621)}" |
| 1195 | \ "%(%w%h%q\ %-8{mode(1)}%)" . | 1140 | \ ."%{(&readonly\ ?\ '\ \ \ '\ :\ '')}" |
| 1196 | \ "%{nr2char(0xe621)}" . | 1141 | \ ."%{(&modified\ ?\ nr2char(0xF0C7).'\ '\ :\ '')}" |
| 1197 | \ "%(\ %{fnamemodify(getcwd(),\ ':~')}\ %)" . | 1142 | \ ."%(\ %{fnamemodify(getcwd(),\ ':~')}\ %)" |
| 1198 | \ "%{nr2char(0xf44a)}" . | 1143 | \ ."%{nr2char(0xf44a)}" |
| 1199 | \ "%(\ %f\ %)" . | 1144 | \ ."%(\ %f\ %)" |
| 1200 | \ "%#".l:invert_group."#" . | 1145 | \ ."%#".l:invert_group."#" |
| 1201 | \ "%{nr2char(0xE0B4)\ }" . | 1146 | \ ."%{nr2char(0xE0B4)\ }" |
| 1202 | \ '' . | 1147 | \ .'' |
| 1203 | \ "%=" . | 1148 | \ ."%=" |
| 1204 | \ '' . | 1149 | \ .'' |
| 1205 | \ "%#".l:invert_group."#" . | 1150 | \ ."%#".l:invert_group."#" |
| 1206 | \ "%{nr2char(0xE0B6)}" . | 1151 | \ ."%{nr2char(0xE0B6)}" |
| 1207 | \ "%#".a:highlight_group."#" . | 1152 | \ ."%#".a:highlight_group."#" |
| 1208 | \ "%1(%)" . | 1153 | \ ."%1(%)" |
| 1209 | \ "%{\ &filetype}" . | 1154 | \ ."%{\ &filetype}" |
| 1210 | \ "%(\ %{nr2char(0xe621)}\ %)" . | 1155 | \ ."%(\ %{nr2char(0xe621)}\ %)" |
| 1211 | \ "%{&fileencoding}" . | 1156 | \ ."%{&fileencoding}" |
| 1212 | \ "%(\ %{nr2char(0xe621)}\ %)" . | 1157 | \ ."%(\ %{nr2char(0xe621)}\ %)" |
| 1213 | \ "%{&fileformat}" . | 1158 | \ ."%{&fileformat}" |
| 1214 | \ "%(\ %{nr2char(0xe621)}\ %)" . | 1159 | \ ."%(\ %{nr2char(0xe621)}\ %)" |
| 1215 | \ "%4l:%-4c" . | 1160 | \ ."%4l:%-4c" |
| 1216 | \ "%-3p%%" . | 1161 | \ ."%-3p%%" |
| 1217 | \ '' " end ^ | ||
| 1218 | endfunction | 1162 | endfunction |
| 1219 | 1163 | ||
| 1220 | function! UpdateTabline(highlight_group) | 1164 | function! UpdateTabline(highlight_group) |
| 1221 | let l:invert_group = CreateInvertGroup(a:highlight_group) | 1165 | let l:invert_group = CreateInvertGroup(a:highlight_group) |
| 1222 | return | 1166 | return '' |
| 1223 | \ "%#".a:highlight_group."#" . | 1167 | \ ."%#".a:highlight_group."#" |
| 1224 | \ "%3(\ %)" . | 1168 | \ ."%3(\ %)" |
| 1225 | \ "%{nr2char(0xe621)}" . | 1169 | \ ."%{nr2char(0xe621)}" |
| 1226 | \ "%(%{v:servername}\ %{v:this_session}%)" . | 1170 | \ ."%(%{v:servername}\ %{v:this_session}%)" |
| 1227 | \ "%#".l:invert_group."#" . | 1171 | \ ."%#".l:invert_group."#" |
| 1228 | \ "%{nr2char(0xE0B4)\ }" . | 1172 | \ ."%{nr2char(0xE0B4)\ }" |
| 1229 | \ '' . | 1173 | \ .'' |
| 1230 | \ "%=" . | 1174 | \ ."%=" |
| 1231 | \ '' . | 1175 | \ .'' |
| 1232 | \ "%#".l:invert_group."#" . | 1176 | \ ."%#".l:invert_group."#" |
| 1233 | \ "%{nr2char(0xE0B6)}" . | 1177 | \ ."%{nr2char(0xE0B6)}" |
| 1234 | \ "%#".a:highlight_group."#" . | 1178 | \ ."%#".a:highlight_group."#" |
| 1235 | \ "%(\ \ %{fugitive#head()}\ %)" . | 1179 | \ ."%(\ \ %{fugitive#head()}\ %)" |
| 1236 | \ "%{nr2char(0xe621)}" . | 1180 | \ ."%{nr2char(0xe621)}" |
| 1237 | \ "%(\ \ %{tabpagenr()}/%{tabpagenr('$')}\ %)" . | 1181 | \ ."%(\ \ %{tabpagenr()}/%{tabpagenr('$')}\ %)" |
| 1238 | \ "%##" . | 1182 | \ ."%##" |
| 1239 | \ "" " end ^ | 1183 | \ ."" " end |
| 1240 | endfunction | 1184 | endfunction |
| 1241 | 1185 | ||
| 1242 | let g:group_active = "StatusLine" | 1186 | let g:group_active = "StatusLine" |
| 1243 | let g:group_inactive = "StatusLineNC" | 1187 | let g:group_inactive = "StatusLineNC" |
| 1244 | let g:group_tabline = "TabLineSel" | 1188 | let g:group_tabline = "TabLine" |
| 1245 | 1189 | ||
| 1246 | function ApplyColorScheme() | 1190 | function ApplyColorScheme() |
| 1247 | " set up statusline, global and current window individually | 1191 | " set up statusline, global and current window individually |
