diff --git a/vim/.vimrc b/vim/.vimrc index 7f0dc0e..b773051 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -1,15 +1,25 @@ " Plugins call plug#begin('~/.vim/plugged') -" Themes, visual elements +" Startify +Plug 'mhinz/vim-startify' + +" Theme Plug 'kyoz/purify', { 'rtp': 'vim' } + +" Surround +Plug 'tpope/vim-surround' + +" Lightline Plug 'itchyny/lightline.vim' +Plug 'mengelbrecht/lightline-bufferline' " Distraction-free Plug 'junegunn/goyo.vim' " Syntax Plug 'sheerun/vim-polyglot' +Plug 'kevinoid/vim-jsonc' " Color highlight Plug 'ap/vim-css-color' @@ -19,7 +29,7 @@ Plug 'aymericbeaumet/vim-symlink' " Code completion Plug 'neoclide/coc.nvim', { 'branch': 'release' } -Plug 'phpactor/phpactor', {'for': 'php', 'branch': 'master', 'do': 'composer install --no-dev -o'} +Plug 'phpactor/phpactor', { 'for': 'php', 'branch': 'master', 'do': 'composer install --no-dev -o' } " ALE Plug 'dense-analysis/ale' @@ -34,10 +44,27 @@ Plug 'puremourning/vimspector' Plug 'tpope/vim-fugitive', { 'tag': 'v3.2' } Plug 'airblade/vim-gitgutter' +" Obsession +Plug 'tpope/vim-obsession' + " NERDTree Plug 'preservim/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' +" VimDevIcons +Plug 'ryanoasis/vim-devicons' + +" Snippets +Plug 'SirVer/ultisnips' +Plug 'honza/vim-snippets' + +" FZF +Plug 'junegunn/fzf' +Plug 'junegunn/fzf.vim' + +" Bufonly +Plug 'schickling/vim-bufonly' + call plug#end() syntax on @@ -56,6 +83,10 @@ if !has('nvim') set ttymouse=sgr endif +" .vimrc +nnoremap :e ~/.vimrc +nnoremap :so ~/.vimrc + " Indentation filetype plugin indent on set expandtab @@ -67,9 +98,51 @@ set smartindent " Search set hlsearch +" FZF +nnoremap fa :Ag +nnoremap fb :Buffers +nnoremap fc :Commands +nnoremap fg :GitFiles +nnoremap fhc :History: +nnoremap fhs :History/ +nnoremap ff :Files +nnoremap fr :Rg +nnoremap fm :Maps + " Lightline set laststatus=2 set cmdheight=2 +set showtabline=2 + +let g:lightline = { + \ 'colorscheme': 'wombat', + \ 'active': { + \ 'left': [ [ 'mode', 'paste' ], + \ [ 'cocstatus', 'readonly', 'filename', 'modified', 'gitbranch'] ] + \ }, + \ 'tabline': { + \ 'left': [ ['buffers'] ] + \ }, + \ 'component_expand': { + \ 'buffers': 'lightline#bufferline#buffers' + \ }, + \ 'component_function': { + \ 'cocstatus': 'coc#status', + \ 'gitbranch': 'FugitiveHead' + \ }, + \ 'component_type': { + \ 'buffers': 'tabsel' + \ } + \ } + +let g:lightline#bufferline#show_number = 1 +let g:lightline#bufferline#enable_devicons = 1 +let g:lightline#bufferline#clickable = 1024 +let g:lightline.component_raw = {'buffers': 1} + +" Buffers +nnoremap b :ls:b +nnoremap cb :BufOnly " Distraction-free nnoremap g :Goyo @@ -90,12 +163,15 @@ set nowritebackup " updatetime set updatetime=450 -" Debugging -let g:vimspector_enable_mappings = 'HUMAN' - " ALE let g:ale_disable_lsp = 1 +" Debugging +let g:vimspector_enable_mappings = 'HUMAN' +nmap di VimspectorBalloonEval +xmap di VimspectorBalloonEval +nmap dr :VimspectorReset + " Tabs nnoremap :tabprevious nnoremap :tabnext @@ -103,16 +179,18 @@ nnoremap :tabprevious nnoremap :tabnext " Clipboard -vmap "+y -nmap "+gP +vmap "+y " NERDTree autocmd StdinReadPre * let s:std_in=1 -autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif +"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif -map :NERDTreeToggle +let g:NERTreeChDirMode = 2 +map :NERDTreeToggle +nnoremap :NERDTreeFind + " Code completion set hidden set shortmess+=c @@ -208,3 +286,34 @@ nnoremap k :CocPrev nnoremap p :CocListResume set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} + +" Use for trigger snippet expand. +imap (coc-snippets-expand) + +" Use for select text for visual placeholder of snippet. +vmap (coc-snippets-select) + +" Use for jump to next placeholder, it's default of coc.nvim +let g:coc_snippet_next = '' + +" Use for jump to previous placeholder, it's default of coc.nvim +let g:coc_snippet_prev = '' + +" Use for both expand and jump (make expand higher priority.) +imap (coc-snippets-expand-jump) + +" Use x for convert visual selected code to snippet +xmap x (coc-convert-snippet) + +inoremap + \ pumvisible() ? coc#_select_confirm() : + \ coc#expandableOrJumpable() ? "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : + \ check_back_space() ? "\" : + \ coc#refresh() + +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +let g:coc_snippet_next = ''