aboutsummaryrefslogtreecommitdiff
path: root/.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim')
-rw-r--r--.vim/after/ftplugin/markdown.vim1
-rw-r--r--.vim/keymaps.vim136
-rw-r--r--.vim/options.vim90
-rw-r--r--.vim/plugins.vim49
-rw-r--r--.vim/spell/en.utf-8.add11
-rw-r--r--.vim/spell/en.utf-8.add.splbin0 -> 211 bytes
6 files changed, 167 insertions, 120 deletions
diff --git a/.vim/after/ftplugin/markdown.vim b/.vim/after/ftplugin/markdown.vim
new file mode 100644
index 0000000..bcda2dd
--- /dev/null
+++ b/.vim/after/ftplugin/markdown.vim
@@ -0,0 +1 @@
+setlocal spell
diff --git a/.vim/keymaps.vim b/.vim/keymaps.vim
index 993ef87..eef6409 100644
--- a/.vim/keymaps.vim
+++ b/.vim/keymaps.vim
@@ -2,46 +2,136 @@
" Keymaps
"""""""""""""""""""""""""""""
+""""""""""""""""""""
" Window movement
+""""""""""""""""""""
+
+" Go to the bottom window
noremap <C-j> <C-w>j
+
+" Go to the top window
noremap <C-k> <C-w>k
+
+" Go to the right window
noremap <C-l> <C-w>l
+
+" Go to the left window
noremap <C-h> <C-w>h
+""""""""""""""""""""""""
" Remove highlighting
-nnoremap <leader>h :nohlsearch<CR>
+""""""""""""""""""""""""
+
+nnoremap <leader>hl :nohlsearch<CR>
" Save file
nnoremap <C-s> :w!<CR>
+""""""""""""""""""""""""""
+" Buffer
+"""""""""""""""""""""""""
+
+" Close the current buffer
+map <leader>bd :Bclose<cr>:tabclose<cr>gT
+
+" Close all the buffers
+map <leader>ba :bufdo bd<cr>
+
+" Go to the next buffer
+map <leader>l :bnext<cr>
+
+" Go to the previous buffer
+map <leader>h :bprevious<cr>
+
+""""""""""""""""""""""""""""
+" Tabs
+"""""""""""""""""""""""""""
+
+" Open a new tab
+map <leader>tn :tabnew<cr>
+
+" Close all others tab
+map <leader>to :tabonly<cr>
+
+" Close current tab page
+map <leader>tc :tabclose<cr>
+
+" Move tabs after another
+map <leader>tm :tabmove
+
+" Go to the next tab
+map <leader>t<leader> :tabnext<cr>
+
+" Let 'tl' toggle between this and the last accessed tab
+let g:lasttab = 1
+nmap <leader>tl :exe "tabn ".g:lasttab<CR>
+au TabLeave * let g:lasttab = tabpagenr()
+
+" Opens a new tab with the current buffer's path
+" Super useful when editing files in the same directory
+map <leader>te :tabedit <C-r>=escape(expand("%:p:h"), " ")<cr>/
+
+" Switch CWD to the directory of the open buffer
+map <leader>cd :cd %:p:h<cr>:pwd<cr>
+
+" Specify the behavior when switching between buffers
+try
+ set switchbuf=useopen,usetab,newtab
+ set stal=2
+catch
+endtry
+
+" Return to last edit position when opening files (You want this!)
+au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
+
+""""""""""""""""""""""""
" NerdTree
+"""""""""""""""""""""""
+
+" Toggle nerdtree
nnoremap <C-f> :NERDTreeToggle<CR>
+""""""""""""""""""""
" GitGutter
+""""""""""""""""""""
let g:gitgutter_enabled=1 " Enable by default gitgutter
-nnoremap <leader>d :GitGutterToggle<CR>
+
+" Enable / Disable GitGutter
+nnoremap <leader>d :GitGutterToggle<CR>
+
+" Stage Hunk in Git
nnoremap <leader>hs :GitGutterStageHunk<CR>
+
+" Undo Hunk
nnoremap <leader>hu :GitGutterUndoHunk<CR>
+
+" Preview Hunk
nnoremap <leader>hp :GitGutterPreviewHunk<CR>
-" Vsnip
-" Expand
-imap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
-smap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
-
-" Expand or jump
-imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
-smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
-
-" Jump forward or backward
-imap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
-smap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
-imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
-smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
-
-" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet.
-" See https://github.com/hrsh7th/vim-vsnip/pull/50
-nmap s <Plug>(vsnip-select-text)
-xmap s <Plug>(vsnip-select-text)
-nmap S <Plug>(vsnip-cut-text)
-xmap S <Plug>(vsnip-cut-text)
+" Always show the status line
+set laststatus=2
+
+"""""""""""""""""""""
+" Spell
+"""""""""""""""""""""
+
+" Toggle and untoggle spell checking
+map <leader>ss :setlocal spell!<cr>
+
+" Next word to spellcheck
+map <leader>sn ]s
+
+" Previous word to spellcheck
+map <leader>sp [s
+
+" Add word into the spellcheck dictionnary
+map <leader>sa zg
+
+" show the list of alternatives for the word
+map <leader>s? z=
+
+"""""""""""""""""""
+" LSP
+"""""""""""""""""""
+inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
+inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
diff --git a/.vim/options.vim b/.vim/options.vim
index 29f9f2c..431bfc7 100644
--- a/.vim/options.vim
+++ b/.vim/options.vim
@@ -9,9 +9,10 @@ set hlsearch " Highlight all match search pattern
" Graphics options
syntax on " Show syntax color
-set background=dark
-colorscheme onedark
+set background=dark " Set vim style as dark
+colorscheme onedark " Set colorscheme as onedark
set number " Show line number
+set relativenumber " Show relative line number
set cursorline " Select the current line
set showmatch " Show matching brackets when overred
set laststatus =2 " Fix for tabline
@@ -38,19 +39,20 @@ set autoread " Automatically read extern changes on the file
" System
if has('unnamedplus') " ALlow OS & vim clipboard sync
- set clipboard = "unnamedplus"
+ set clipboard = unnamedplus
endif
set undofile " Save undo history
set history =500 " Max line vim remember
set updatetime=500 " Delay before vim write swap file, lower better for gitgutter
" Autocomplete
-set completeopt = "menuone,noselect" " Show a pop up for command completion
+set completeopt=menu,menuone,popup,noselect,noinsert " Show a pop up for command completion
set wildmenu " Turn on wildmenu
" Avoid garbled characters in Chinese language windows OS
-let $LANG='en'
-set langmenu=en
+let $LANG='en' " Setting lang as en
+set langmenu=en " Setting menu lang as en
+" This delete all the defined menu
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
@@ -71,23 +73,9 @@ set whichwrap+=<,>,h,l
" Don't redraw while executing macros (good performance config)
set lazyredraw
-" For regular expressions turn magic on
-set magic
-
" How many tenths of a second to blink when matching brackets
set mat=2
-" No annoying sound on errors
-set noerrorbells
-set novisualbell
-set t_vb=
-set tm=500
-
-" Properly disable sound on errors on MacVim
-if has("gui_macvim")
- autocmd GUIEnter * set vb t_vb=
-endif
-
" Add a bit extra margin to the left
set foldcolumn=1
@@ -97,69 +85,7 @@ set encoding=utf8
" Use Unix as the standard file type
set ffs=unix,dos,mac
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" => Files, backups and undo
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Turn backup off, since most stuff is in SVN, git etc. anyway...
set nobackup
set nowb
set noswapfile
-
-" Close the current buffer
-map <leader>bd :Bclose<cr>:tabclose<cr>gT
-
-" Close all the buffers
-map <leader>ba :bufdo bd<cr>
-
-map <leader>l :bnext<cr>
-map <leader>h :bprevious<cr>
-
-" Useful mappings for managing tabs
-map <leader>tn :tabnew<cr>
-map <leader>to :tabonly<cr>
-map <leader>tc :tabclose<cr>
-map <leader>tm :tabmove
-map <leader>t<leader> :tabnext<cr>
-
-" Let 'tl' toggle between this and the last accessed tab
-let g:lasttab = 1
-nmap <leader>tl :exe "tabn ".g:lasttab<CR>
-au TabLeave * let g:lasttab = tabpagenr()
-
-
-" Opens a new tab with the current buffer's path
-" Super useful when editing files in the same directory
-map <leader>te :tabedit <C-r>=escape(expand("%:p:h"), " ")<cr>/
-
-" Switch CWD to the directory of the open buffer
-map <leader>cd :cd %:p:h<cr>:pwd<cr>
-
-" Specify the behavior when switching between buffers
-try
- set switchbuf=useopen,usetab,newtab
- set stal=2
-catch
-endtry
-
-" Return to last edit position when opening files (You want this!)
-au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
-
-
-""""""""""""""""""""""""""""""
-" => Status line
-""""""""""""""""""""""""""""""
-" Always show the status line
-set laststatus=2
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" => Spell checking
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Pressing ,ss will toggle and untoggle spell checking
-map <leader>ss :setlocal spell!<cr>
-
-" Shortcuts using <leader>
-map <leader>sn ]s
-map <leader>sp [s
-map <leader>sa zg
-map <leader>s? z=
-
diff --git a/.vim/plugins.vim b/.vim/plugins.vim
index d881f6a..e7e9f6e 100644
--- a/.vim/plugins.vim
+++ b/.vim/plugins.vim
@@ -19,17 +19,16 @@ 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
" Git integration
-Plug 'tpope/vim-fugitive' " Git commands & informations
Plug 'airblade/vim-gitgutter' " Git diff
" Autocompletion, linter, syntax
-Plug 'dense-analysis/ale' " Swiss-knife for all this
-
-" Snippets
-Plug 'hrsh7th/vim-vsnip'
-Plug 'rafamadriz/friendly-snippets'
+Plug 'prabirshrestha/vim-lsp'
+Plug 'mattn/vim-lsp-settings'
+Plug 'prabirshrestha/asyncomplete.vim'
+Plug 'prabirshrestha/asyncomplete-lsp.vim'
call plug#end()
@@ -47,12 +46,12 @@ 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.linenr = 'ΒΆ'
+let g:airline_symbols.linenr = ' ΒΆ'
let g:airline_symbols.maxlinenr = ''
-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 = 'Þ'
@@ -60,15 +59,34 @@ 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 = 'Ξ'
-let g:airline#extensions#ale#enabled = 1 " Allow ALE to use status line
+let g:airline_symbols.whitespace = ' Ξ'
" ALE
+" ALE linter
let g:ale_linters = {
\ 'javascript': ['eslint'],
-\ 'python': ['flake8'],
+\ 'python': ['flake8', 'pylint', 'pydocstyle', 'bandit', 'mypy']
\ }
+let g:ale_lint_on_save = 1
+let g:ale_lint_on_text_changed = 0
+let g:ale_open_list = 1
+
+" ALE fixer
+let g:ale_fixers = {
+\ '*': ['remove_trailing_lines', 'trim_whitespace'],
+\ 'python': ['black', 'isort']
+\}
+let g:ale_fix_on_save = 1
+
+let g:ale_echo_msg_error_str = 'E'
+let g:ale_echo_msg_warning_str = 'W'
+let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
+
+let g:ale_set_loclist = 0
+let g:ale_set_signs = 1
+let g:ale_set_highlights = 1
+
let g:ale_completion_enabled = 1
let g:ale_completion_symbols = {
\ 'text': 'ξ˜’',
@@ -101,14 +119,15 @@ let g:ale_completion_symbols = {
" 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
let g:plug_window = 'noautocmd vertical topleft new' " Stop crash if vimplug command called on the nerdtree window
-
-" VIM snip
-let g:vsnip_filetypes = {}
diff --git a/.vim/spell/en.utf-8.add b/.vim/spell/en.utf-8.add
new file mode 100644
index 0000000..283920b
--- /dev/null
+++ b/.vim/spell/en.utf-8.add
@@ -0,0 +1,11 @@
+linters
+nerdtree
+GitGutter
+keybinds
+onedark
+LSP
+vscode
+autocompleter
+linter
+neovim
+untoggle
diff --git a/.vim/spell/en.utf-8.add.spl b/.vim/spell/en.utf-8.add.spl
new file mode 100644
index 0000000..29528b3
--- /dev/null
+++ b/.vim/spell/en.utf-8.add.spl
Binary files differ
ArKa projects. All rights to me, and your next child right arm.