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 |