From ee96831c8b9ec7c5a77466f888e792d0f43103d5 Mon Sep 17 00:00:00 2001 From: Urbain Vaes Date: Mon, 17 Dec 2018 18:37:47 +0100 Subject: [vim] Add mapping to cycle quickfix more easily --- vim/.vim/after/plugin/generalized_motion.vim | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 vim/.vim/after/plugin/generalized_motion.vim (limited to 'vim/.vim/after') diff --git a/vim/.vim/after/plugin/generalized_motion.vim b/vim/.vim/after/plugin/generalized_motion.vim new file mode 100644 index 0000000..87ea9ed --- /dev/null +++ b/vim/.vim/after/plugin/generalized_motion.vim @@ -0,0 +1,26 @@ +"" More general ; {{{1 +let g:generalized_motion = "f" +function! Generalized_motion(...) + if a:0 > 0 + let g:generalized_motion=a:1 + echom "Generalized motion:" g:generalized_motion + if (g:generalized_motion == "f") | call feedkeys('f', 'n') | return | endif + if (g:generalized_motion == "t") | call feedkeys('t', 'n') | return | endif + endif + if (g:generalized_motion == "f") | call feedkeys(';', 'n') | endif + if (g:generalized_motion == "t") | call feedkeys(';', 'n') | endif + try + if (g:generalized_motion == "]q") | cnext | endif + if (g:generalized_motion == "[q") | cprevious | endif + if (g:generalized_motion == "]a") | next | endif + if (g:generalized_motion == "[a") | previous | endif + if (g:generalized_motion == "]b") | bnext | endif + if (g:generalized_motion == "[b") | bprevious | endif + catch + call feedkeys(';', 'n') + endtry +endfunction +for mapping in ['f', 't', ']q', '[q', ']a', '[a', ']f', '[f', ']b', '[b'] + exe "nmap " mapping ":call Generalized_motion('".mapping."')" +endfor +nnoremap ; :call Generalized_motion() -- cgit v1.2.3