aboutsummaryrefslogtreecommitdiff
path: root/.vim
diff options
context:
space:
mode:
authorOxbian <got.dacs@slmail.me>2023-07-02 20:39:30 +0200
committerOxbian <got.dacs@slmail.me>2023-07-02 20:39:30 +0200
commite8c1a06d0e63fcf6d383dd3f1be14e4b095466e6 (patch)
tree931dd48087ac1f90028f089523686e26b779f5d0 /.vim
parent95f323522716f6b72133fefb615f4ede906dc0f2 (diff)
downloadvimrc-e8c1a06d0e63fcf6d383dd3f1be14e4b095466e6.tar.gz
vimrc-e8c1a06d0e63fcf6d383dd3f1be14e4b095466e6.zip
Updating vim & documentation
Diffstat (limited to '.vim')
-rw-r--r--.vim/keymaps.vim40
-rw-r--r--.vim/options.vim6
-rw-r--r--.vim/plugins.vim109
3 files changed, 121 insertions, 34 deletions
diff --git a/.vim/keymaps.vim b/.vim/keymaps.vim
index 1345178..57f9e8d 100644
--- a/.vim/keymaps.vim
+++ b/.vim/keymaps.vim
@@ -2,6 +2,12 @@
" Keymaps
"""""""""""""""""""""""""""""
+let g:mapleader = "\<Space>"
+let g:maplocalleader = ','
+nnoremap <silent> <leader> :<c-u>WhichKey '<Space>'<CR>
+nnoremap <silent> <localleader> :<c-u>WhichKey ','<CR>
+
+
""""""""""""""""""""
" Window movement
""""""""""""""""""""
@@ -38,10 +44,10 @@ map <leader>bd :Bclose<cr>:tabclose<cr>gT
map <leader>ba :bufdo bd<cr>
" Go to the next buffer
-map <leader>]b :bnext<cr>
+map <leader>bn :bnext<cr>
" Go to the previous buffer
-map <leader>[b :bprevious<cr>
+map <leader>bp :bprevious<cr>
""""""""""""""""""""""""""""
" Tabs
@@ -89,18 +95,19 @@ au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g
"""""""""""""""""""""""
" Toggle nerdtree
-nnoremap <C-f> :NERDTreeToggle<CR>
+nnoremap <C-f> :Fern .<CR>
""""""""""""""""""""
" GitGutter
""""""""""""""""""""
+
let g:gitgutter_enabled=1 " Enable by default gitgutter
" Go to the previous hunk
-nnoremap <leader>[h <Plug>(GitGutterPrevHunk)
+nnoremap <leader>hp <Plug>(GitGutterPrevHunk)
" Go to the next hunk
-nnoremap <leader>]h <Plug>(GitGutterNextHunk)
+nnoremap <leader>hn <Plug>(GitGutterNextHunk)
" Enable / Disable GitGutter
nnoremap <leader>ht <Plug>(GitGutterToggle)
@@ -112,7 +119,7 @@ nnoremap <leader>hs <Plug>(GitGutterStageHunk)
nnoremap <leader>hu <Plug>(GitGutterUndoHunk)
" Preview Hunk
-nnoremap <leader>hp :GitGutterPreviewHunk<CR>
+nnoremap <leader>hP :GitGutterPreviewHunk<CR>
" Always show the status line
set laststatus=2
@@ -139,16 +146,37 @@ map <leader>s? z=
"""""""""""""""""""
" LSP
"""""""""""""""""""
+
inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
+" Go to definition
nnoremap <leader>ld :LspDefinition<cr>
+
+" Go next diagnostic
nnoremap <leader>lnd :LspNextDiagnostic<cr>
+
+" Go previous diagnostic
nnoremap <leader>lpd :LspPreviousDiagnostic<cr>
+
+" Go to reference
nnoremap <leader>lf :LspReferences<cr>
+
+" Rename object
nnoremap <leader>lr :LspRename<cr>
+
+" LSP stop server
nnoremap <leader>ls :LspStopServer<cr>
+
+" peek definition of object
nnoremap <leader>lp :LspPeekDefinition<cr>
+
+" Code Action
nnoremap <leader>la :LspCodeAction<cr>
+
+" Hover information
nnoremap <leader>lh :LspHover<cr>
+
+" Format document
nnoremap <leader>ldf :LspDocumentFormat<cr>
+
diff --git a/.vim/options.vim b/.vim/options.vim
index 431bfc7..353b9a5 100644
--- a/.vim/options.vim
+++ b/.vim/options.vim
@@ -1,6 +1,3 @@
-" Mapping
-let mapleader =" " " Set mapleader
-
" Search options
set incsearch " Search for partial typed match
set ignorecase " Search not case sensitive
@@ -89,3 +86,6 @@ set ffs=unix,dos,mac
set nobackup
set nowb
set noswapfile
+
+" Timeout
+set timeoutlen=500
diff --git a/.vim/plugins.vim b/.vim/plugins.vim
index a98a9d2..53c76aa 100644
--- a/.vim/plugins.vim
+++ b/.vim/plugins.vim
@@ -17,9 +17,13 @@ call plug#begin('~/.vim/plugged')
" UI & Themes
Plug 'joshdick/onedark.vim' " Onedark themes for vim
Plug 'vim-airline/vim-airline' " Vim statusline
-Plug 'preservim/nerdtree' " Filetree in vim
-Plug 'ryanoasis/vim-devicons' " Icons for vim
-Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " Syntax in nerdtree for files extension
+Plug 'lambdalisue/fern.vim' " Filetree in vim
+Plug 'lambdalisue/fern-hijack.vim' " Open directory with fern
+Plug 'lambdalisue/fern-renderer-devicons.vim' " Icon in fern
+Plug 'ryanoasis/vim-devicons' " Devicons
+Plug 'lambdalisue/fern-mapping-git.vim' " Fern git mapping
+Plug 'andykog/fern-copynode.vim' " Fern copy node
+Plug 'lambdalisue/fern-git-status.vim' " Fern git status
Plug 'liuchengxu/vim-which-key' " Show leader mapping cheatsheet
" Git integration
@@ -45,39 +49,94 @@ if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_symbols.colnr = ' ㏇:'
-let g:airline_symbols.colnr = ' β„…:'
let g:airline_symbols.crypt = 'πŸ”’'
-let g:airline_symbols.linenr = ' ☰'
-let g:airline_symbols.linenr = ' ␊:'
-let g:airline_symbols.linenr = ' ␀:'
let g:airline_symbols.linenr = ' ΒΆ'
let g:airline_symbols.maxlinenr = ''
-let g:airline_symbols.maxlinenr = ' ㏑'
let g:airline_symbols.branch = 'βŽ‡'
let g:airline_symbols.paste = 'ρ'
-let g:airline_symbols.paste = 'Þ'
-let g:airline_symbols.paste = 'βˆ₯'
let g:airline_symbols.spell = 'Ꞩ'
let g:airline_symbols.notexists = 'Ι†'
-let g:airline_symbols.notexists = 'βˆ„'
let g:airline_symbols.whitespace = ' Ξ'
" VIM lsp
let g:lsp_diagnostics_echo_cursor = 1
let g:lsp_diagnostics_virtual_text_enabled = 0
-" NerdTree
-let NERDTreeShowHidden=1 " Show hidden files
-let NERDTreeQuitOnOpen = 1 " Close a nerdtree after opening the file
-
-" Close the tab if NERDTree is the only window remaining in it.
-autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
-
-" If another buffer tries to replace NERDTree, put it in the other window, and bring back NERDTree.
-autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 |
- \ let buf=bufnr() | buffer# | execute "normal! \<C-W>w" | execute 'buffer'.buf | endif
-
-" If more than one window and previous buffer was NERDTree, go back to it.
-autocmd BufEnter * if bufname('#') =~# "^NERD_tree_" && winnr('$') > 1 | b# | endif
-
+" Fern
+let g:fern#default_hidden = 1
+let g:fern#renderer = 'devicons'
+let g:fern_renderer_devicons_disable_warning = 1
+
+" Multi window select in which you open the file
+function! s:init_fern() abort
+ " Use 'select' instead of 'edit' for default 'open' action
+ nmap <buffer> <Plug>(fern-action-open) <Plug>(fern-action-open:select)
+endfunction
+
+augroup fern-custom
+ autocmd! *
+ autocmd FileType fern call s:init_fern()
+augroup END
+
+" Which Key
+call which_key#register('<Space>', "g:which_key_map")
+let g:which_key_map = {}
+
+" Buffer key help
+let g:which_key_map.b = {
+ \ 'name' : '+buffer',
+ \ 'd' : 'current buffer close',
+ \ 'a' : 'close all buffers',
+ \ 'n' : 'go to next buffer',
+ \ 'p' : 'go to previous buffer',
+ \ }
+
+" Tab key help
+let g:which_key_map.t = {
+ \ 'name' : '+tab',
+ \ 't<leader>' : 'go to next tab',
+ \ 'n' : 'open new tab',
+ \ 'o' : 'close other tabs',
+ \ 'c' : 'close current tab',
+ \ 'm' : 'move tab after another',
+ \ 'l' : 'switch between this & last tab',
+ \ 'e' : 'open new tab with current buffer',
+ \ }
+
+" Spell key help
+let g:which_key_map.s = {
+ \ 'name' : '+spell',
+ \ 's' : 'toggle spell check',
+ \ 'n' : 'next spell word',
+ \ 'p' : 'previous spell word',
+ \ 'a' : 'add word in dict',
+ \ '?' : 'list word alternatives',
+ \ }
+
+" Hunk key help
+let g:which_key_map.h = {
+ \ 'name' : '+git hunk',
+ \ 'l' : 'remove highlight',
+ \ 'p' : 'go previous hunk',
+ \ 'n' : 'go next hunk',
+ \ 't' : 'enable/disable gitgutter',
+ \ 's' : 'stage hunk',
+ \ 'u' : 'undo hunk',
+ \ 'P' : 'preview hunk',
+ \ }
+
+" LSP key help
+let g:which_key_map.l = {
+ \ 'name' : '+LSP',
+ \ 'd' : 'go to definition',
+ \ 'nd' : 'next diagnostic',
+ \ 'pd' : 'previous diagnostic',
+ \ 'f' : 'go to reference',
+ \ 'r' : 'rename object',
+ \ 's' : 'stop LSP server',
+ \ 'p' : 'peek definition',
+ \ 'a' : 'code action',
+ \ 'h' : 'hover information',
+ \ 'df' : 'format document',
+ \ }
ArKa projects. All rights to me, and your next child right arm.