123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815 |
- " vim-bootstrap 2021-10-06 10:50:20
- "*****************************************************************************
- "" Vim-Plug core
- "*****************************************************************************
- let vimplug_exists=expand('~/.config/nvim/autoload/plug.vim')
- if has('win32')&&!has('win64')
- let curl_exists=expand('C:\Windows\Sysnative\curl.exe')
- else
- let curl_exists=expand('curl')
- endif
- let g:vim_bootstrap_langs = "c,html,javascript,php,python"
- let g:vim_bootstrap_editor = "neovim" " nvim or vim
- let g:vim_bootstrap_theme = ""
- let g:vim_bootstrap_frams = ""
- if !filereadable(vimplug_exists)
- if !executable(curl_exists)
- echoerr "You have to install curl or first install vim-plug yourself!"
- execute "q!"
- endif
- echo "Installing Vim-Plug..."
- echo ""
- silent exec "!"curl_exists" -fLo " . shellescape(vimplug_exists) . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
- let g:not_finish_vimplug = "yes"
- autocmd VimEnter * PlugInstall
- endif
- " Required:
- call plug#begin(expand('~/.config/nvim/plugged'))
- "*****************************************************************************
- "" Plug install packages
- "*****************************************************************************
- "Doxygen
- Plug 'vim-scripts/DoxygenToolkit.vim'
- "Vue.js
- Plug 'posva/vim-vue'
- Plug 'leafOfTree/vim-vue-plugin'
- Plug 'scrooloose/nerdtree'
- Plug 'jistr/vim-nerdtree-tabs'
- Plug 'tpope/vim-commentary'
- Plug 'tpope/vim-fugitive'
- Plug 'vim-airline/vim-airline'
- Plug 'vim-airline/vim-airline-themes'
- Plug 'airblade/vim-gitgutter'
- Plug 'vim-scripts/grep.vim'
- Plug 'vim-scripts/CSApprox'
- Plug 'Raimondi/delimitMate'
- Plug 'majutsushi/tagbar'
- Plug 'dense-analysis/ale'
- Plug 'mikelue/vim-maven-plugin'
- "Plug 'Yggdroot/indentLine'
- Plug 'lukas-reineke/indent-blankline.nvim'
- Plug 'editor-bootstrap/vim-bootstrap-updater'
- Plug 'tpope/vim-rhubarb' " required by fugitive to :Gbrowse
- Plug 'dracula/vim', { 'as': 'dracula' }
- Plug 'neoclide/coc.nvim', {'branch': 'release'}
- Plug 'bitc/vim-bad-whitespace'
- if isdirectory('/usr/local/opt/fzf')
- Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim'
- else
- Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' }
- Plug 'junegunn/fzf.vim'
- endif
- let g:make = 'gmake'
- if exists('make')
- let g:make = 'make'
- endif
- Plug 'Shougo/vimproc.vim', {'do': g:make}
- "" Vim-Session
- Plug 'xolox/vim-misc'
- Plug 'xolox/vim-session'
- "" Snippets
- "Plug 'SirVer/ultisnips'
- Plug 'honza/vim-snippets'
- "*****************************************************************************
- "" Custom bundles
- "*****************************************************************************
- " c
- Plug 'vim-scripts/c.vim', {'for': ['c', 'cpp']}
- Plug 'ludwig/split-manpage.vim'
- " html
- "" HTML Bundle
- Plug 'hail2u/vim-css3-syntax'
- Plug 'gko/vim-coloresque'
- Plug 'tpope/vim-haml'
- Plug 'mattn/emmet-vim'
- " javascript
- "" Javascript Bundle
- Plug 'jelera/vim-javascript-syntax'
- " php
- "" PHP Bundle
- Plug 'phpactor/phpactor', {'for': 'php', 'do': 'composer install --no-dev -o'}
- Plug 'stephpy/vim-php-cs-fixer'
- " python
- "" Python Bundle
- Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'}
- " color
- Plug 'altercation/vim-colors-solarized'
- " comments
- Plug 'preservim/nerdcommenter'
- "*****************************************************************************
- "*****************************************************************************
- "" Include user's extra bundle
- if filereadable(expand("~/.config/nvim/local_bundles.vim"))
- source ~/.config/nvim/local_bundles.vim
- endif
- call plug#end()
- " Required:
- filetype plugin indent on
- "*****************************************************************************
- "" Basic Setup
- "*****************************************************************************"
- "" Encoding
- set encoding=utf-8
- set fileencoding=utf-8
- set fileencodings=utf-8
- set ttyfast
- "" Fix backspace indent
- set backspace=indent,eol,start
- "" Tabs. May be overridden by autocmd rules
- set tabstop=4
- set softtabstop=0
- set shiftwidth=4
- set noexpandtab
- "" Map leader to ,
- let mapleader=','
- "" Enable hidden buffers
- set hidden
- "" Searching
- set hlsearch
- set incsearch
- set ignorecase
- set smartcase
- set fileformats=unix,dos,mac
- if exists('$SHELL')
- set shell=$SHELL
- else
- set shell=/bin/sh
- endif
- " session management
- let g:session_directory = "~/.config/nvim/session"
- let g:session_autoload = "no"
- let g:session_autosave = "no"
- let g:session_command_aliases = 1
- "*****************************************************************************
- "" Visual Settings
- "*****************************************************************************
- syntax on
- set ruler
- set number
- let no_buffers_menu=1
- "colorscheme solarized
- colorscheme dracula
- set mousemodel=popup
- set t_Co=256
- set guioptions=egmrti
- set gfn=Monospace\ 10
- if has("gui_running")
- if has("gui_mac") || has("gui_macvim")
- set guifont=Menlo:h12
- set transparency=7
- endif
- else
- let g:CSApprox_loaded = 1
- " IndentBlankLine
- map <silent> <F5> :IndentBlanklineToggle!<CR>
- lua << EOF
- vim.cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]]
- vim.cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]]
- vim.cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]]
- vim.cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]]
- vim.cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]]
- vim.cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]]
- vim.opt.list = true
- vim.opt.listchars:append("space:⋅")
- require("indent_blankline").setup {
- space_char_blankline = " ",
- char_highlight_list = {
- "IndentBlanklineIndent1",
- "IndentBlanklineIndent2",
- "IndentBlanklineIndent3",
- "IndentBlanklineIndent4",
- "IndentBlanklineIndent5",
- "IndentBlanklineIndent6",
- },
- }
- EOF
- if $COLORTERM == 'gnome-terminal'
- set term=gnome-256color
- else
- if $TERM == 'xterm'
- set term=xterm-256color
- endif
- endif
- endif
- if &term =~ '256color'
- set t_ut=
- endif
- if has("termguicolors")
- set termguicolors
- endif
- "" Disable the blinking cursor.
- set gcr=a:blinkon0
- set scrolloff=3
- "" Status bar
- set laststatus=2
- "" Use modeline overrides
- set modeline
- set modelines=10
- set title
- set titleold="Terminal"
- set titlestring=%F
- set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\
- " Search mappings: These will make it so that going to the next one in a
- " search will center on the line it's found in.
- nnoremap n nzzzv
- nnoremap N Nzzzv
- if exists("*fugitive#statusline")
- set statusline+=%{fugitive#statusline()}
- endif
- " vim-airline
- let g:airline_theme = 'powerlineish'
- let g:airline#extensions#branch#enabled = 1
- let g:airline#extensions#ale#enabled = 1
- let g:airline#extensions#tabline#enabled = 1
- let g:airline#extensions#tagbar#enabled = 1
- let g:airline_skip_empty_sections = 1
- "*****************************************************************************
- "" Abbreviations
- "*****************************************************************************
- "" no one is really happy until you have this shortcuts
- cnoreabbrev W! w!
- cnoreabbrev Q! q!
- cnoreabbrev Qall! qall!
- cnoreabbrev Wq wq
- cnoreabbrev Wa wa
- cnoreabbrev wQ wq
- cnoreabbrev WQ wq
- cnoreabbrev W w
- cnoreabbrev Q q
- cnoreabbrev Qall qall
- "" NERDTree configuration
- let g:NERDTreeChDirMode=2
- let g:NERDTreeIgnore=['\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__']
- let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$']
- let g:NERDTreeShowBookmarks=1
- let g:nerdtree_tabs_focus_on_files=1
- let g:NERDTreeMapOpenInTabSilent = '<S-T>'
- let g:NERDTreeWinSize = 50
- set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite
- nnoremap <silent> <F2> :NERDTreeFind<CR>
- nnoremap <silent> <F3> :NERDTreeToggle<CR>
- " grep.vim
- nnoremap <silent> <leader>f :Rgrep<CR>
- let Grep_Default_Options = '-IR'
- let Grep_Skip_Files = '*.log *.db'
- let Grep_Skip_Dirs = '.git node_modules'
- " terminal emulation
- nnoremap <silent> <leader>sh :terminal<CR>
- "*****************************************************************************
- "" Commands
- "*****************************************************************************
- " remove trailing whitespaces
- command! FixWhitespace :%s/\s\+$//e
- "*****************************************************************************
- "" Functions
- "*****************************************************************************
- if !exists('*s:setupWrapping')
- function s:setupWrapping()
- set wrap
- set wm=2
- set textwidth=79
- endfunction
- endif
- "*****************************************************************************
- "" Autocmd Rules
- "*****************************************************************************
- "" The PC is fast enough, do syntax highlight syncing from start unless 200 lines
- augroup vimrc-sync-fromstart
- autocmd!
- autocmd BufEnter * :syntax sync maxlines=200
- augroup END
- "" Remember cursor position
- augroup vimrc-remember-cursor-position
- autocmd!
- autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
- augroup END
- "" txt
- augroup vimrc-wrapping
- autocmd!
- autocmd BufRead,BufNewFile *.txt call s:setupWrapping()
- augroup END
- "" make/cmake
- augroup vimrc-make-cmake
- autocmd!
- autocmd FileType make setlocal noexpandtab
- autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake
- augroup END
- "augroup disable-indentLine
- " autocmd!
- " autocmd VimEnter * :IndentBlanklineDisable!
- "augroup END
- set autoread
- "*****************************************************************************
- "" Mappings
- "*****************************************************************************
- "" Split
- noremap <Leader>h :<C-u>split<CR>
- noremap <Leader>v :<C-u>vsplit<CR>
- "" Git
- noremap <Leader>ga :Gwrite<CR>
- noremap <Leader>gc :Git commit --verbose<CR>
- noremap <Leader>gsh :Gpush<CR>
- noremap <Leader>gll :Gpull<CR>
- noremap <Leader>gs :Gstatus<CR>
- noremap <Leader>gb :Gblame<CR>
- noremap <Leader>gd :Gvdiff<CR>
- noremap <Leader>gr :Gremove<CR>
- " session management
- nnoremap <leader>so :OpenSession<Space>
- nnoremap <leader>ss :SaveSession<Space>
- nnoremap <leader>sd :DeleteSession<CR>
- nnoremap <leader>sc :CloseSession<CR>
- "" Tabs
- "nmap j gj
- "nmap k gk
- nnoremap <Tab> gt
- nnoremap <S-Tab> gT
- "nnoremap <silent> <S-t> :tabnew<CR>
- "" Set working directory
- nnoremap <leader>. :lcd %:p:h<CR>
- "" Opens an edit command with the path of the currently edited file filled in
- noremap <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
- "" Opens a tab edit command with the path of the currently edited file filled
- noremap <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
- "" fzf.vim
- set wildmode=list:longest,list:full
- set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__
- let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null"
- " The Silver Searcher
- if executable('ag')
- let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""'
- set grepprg=ag\ --nogroup\ --nocolor
- endif
- " ripgrep
- if executable('rg')
- let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"'
- set grepprg=rg\ --vimgrep
- command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape(<q-args>).'| tr -d "\017"', 1, <bang>0)
- endif
- cnoremap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
- nnoremap <silent> <leader>b :Buffers<CR>
- nnoremap <silent> <leader>e :FZF -m<CR>
- "Recovery commands from history through FZF
- nmap <leader>y :History:<CR>
- " snippets
- "let g:UltiSnipsExpandTrigger="<tab>"
- "let g:UltiSnipsJumpForwardTrigger="<tab>"
- "let g:UltiSnipsJumpBackwardTrigger="<c-b>"
- "let g:UltiSnipsEditSplit="vertical"
- " ale
- let g:ale_linters = {}
- " Tagbar
- nmap <silent> <F4> :TagbarToggle<CR>
- let g:tagbar_autofocus = 1
- " Disable visualbell
- set noerrorbells visualbell t_vb=
- if has('autocmd')
- autocmd GUIEnter * set visualbell t_vb=
- endif
- "" Copy/Paste/Cut
- if has('unnamedplus')
- set clipboard=unnamed,unnamedplus
- endif
- noremap YY "+y<CR>
- noremap <leader>p "+gP<CR>
- noremap XX "+x<CR>
- if has('macunix')
- " pbcopy for OSX copy/paste
- vmap <C-x> :!pbcopy<CR>
- vmap <C-c> :w !pbcopy<CR><CR>
- endif
- "" Buffer nav
- noremap <leader>z :bp<CR>
- noremap <leader>q :bp<CR>
- noremap <leader>x :bn<CR>
- noremap <leader>w :bn<CR>
- "" Close buffer
- noremap <leader>c :bd<CR>
- "" Clean search (highlight)
- nnoremap <silent> <leader><space> :noh<cr>
- "" Switching windows
- noremap <C-j> <C-w>j
- noremap <C-k> <C-w>k
- noremap <C-l> <C-w>l
- noremap <C-h> <C-w>h
- "" Vmap for maintain Visual Mode after shifting > and <
- vmap < <gv
- vmap > >gv
- "" Move visual block
- vnoremap J :m '>+1<CR>gv=gv
- vnoremap K :m '<-2<CR>gv=gv
- "" Open current line on GitHub
- nnoremap <Leader>o :.GBrowse<CR>
- "*****************************************************************************
- "" Custom configs
- "*****************************************************************************
- " c
- autocmd FileType c setlocal tabstop=4 shiftwidth=4 expandtab
- autocmd FileType cpp setlocal tabstop=4 shiftwidth=4 expandtab
- " html
- " for html files, 2 spaces
- autocmd Filetype html setlocal ts=2 sw=2 expandtab
- " javascript
- let g:javascript_enable_domhtmlcss = 1
- " vim-javascript
- augroup vimrc-javascript
- autocmd!
- autocmd FileType javascript setl tabstop=4|setl shiftwidth=4|setl expandtab softtabstop=4
- augroup END
- " php
- " Phpactor plugin
- " Include use statement
- nmap <Leader>u :call phpactor#UseAdd()<CR>
- " Invoke the context menu
- nmap <Leader>mm :call phpactor#ContextMenu()<CR>
- " Invoke the navigation menu
- nmap <Leader>nn :call phpactor#Navigate()<CR>
- " Goto definition of class or class member under the cursor
- nmap <Leader>oo :call phpactor#GotoDefinition()<CR>
- nmap <Leader>oh :call phpactor#GotoDefinitionHsplit()<CR>
- nmap <Leader>ov :call phpactor#GotoDefinitionVsplit()<CR>
- nmap <Leader>ot :call phpactor#GotoDefinitionTab()<CR>
- " Show brief information about the symbol under the cursor
- nmap <Leader>K :call phpactor#Hover()<CR>
- " Transform the classes in the current file
- nmap <Leader>tt :call phpactor#Transform()<CR>
- " Generate a new class (replacing the current file)
- nmap <Leader>cc :call phpactor#ClassNew()<CR>
- " Extract expression (normal mode)
- nmap <silent><Leader>ee :call phpactor#ExtractExpression(v:false)<CR>
- " Extract expression from selection
- vmap <silent><Leader>ee :<C-U>call phpactor#ExtractExpression(v:true)<CR>
- " Extract method from selection
- vmap <silent><Leader>em :<C-U>call phpactor#ExtractMethod()<CR>
- " python
- " vim-python
- augroup vimrc-python
- autocmd!
- autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8 colorcolumn=79
- \ formatoptions+=croq softtabstop=4
- \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
- augroup END
- " ale
- :call extend(g:ale_linters, {
- \'python': ['flake8'], })
- " vim-airline
- let g:airline#extensions#virtualenv#enabled = 1
- " Syntax highlight
- let python_highlight_all = 1
- "*****************************************************************************
- "*****************************************************************************
- "" Include user's local vim config
- if filereadable(expand("~/.config/nvim/local_init.vim"))
- source ~/.config/nvim/local_init.vim
- endif
- "*****************************************************************************
- "" Convenience variables
- "*****************************************************************************
- " vim-airline
- if !exists('g:airline_symbols')
- let g:airline_symbols = {}
- endif
- if !exists('g:airline_powerline_fonts')
- let g:airline#extensions#tabline#left_sep = ' '
- let g:airline#extensions#tabline#left_alt_sep = '|'
- let g:airline_left_sep = '▶'
- let g:airline_left_alt_sep = '»'
- let g:airline_right_sep = '◀'
- let g:airline_right_alt_sep = '«'
- let g:airline#extensions#branch#prefix = '⤴' "➔, ➥, ⎇
- let g:airline#extensions#readonly#symbol = '⊘'
- let g:airline#extensions#linecolumn#prefix = '¶'
- let g:airline#extensions#paste#symbol = 'ρ'
- let g:airline_symbols.linenr = '␊'
- let g:airline_symbols.branch = '⎇'
- let g:airline_symbols.paste = 'ρ'
- let g:airline_symbols.paste = 'Þ'
- let g:airline_symbols.paste = '∥'
- let g:airline_symbols.whitespace = 'Ξ'
- else
- let g:airline#extensions#tabline#left_sep = ''
- let g:airline#extensions#tabline#left_alt_sep = ''
- " powerline symbols
- let g:airline_left_sep = ''
- let g:airline_left_alt_sep = ''
- let g:airline_right_sep = ''
- let g:airline_right_alt_sep = ''
- let g:airline_symbols.branch = ''
- let g:airline_symbols.readonly = ''
- let g:airline_symbols.linenr = ''
- endif
- "coc-vim
- " Set internal encoding of vim, not needed on neovim, since coc.nvim using some
- " unicode characters in the file autoload/float.vim
- set encoding=utf-8
- " TextEdit might fail if hidden is not set.
- set hidden
- " Some servers have issues with backup files, see #649.
- set nobackup
- set nowritebackup
- " Give more space for displaying messages.
- set cmdheight=2
- " Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
- " delays and poor user experience.
- set updatetime=300
- " Don't pass messages to |ins-completion-menu|.
- set shortmess+=c
- " Always show the signcolumn, otherwise it would shift the text each time
- " diagnostics appear/become resolved.
- if has("nvim-0.5.0") || has("patch-8.1.1564")
- " Recently vim can merge signcolumn and number column into one
- set signcolumn=number
- else
- set signcolumn=yes
- endif
- " Use tab for trigger completion with characters ahead and navigate.
- " NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
- " other plugin before putting this into your config.
- inoremap <silent><expr> <TAB>
- \ pumvisible() ? "\<C-n>" :
- \ <SID>check_back_space() ? "\<TAB>" :
- \ coc#refresh()
- inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
- function! s:check_back_space() abort
- let col = col('.') - 1
- return !col || getline('.')[col - 1] =~# '\s'
- endfunction
- " Use <c-space> to trigger completion.
- if has('nvim')
- inoremap <silent><expr> <c-space> coc#refresh()
- else
- inoremap <silent><expr> <c-@> coc#refresh()
- endif
- " Make <CR> auto-select the first completion item and notify coc.nvim to
- " format on enter, <cr> could be remapped by other vim plugin
- inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
- \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
- " Use `[g` and `]g` to navigate diagnostics
- " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
- nmap <silent> [g <Plug>(coc-diagnostic-prev)
- nmap <silent> ]g <Plug>(coc-diagnostic-next)
- " GoTo code navigation.
- nmap <silent> gd <Plug>(coc-definition)
- nmap <silent> gy <Plug>(coc-type-definition)
- nmap <silent> gi <Plug>(coc-implementation)
- nmap <silent> gr <Plug>(coc-references)
- " Use K to show documentation in preview window.
- nnoremap <silent> <C-K> :call <SID>show_documentation()<CR>
- function! s:show_documentation()
- if (index(['vim','help'], &filetype) >= 0)
- execute 'h '.expand('<cword>')
- elseif (coc#rpc#ready())
- call CocActionAsync('doHover')
- else
- execute '!' . &keywordprg . " " . expand('<cword>')
- endif
- endfunction
- " Highlight the symbol and its references when holding the cursor.
- autocmd CursorHold * silent call CocActionAsync('highlight')
- " Symbol renaming.
- nmap <leader>rn <Plug>(coc-rename)
- " Formatting selected code.
- xmap <leader>f <Plug>(coc-format-selected)
- nmap <leader>f <Plug>(coc-format-selected)
- augroup mygroup
- autocmd!
- " Setup formatexpr specified filetype(s).
- autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
- " Update signature help on jump placeholder.
- autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
- augroup end
- " Applying codeAction to the selected region.
- " Example: `<leader>aap` for current paragraph
- xmap <leader>a <Plug>(coc-codeaction-selected)
- nmap <leader>a <Plug>(coc-codeaction-selected)
- " Remap keys for applying codeAction to the current buffer.
- nmap <leader>ac <Plug>(coc-codeaction)
- " Apply AutoFix to problem on the current line.
- nmap <leader>qf <Plug>(coc-fix-current)
- " Map function and class text objects
- " NOTE: Requires 'textDocument.documentSymbol' support from the language server.
- xmap if <Plug>(coc-funcobj-i)
- omap if <Plug>(coc-funcobj-i)
- xmap af <Plug>(coc-funcobj-a)
- omap af <Plug>(coc-funcobj-a)
- xmap ic <Plug>(coc-classobj-i)
- omap ic <Plug>(coc-classobj-i)
- xmap ac <Plug>(coc-classobj-a)
- omap ac <Plug>(coc-classobj-a)
- " Remap <C-f> and <C-b> for scroll float windows/popups.
- if has('nvim-0.4.0') || has('patch-8.2.0750')
- nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
- nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
- inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
- inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
- vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
- vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
- endif
- " Use CTRL-S for selections ranges.
- " Requires 'textDocument/selectionRange' support of language server.
- nmap <silent> <C-s> <Plug>(coc-range-select)
- xmap <silent> <C-s> <Plug>(coc-range-select)
- " Add `:Format` command to format current buffer.
- command! -nargs=0 Format :call CocAction('format')
- " Add `:Fold` command to fold current buffer.
- command! -nargs=? Fold :call CocAction('fold', <f-args>)
- " Add `:OR` command for organize imports of the current buffer.
- command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
- " Add (Neo)Vim's native statusline support.
- " NOTE: Please see `:h coc-status` for integrations with external plugins that
- " provide custom statusline: lightline.vim, vim-airline.
- set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
- " Mappings for CoCList
- " Show all diagnostics.
- nnoremap <silent><nowait> <space>d :<C-u>CocList diagnostics<cr>
- " Manage extensions.
- nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
- " Show commands.
- nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
- " Find symbol of current document.
- nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
- " Search workspace symbols.
- nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
- " Do default action for next item.
- nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
- " Do default action for previous item.
- nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
- " Resume latest coc list.
- nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
- " CocAction
- nnoremap <silent><nowait> <space>a :<C-u>CocAction<cr>
- " CocFix
- nnoremap <silent><nowait> <space>f :<C-u>CocFix<cr>
- " vuejs
- " vim vue
- let g:vue_disable_pre_processors=1
- " vim vue plugin
- let g:vim_vue_plugin_load_full_syntax = 1
- let g:vim_vue_plugin_config = {
- \'syntax': {
- \ 'template': ['html'],
- \ 'script': ['javascript'],
- \ 'style': ['css'],
- \},
- \'full_syntax': [],
- \'initial_indent': [],
- \'attribute': 0,
- \'keyword': 0,
- \'foldexpr': 0,
- \'debug': 0,
- \}
|