From 98d5dfc249bf278ed85fab4226e78e6478aaa457 Mon Sep 17 00:00:00 2001 From: Nachuan Tang Date: Fri, 24 Feb 2023 21:52:01 -0500 Subject: [PATCH] fix some problem displaying everforest theme --- .vimrc | 75 ++++++++++++++++++++++++++------------------------ .vimrc.bundles | 65 ++++++++++++++++++++++++++----------------- 2 files changed, 79 insertions(+), 61 deletions(-) diff --git a/.vimrc b/.vimrc index 722c089..0c8fa92 100644 --- a/.vimrc +++ b/.vimrc @@ -1,6 +1,9 @@ " get current neovim version let g:vim_version = -1 + " vim runtime folder + let g:vim_dir = expand('~/.vim/') + " dotfile location let g:mydotfiles_directory = expand('~/.dotfiles/') let after_directory = g:mydotfiles_directory . 'config/vi-plugs/coc-theme/after/' @@ -141,6 +144,7 @@ "set listchars=tab:•\ ,trail:•,extends:»,precedes:« " Unprintable chars mapping set nospell " Spell checking off + set matchpairs+=<:> " Match, to be used with % "set comments=sl:/*,mb:*,elx:*/ " auto format comment blocks @@ -203,28 +207,20 @@ " Functions { - " Initialize directories for undo, swap, viewdir + " Initialize directories for undo, swap, viewdir (see :h undodir, etc.) " to ~/.vim/.vim* function! InitializeDirectories() - let parent = $HOME - let prefix = 'vim' + let common_dir = g:vim_dir let dir_list = { - \ 'backup': 'backupdir', - \ 'views': 'viewdir', - \ 'swap': 'directory' } + \ 'backupdir' : '.vimbackup', + \ 'viewdir' : '.vimviews', + \ 'directory' : '.vimswap' } if has('persistent_undo') - let dir_list['undo'] = 'undodir' + let dir_list['undodir'] = '.vimundo' endif - let g:spf13_consolidated_directory = $HOME . '/.vim/.' - if exists('g:spf13_consolidated_directory') - let common_dir = g:spf13_consolidated_directory . prefix - else - let common_dir = parent . '/.' . prefix - endif - - for [dirname, settingname] in items(dir_list) + for [settingname, dirname] in items(dir_list) let directory = common_dir . dirname . '/' if exists("*mkdir") if !isdirectory(directory) @@ -243,41 +239,48 @@ call InitializeDirectories() " Shell command - function! s:RunShellCommand(cmdline) - botright new + " function! s:RunShellCommand(cmdline) + " botright new - setlocal buftype=nofile - setlocal bufhidden=delete - setlocal nobuflisted - setlocal noswapfile - setlocal nowrap - setlocal filetype=shell - setlocal syntax=shell + " setlocal buftype=nofile + " setlocal bufhidden=delete + " setlocal nobuflisted + " setlocal noswapfile + " setlocal nowrap + " setlocal filetype=shell + " setlocal syntax=shell - call setline(1, a:cmdline) - call setline(2, substitute(a:cmdline, '.', '=', 'g')) - execute 'silent $read !' . escape(a:cmdline, '%#') - setlocal nomodifiable - endfunction + " call setline(1, a:cmdline) + " call setline(2, substitute(a:cmdline, '.', '=', 'g')) + " execute 'silent $read !' . escape(a:cmdline, '%#') + " setlocal nomodifiable + " endfunction - command! -complete=file -nargs=+ Shell call s:RunShellCommand() + " command! -complete=file -nargs=+ Shell call s:RunShellCommand() " e.g. Grep current file for : Shell grep -Hn % - + +" Visual mode pressing * or # searches for the current selection +" Super useful! From an idea by Michael Naumann + vnoremap * :call VisualSelection('', '')/=@/ + vnoremap # :call VisualSelection('', '')?=@/ + " Fix file type error for typescript autocmd BufNewFile,BufRead *.ts set filetype=typescript - " These are to cancel the default behavior of d, D, c, C " to put the text they delete in the default register. " Note that this means e.g. "ad won't copy the text into " register a anymore. You have to explicitly yank it. " TIPS: you can type :registers to view value in each registers - vnoremap p "0p - + vnoremap y "+y + nnoremap y "+y " copy to system - "set clipboard=unnamed - set clipboard=unnamedplus + if g:os == 'Darwin' && g:os == 'Windows' + set clipboard=unnamed + else + set clipboard=unnamedplus + endif " fix paste mess up when using tmux if &term =~ "screen" diff --git a/.vimrc.bundles b/.vimrc.bundles index 81a425f..8d7eae8 100644 --- a/.vimrc.bundles +++ b/.vimrc.bundles @@ -20,7 +20,6 @@ " Plugin environment let g:mydotfiles_directory = expand('~/.dotfiles/') let s:plugin_dir = expand('~/.vim/plugged/') - let g:vim_dir = expand('~/.vim/') call plug#begin(s:plugin_dir) @@ -74,7 +73,6 @@ set encoding=UTF-8 Plug 'scrooloose/nerdtree' Plug 'tiagofumo/vim-nerdtree-syntax-highlight' - " Plug 'tribela/vim-transparent' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " The bottom buffer display @@ -121,6 +119,7 @@ call plug#end() " } +" only work for Plug.vim function! HasPlug(plug_name, ...) let plug_dir_name = get(a:, 1, a:plug_name) " optional argument for the name of plug's folder if has_key(g:plugs, a:plug_name) && isdirectory(s:plugin_dir . "/" . plug_dir_name) @@ -239,8 +238,8 @@ endfunction " antoinemadec/coc-fzf { if HasPlug("coc-fzf") - nnoremap :CocFzfList - nnoremap o :CocFzfList outline + " nnoremap :CocFzfList + " nnoremap o :CocFzfList outline endif " } @@ -250,13 +249,11 @@ endfunction let g:bufferline_modified = '+' " scrolling with fixed current buffer position - let g:bufferline_rotate = 0 let g:bufferline_active_buffer_left = '' let g:bufferline_active_buffer_right = '' - let g:bufferline_fixed_index = -1 - let g:bufferline_inactive_highlight = 'StatusLineNC' - let g:bufferline_active_highlight = 'StatusLine' + " let g:bufferline_inactive_highlight = 'StatusLineNC' + " let g:bufferline_active_highlight = 'StatusLine' endif " } @@ -277,6 +274,9 @@ endfunction " NerdTree { if (g:vim_type == 'vim' || g:vim_version < 0.8) && HasPlug('nerdtree') + if HasPlug('vim-nerdtree-syntax-highlight') + let g:NERDTreeLimitedSyntax = 1 + endif let g:NERDShutUp=1 " work around for nerdtree bug: https://github.com/preservim/nerdtree/issues/1321 @@ -301,8 +301,14 @@ endfunction let NERDTreeQuitOnOpen = 1 let NERDTreeMouseMode = 2 let NERDTreeShowHidden = 1 - let NERDTreeKeepTreeInNewTab = 1 + if HasPlug('vim-devicons') + let NERDTreeDirArrowCollapsible = '' + let NERDTreeDirArrowExpandable = '' + else + " let NERDTreeDirArrowCollapsible = '' + " let NERDTreeDirArrowExpandable = '' + endif " Exit Vim if NERDTree is the only window remaining in the only tab. autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif endif @@ -313,7 +319,7 @@ endfunction endif " } - + " vim-airline { if HasPlug("vim-airline") " Set configuration options for the statusline plugin vim-airline. @@ -332,10 +338,12 @@ endfunction let g:airline_section_y = '' let g:airline_section_z = airline#section#create(['filetype']) let g:airline_skip_empty_sections = 1 - let g:airline_exclude_filetypes = ['nerdtree'] + " let g:airline_exclude_filetypes = ['nerdtree'] " see source for current list let g:airline#extensions#nerdtree_statusline = 0 - "let g:airline#extensions#bufferline#overwrite_variables = 0 + + " without this airline will overwrite some setting like bufferline_active_buffer_left, etc. + let g:airline#extensions#bufferline#overwrite_variables = 0 let g:airline_mode_map = { \ '__' : '-', \ 'c' : 'C', @@ -533,7 +541,6 @@ endfunction execute("colorscheme " . g:light_theme) endif endif - " call TransparentBackgroundFix() endfunction function! DisableTransparent() @@ -599,30 +606,35 @@ endfunction let g:dark_theme = 'PaperColor' endif if HasPlug("everforest") - set termguicolors + if has('termguicolors') + set termguicolors + endif let g:light_theme = 'everforest' let g:dark_theme = 'everforest' let g:airline_dark_theme = "everforest" let g:airline_light_theme = "everforest" - " let g:everforest_background = 'soft' let g:everforest_better_performance = 1 + " let g:everforest_background = 'soft' " let g:everforest_enable_italic = 1 function! Everforest_trans_enable() - let g:everforest_transparent_background = 1 + let g:everforest_transparent_background = 2 colorscheme everforest - " try - " execute('AirlineTheme everforest') - " catch - " endtry + try + execute('AirlineTheme everforest') + catch + endtry + " hack to fix caret characters appearing in the statusline when StatusLine + " and StatusLineNC has same highlight(https://vi.stackexchange.com/questions/15873/carets-in-status-line) + hi StatusLine guifg=#d3c6aa ctermfg=223 endfunction function! Everforest_trans_disable() let g:everforest_transparent_background = 0 colorscheme everforest - " try - " execute('AirlineTheme everforest') - " catch - " endtry + try + execute('AirlineTheme everforest') + catch + endtry endfunction let g:custom_transparent_function_enable = 'Everforest_trans_enable()' let g:custom_transparent_function_disable = 'Everforest_trans_disable()' @@ -727,6 +739,9 @@ endfunction nnoremap 11 :call bufferline#jump(11) nnoremap 12 :call bufferline#jump(12) nnoremap 13 :call bufferline#jump(13) + nnoremap 14 :call bufferline#jump(14) + nnoremap 15 :call bufferline#jump(15) + nnoremap 16 :call bufferline#jump(16) end " split window comform with other window management shortcuts @@ -746,5 +761,5 @@ endfunction " } if filereadable(g:mydotfiles_directory . "/config/theme.vim") - exec "source " . g:mydotfiles_directory . "/config/theme.vim" + " exec "source " . g:mydotfiles_directory . "/config/theme.vim" endif