From 3c0e1088ad698fb1548b0c474c487c3b032d228e Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Sun, 10 May 2020 18:18:08 +0530 Subject: [PATCH] nvim: Drop easymotion We use easymotion primarily for vertical motion and any motion requires at least 3 or 4 key bindings which isn't necessarily different if we are using relative numbers. For example, pressing j and then pressing another one or two keys for the vertical movement is the same number of keys while using relative numbers. So just use relative numbers and drop it. We also never used the word and character motions or cross window motions. Use f,F,t,T for horizontal line motions. Use clever-f for this, which improves the default behaviour. For any other motion not covered by these two, just use incsearch. While at it, move some of the key bindings to after/plugin to have key bindings specific to a plugin in it's own file. Signed-off-by: Sanchayan Maity --- nvim/.config/nvim/after/plugin/easy-align.vim | 4 ++ nvim/.config/nvim/after/plugin/incsearch.vim | 9 ++++ nvim/.config/nvim/config.vim | 1 + nvim/.config/nvim/init.vim | 5 +-- nvim/.config/nvim/keymappings.vim | 42 ------------------- nvim/.config/nvim/plugin_settings.vim | 2 +- 6 files changed, 17 insertions(+), 46 deletions(-) create mode 100644 nvim/.config/nvim/after/plugin/easy-align.vim create mode 100644 nvim/.config/nvim/after/plugin/incsearch.vim diff --git a/nvim/.config/nvim/after/plugin/easy-align.vim b/nvim/.config/nvim/after/plugin/easy-align.vim new file mode 100644 index 0000000..063a7c3 --- /dev/null +++ b/nvim/.config/nvim/after/plugin/easy-align.vim @@ -0,0 +1,4 @@ +" Start interactive EasyAlign in visual mode (e.g. vipga) +xmap ga (EasyAlign) +" Start interactive EasyAlign for a motion/text object (e.g. gaip) +nmap ga (EasyAlign) diff --git a/nvim/.config/nvim/after/plugin/incsearch.vim b/nvim/.config/nvim/after/plugin/incsearch.vim new file mode 100644 index 0000000..8f8d093 --- /dev/null +++ b/nvim/.config/nvim/after/plugin/incsearch.vim @@ -0,0 +1,9 @@ +map / (incsearch-forward) +map ? (incsearch-backward) +map g/ (incsearch-stay) +map n (incsearch-nohl-n) +map N (incsearch-nohl-N) +map * (incsearch-nohl-*) +map # (incsearch-nohl-#) +map g* (incsearch-nohl-g*) +map g# (incsearch-nohl-g#) diff --git a/nvim/.config/nvim/config.vim b/nvim/.config/nvim/config.vim index bef76c9..d027156 100644 --- a/nvim/.config/nvim/config.vim +++ b/nvim/.config/nvim/config.vim @@ -32,6 +32,7 @@ set undofile " Enable undo persistence across sessions set hidden set noautochdir set hlsearch +set relativenumber " Wild menu set wildmenu diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index d12107f..cfec577 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -2,10 +2,9 @@ call plug#begin('~/.config/nvim/plugged') " Tab completion Plug 'ervandew/supertab' -" EasyMotion -Plug 'easymotion/vim-easymotion' +" Motions Plug 'haya14busa/incsearch.vim' -Plug 'haya14busa/incsearch-easymotion.vim' +Plug 'rhysd/clever-f.vim' " Fuzzy search Plug 'junegunn/fzf.vim' " Remove extraneous whitespace when edit mode is exited diff --git a/nvim/.config/nvim/keymappings.vim b/nvim/.config/nvim/keymappings.vim index b3a12b3..19e629b 100644 --- a/nvim/.config/nvim/keymappings.vim +++ b/nvim/.config/nvim/keymappings.vim @@ -161,48 +161,6 @@ noremap nnoremap :WhichKey '' nnoremap :WhichKey ',' -" Bindings for easy motion -" Character motions -map c (easymotion-bd-f) -nmap c (easymotion-overwin-f) -" Line motions -map L (easymotion-bd-jk) -nmap L (easymotion-overwin-line) -" Word motions -map w (easymotion-bd-w) -nmap w (easymotion-overwin-w) -" Line motion jump -map l (easymotion-lineforward) -map j (easymotion-j) -map k (easymotion-k) -map h (easymotion-linebackward) -" Incremental search + easymotion -noremap / incsearch#go(incsearch_config()) -noremap ? incsearch#go(incsearch_config({'command': '?'})) -noremap g/ incsearch#go(incsearch_config({'is_stay': 1})) -" Incremental search -map n (incsearch-nohl-n) -map N (incsearch-nohl-N) -map * (incsearch-nohl-*) -map # (incsearch-nohl-#) -map g* (incsearch-nohl-g*) -map g# (incsearch-nohl-g#) - " Tag helpers nnoremap :vsp :exec("tag ".expand("")) nnoremap :sp :exec("tag ".expand("")) - -" Start interactive EasyAlign in visual mode (e.g. vipga) -xmap ga (EasyAlign) -" Start interactive EasyAlign for a motion/text object (e.g. gaip) -nmap ga (EasyAlign) - -function! s:incsearch_config(...) abort - return incsearch#util#deepextend(deepcopy({ - \ 'modules': [incsearch#config#easymotion#module({'overwin': 1})], - \ 'keymap': { - \ "\": '(easymotion)' - \ }, - \ 'is_expr': 0 - \ }), get(a:, 1, {})) -endfunction diff --git a/nvim/.config/nvim/plugin_settings.vim b/nvim/.config/nvim/plugin_settings.vim index fce8cf3..03729c4 100644 --- a/nvim/.config/nvim/plugin_settings.vim +++ b/nvim/.config/nvim/plugin_settings.vim @@ -73,7 +73,7 @@ let g:grepper.switch = 0 let g:grepper.append = 0 let g:grepper.prompt = 0 -" Easymotion incsearch +" Incremental search let g:incsearch#auto_nohlsearch = 1 " Buftabline