An opinionated configuration reminiscent of Doom-Emacs, written in Fennel
- Install and initialize:
lazyman -x Fennel - Configuration category: Starter
- Base configuration: Custom
- Plugin manager: Packer
- Installation location:
~/.config/nvim-Fennel
Git repository
https://github.com/jhchabran/nvim-config
Packer managed plugins
Fennel Keymaps
Normal mode keymaps
| Description | |
|---|
| Left hand side | * |
| Right hand side | :execute 'noautocmd vimgrep /\V' . substitute(escape(expand("<lt>cword>"), '\'), '\n', '\\n', 'g') . '/ **'<CR> |
| Description | |
|---|
| Left hand side | gy |
| Right hand side | <Cmd>lua require'gitlinker'.get_buf_range_url('n')<CR> |
| Description | |
|---|
| Left hand side | % |
| Right hand side | <Plug>(MatchitNormalForward) |
| Description | Nvim builtin |
|---|
| Left hand side | & |
| Right hand side | :&&<CR> |
| Description | |
|---|
| Left hand side | - |
| Right hand side | <Plug>VinegarUp |
| Description | Nvim builtin |
|---|
| Left hand side | Y |
| Right hand side | y$ |
| Description | |
|---|
| Left hand side | [% |
| Right hand side | <Plug>(MatchitNormalMultiBackward) |
| Description | |
|---|
| Left hand side | ]% |
| Right hand side | <Plug>(MatchitNormalMultiForward) |
| Description | |
|---|
| Left hand side | cS |
| Right hand side | <Plug>CSurround |
| Description | |
|---|
| Left hand side | cs |
| Right hand side | <Plug>Csurround |
| Description | |
|---|
| Left hand side | ds |
| Right hand side | <Plug>Dsurround |
| Description | Comment insert end of line |
|---|
| Left hand side | gcA |
| Right hand side | |
| Description | Comment insert above |
|---|
| Left hand side | gcO |
| Right hand side | |
| Description | Comment insert below |
|---|
| Left hand side | gco |
| Right hand side | |
| Description | Comment toggle current block |
|---|
| Left hand side | gbc |
| Right hand side | |
| Description | Comment toggle current line |
|---|
| Left hand side | gcc |
| Right hand side | |
| Description | Comment toggle blockwise |
|---|
| Left hand side | gb |
| Right hand side | <Plug>(comment_toggle_blockwise) |
| Description | Comment toggle linewise |
|---|
| Left hand side | gc |
| Right hand side | <Plug>(comment_toggle_linewise) |
| Description | |
|---|
| Left hand side | gx |
| Right hand side | <Plug>NetrwBrowseX |
| Description | |
|---|
| Left hand side | g% |
| Right hand side | <Plug>(MatchitNormalBackward) |
| Description | |
|---|
| Left hand side | ySS |
| Right hand side | <Plug>YSsurround |
| Description | |
|---|
| Left hand side | ySs |
| Right hand side | <Plug>YSsurround |
| Description | |
|---|
| Left hand side | yss |
| Right hand side | <Plug>Yssurround |
| Description | |
|---|
| Left hand side | yS |
| Right hand side | <Plug>YSurround |
| Description | |
|---|
| Left hand side | ys |
| Right hand side | <Plug>Ysurround |
| Description | |
|---|
| Left hand side | y<C-G> |
| Right hand side | :<C-U>call setreg(v:register, fugitive#Object(@%))<CR> |
| Description | |
|---|
| Left hand side | zb |
| Right hand side | <Cmd>call smoothie#do("zb") <CR> |
| Description | |
|---|
| Left hand side | z- |
| Right hand side | <Cmd>call smoothie#do("z-") <CR> |
| Description | |
|---|
| Left hand side | zz |
| Right hand side | <Cmd>call smoothie#do("zz") <CR> |
| Description | |
|---|
| Left hand side | z. |
| Right hand side | <Cmd>call smoothie#do("z.") <CR> |
| Description | |
|---|
| Left hand side | z<CR> |
| Right hand side | <Cmd>call smoothie#do("z\<lt>CR>") <CR> |
| Description | |
|---|
| Left hand side | zt |
| Right hand side | <Cmd>call smoothie#do("zt") <CR> |
| Description | |
|---|
| Left hand side | z^ |
| Right hand side | <Cmd>call smoothie#do("z^") <CR> |
| Description | |
|---|
| Left hand side | z+ |
| Right hand side | <Cmd>call smoothie#do("z+") <CR> |
| Description | |
|---|
| Left hand side | <Plug>(vsnip-cut-text) |
| Right hand side | :set operatorfunc=<SNR>60_vsnip_cut_text_normal<CR>g@ |
| Description | |
|---|
| Left hand side | <Plug>(vsnip-select-text) |
| Right hand side | :set operatorfunc=<SNR>60_vsnip_select_text_normal<CR>g@ |
| Description | |
|---|
| Left hand side | <Plug>VinegarVerticalSplitUp |
| Right hand side | :call <SNR>58_opendir('vsplit')<CR> |
| Description | |
|---|
| Left hand side | <Plug>VinegarSplitUp |
| Right hand side | :call <SNR>58_opendir('split')<CR> |
| Description | |
|---|
| Left hand side | <Plug>VinegarTabUp |
| Right hand side | :call <SNR>58_opendir('tabedit')<CR> |
| Description | |
|---|
| Left hand side | <Plug>VinegarUp |
| Right hand side | :call <SNR>58_opendir('edit')<CR> |
| Description | |
|---|
| Left hand side | <Plug>YSurround |
| Right hand side | <SNR>55_opfunc2('setup') |
| Description | |
|---|
| Left hand side | <Plug>Ysurround |
| Right hand side | <SNR>55_opfunc('setup') |
| Description | |
|---|
| Left hand side | <Plug>YSsurround |
| Right hand side | <SNR>55_opfunc2('setup').'_' |
| Description | |
|---|
| Left hand side | <Plug>Yssurround |
| Right hand side | '^'.v:count1.<SNR>55_opfunc('setup').'g_' |
| Description | |
|---|
| Left hand side | <Plug>CSurround |
| Right hand side | :<C-U>call <SNR>55_changesurround(1)<CR> |
| Description | |
|---|
| Left hand side | <Plug>Csurround |
| Right hand side | :<C-U>call <SNR>55_changesurround()<CR> |
| Description | |
|---|
| Left hand side | <Plug>Dsurround |
| Right hand side | :<C-U>call <SNR>55_dosurround(<SNR>55_inputtarget())<CR> |
| Description | |
|---|
| Left hand side | <Plug>SurroundRepeat |
| Right hand side | . |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieBackwards) |
| Right hand side | <Cmd>call smoothie#backwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieForwards) |
| Right hand side | <Cmd>call smoothie#forwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieUpwards) |
| Right hand side | <Cmd>call smoothie#upwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieDownwards) |
| Right hand side | <Cmd>call smoothie#downwards() <CR> |
| Description | |
|---|
| Left hand side | <PageUp> |
| Right hand side | <Cmd>call smoothie#do("\<lt>PageUp>") <CR> |
| Description | |
|---|
| Left hand side | <S-Up> |
| Right hand side | <Cmd>call smoothie#do("\<lt>S-Up>") <CR> |
| Description | |
|---|
| Left hand side | <C-B> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-B>") <CR> |
| Description | |
|---|
| Left hand side | <PageDown> |
| Right hand side | <Cmd>call smoothie#do("\<lt>PageDown>") <CR> |
| Description | |
|---|
| Left hand side | <S-Down> |
| Right hand side | <Cmd>call smoothie#do("\<lt>S-Down>") <CR> |
| Description | |
|---|
| Left hand side | <C-F> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-F>") <CR> |
| Description | |
|---|
| Left hand side | <C-U> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-U>") <CR> |
| Description | |
|---|
| Left hand side | <C-D> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-D>") <CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_qf_switch) |
| Right hand side | &filetype ==# 'qf' ? '<C-W>p' : '<C-W>b' |
| Description | |
|---|
| Left hand side | <Plug>(qf_loc_toggle_stay) |
| Right hand side | :<C-U> call qf#toggle#ToggleLocWindow(1)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_loc_toggle) |
| Right hand side | :<C-U> call qf#toggle#ToggleLocWindow(0)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_qf_toggle_stay) |
| Right hand side | :<C-U> call qf#toggle#ToggleQfWindow(1)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_qf_toggle) |
| Right hand side | :<C-U> call qf#toggle#ToggleQfWindow(0)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_loc_next) |
| Right hand side | :<C-U> call qf#wrap#WrapCommand('down', 'l')<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_loc_previous) |
| Right hand side | :<C-U> call qf#wrap#WrapCommand('up', 'l')<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_qf_next) |
| Right hand side | :<C-U> call qf#wrap#WrapCommand('down', 'c')<CR> |
| Description | |
|---|
| Left hand side | <Plug>(qf_qf_previous) |
| Right hand side | :<C-U> call qf#wrap#WrapCommand('up', 'c')<CR> |
| Description | |
|---|
| Left hand side | <Plug>QfSwitch |
| Right hand side | &filetype ==# 'qf' ? '<C-W>p' : '<C-W>b' |
| Description | |
|---|
| Left hand side | <Plug>QfLtoggle |
| Right hand side | <Plug>(qf_loc_toggle) |
| Description | |
|---|
| Left hand side | <Plug>QfCtoggle |
| Right hand side | <Plug>(qf_qf_toggle) |
| Description | |
|---|
| Left hand side | <Plug>QfLnext |
| Right hand side | <Plug>(qf_loc_next) |
| Description | |
|---|
| Left hand side | <Plug>QfLprevious |
| Right hand side | <Plug>(qf_loc_previous) |
| Description | |
|---|
| Left hand side | <Plug>QfCnext |
| Right hand side | <Plug>(qf_qf_next) |
| Description | |
|---|
| Left hand side | <Plug>QfCprevious |
| Right hand side | <Plug>(qf_qf_previous) |
| Description | |
|---|
| Left hand side | <Plug>fugitive: |
| Right hand side | |
| Description | |
|---|
| Left hand side | <Plug>fugitive:y<C-G> |
| Right hand side | :<C-U>call setreg(v:register, fugitive#Object(@%))<CR> |
| Description | |
|---|
| Left hand side | <Plug>(EasyAlignOperator) |
| Right hand side | :set opfunc=<SNR>51_easy_align_op<CR>g@ |
| Description | |
|---|
| Left hand side | <Plug>(EasyAlignRepeat) |
| Right hand side | :call <SNR>51_easy_align_repeat()<CR> |
| Description | |
|---|
| Left hand side | <Plug>(LiveEasyAlign) |
| Right hand side | :set opfunc=<SNR>51_live_easy_align_op<CR>g@ |
| Description | |
|---|
| Left hand side | <Plug>(EasyAlign) |
| Right hand side | :set opfunc=<SNR>51_easy_align_op<CR>g@ |
| Description | |
|---|
| Left hand side | <Plug>PlenaryTestFile |
| Right hand side | :lua require('plenary.test_harness').test_directory(vim.fn.expand("%:p"))<CR> |
| Description | |
|---|
| Left hand side | <Plug>(fzf-maps-n) |
| Right hand side | :<C-U>call fzf#vim#maps('n', 0)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(fzf-normal) |
| Right hand side | |
| Description | |
|---|
| Left hand side | <Plug>(fzf-insert) |
| Right hand side | i |
| Description | Comment toggle blockwise with count |
|---|
| Left hand side | <Plug>(comment_toggle_blockwise_count) |
| Right hand side | |
| Description | Comment toggle linewise with count |
|---|
| Left hand side | <Plug>(comment_toggle_linewise_count) |
| Right hand side | |
| Description | Comment toggle current block |
|---|
| Left hand side | <Plug>(comment_toggle_blockwise_current) |
| Right hand side | |
| Description | Comment toggle current line |
|---|
| Left hand side | <Plug>(comment_toggle_linewise_current) |
| Right hand side | |
| Description | Comment toggle blockwise |
|---|
| Left hand side | <Plug>(comment_toggle_blockwise) |
| Right hand side | |
| Description | Comment toggle linewise |
|---|
| Left hand side | <Plug>(comment_toggle_linewise) |
| Right hand side | |
| Description | |
|---|
| Left hand side | <Plug>NetrwBrowseX |
| Right hand side | :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitNormalMultiForward) |
| Right hand side | :<C-U>call matchit#MultiMatch("W", "n")<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitNormalMultiBackward) |
| Right hand side | :<C-U>call matchit#MultiMatch("bW", "n")<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitNormalBackward) |
| Right hand side | :<C-U>call matchit#Match_wrapper('',0,'n')<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitNormalForward) |
| Right hand side | :<C-U>call matchit#Match_wrapper('',1,'n')<CR> |
| Description | |
|---|
| Left hand side | <Plug>(hotpot-operator-eval) |
| Right hand side | :lua require("hotpot.api.command")["eval-operator-bang"]()<CR> |
| Description | Nvim builtin |
|---|
| Left hand side | <C-L> |
| Right hand side | <Cmd>nohlsearch|diffupdate|normal! <C-L><CR> |
Visual mode keymaps
| Description | |
|---|
| Left hand side | * |
| Right hand side | :<C-U>call VisualStarSearchSet('/')<CR>:execute 'noautocmd vimgrep /' . @/ . '/ **'<CR> |
| Description | |
|---|
| Left hand side | gy |
| Right hand side | <Cmd>lua require'gitlinker'.get_buf_range_url('v')<CR> |
| Description | |
|---|
| Left hand side | # |
| Right hand side | :<C-U>call VisualStarSearchSet('?')<CR>?<C-R>=@/<CR><CR> |
| Description | |
|---|
| Left hand side | % |
| Right hand side | <Plug>(MatchitVisualForward) |
| Description | |
|---|
| Left hand side | * |
| Right hand side | :<C-U>call VisualStarSearchSet('/')<CR>/<C-R>=@/<CR><CR> |
| Description | |
|---|
| Left hand side | <lt> |
| Right hand side | <lt>gv |
| Description | |
|---|
| Left hand side | > |
| Right hand side | >gv |
| Description | |
|---|
| Left hand side | S |
| Right hand side | <Plug>VSurround |
| Description | |
|---|
| Left hand side | [% |
| Right hand side | <Plug>(MatchitVisualMultiBackward) |
| Description | |
|---|
| Left hand side | ]% |
| Right hand side | <Plug>(MatchitVisualMultiForward) |
| Description | |
|---|
| Left hand side | a% |
| Right hand side | <Plug>(MatchitVisualTextObject) |
| Description | |
|---|
| Left hand side | gS |
| Right hand side | <Plug>VgSurround |
| Description | Comment toggle blockwise (visual) |
|---|
| Left hand side | gb |
| Right hand side | <Plug>(comment_toggle_blockwise_visual) |
| Description | Comment toggle linewise (visual) |
|---|
| Left hand side | gc |
| Right hand side | <Plug>(comment_toggle_linewise_visual) |
| Description | |
|---|
| Left hand side | gx |
| Right hand side | <Plug>NetrwBrowseXVis |
| Description | |
|---|
| Left hand side | g% |
| Right hand side | <Plug>(MatchitVisualBackward) |
| Description | |
|---|
| Left hand side | zb |
| Right hand side | <Cmd>call smoothie#do("zb") <CR> |
| Description | |
|---|
| Left hand side | z- |
| Right hand side | <Cmd>call smoothie#do("z-") <CR> |
| Description | |
|---|
| Left hand side | zz |
| Right hand side | <Cmd>call smoothie#do("zz") <CR> |
| Description | |
|---|
| Left hand side | z. |
| Right hand side | <Cmd>call smoothie#do("z.") <CR> |
| Description | |
|---|
| Left hand side | z<CR> |
| Right hand side | <Cmd>call smoothie#do("z\<lt>CR>") <CR> |
| Description | |
|---|
| Left hand side | zt |
| Right hand side | <Cmd>call smoothie#do("zt") <CR> |
| Description | |
|---|
| Left hand side | z^ |
| Right hand side | <Cmd>call smoothie#do("z^") <CR> |
| Description | |
|---|
| Left hand side | z+ |
| Right hand side | <Cmd>call smoothie#do("z+") <CR> |
| Description | |
|---|
| Left hand side | <Plug>(vsnip-cut-text) |
| Right hand side | :<C-U>call <SNR>60_vsnip_visual_text(visualmode())<CR>gv"_c |
| Description | |
|---|
| Left hand side | <Plug>(vsnip-select-text) |
| Right hand side | :<C-U>call <SNR>60_vsnip_visual_text(visualmode())<CR>gv |
| Description | |
|---|
| Left hand side | <Plug>VgSurround |
| Right hand side | :<C-U>call <SNR>55_opfunc(visualmode(),visualmode() ==# 'V' ? 0 : 1)<CR> |
| Description | |
|---|
| Left hand side | <Plug>VSurround |
| Right hand side | :<C-U>call <SNR>55_opfunc(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieBackwards) |
| Right hand side | <Cmd>call smoothie#backwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieForwards) |
| Right hand side | <Cmd>call smoothie#forwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieUpwards) |
| Right hand side | <Cmd>call smoothie#upwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieDownwards) |
| Right hand side | <Cmd>call smoothie#downwards() <CR> |
| Description | |
|---|
| Left hand side | <PageUp> |
| Right hand side | <Cmd>call smoothie#do("\<lt>PageUp>") <CR> |
| Description | |
|---|
| Left hand side | <S-Up> |
| Right hand side | <Cmd>call smoothie#do("\<lt>S-Up>") <CR> |
| Description | |
|---|
| Left hand side | <C-B> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-B>") <CR> |
| Description | |
|---|
| Left hand side | <PageDown> |
| Right hand side | <Cmd>call smoothie#do("\<lt>PageDown>") <CR> |
| Description | |
|---|
| Left hand side | <S-Down> |
| Right hand side | <Cmd>call smoothie#do("\<lt>S-Down>") <CR> |
| Description | |
|---|
| Left hand side | <C-F> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-F>") <CR> |
| Description | |
|---|
| Left hand side | <C-U> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-U>") <CR> |
| Description | |
|---|
| Left hand side | <C-D> |
| Right hand side | <Cmd>call smoothie#do("\<lt>C-D>") <CR> |
| Description | |
|---|
| Left hand side | <Plug>(EasyAlignRepeat) |
| Right hand side | :<C-U>call <SNR>51_repeat_in_visual()<CR> |
| Description | |
|---|
| Left hand side | <Plug>(LiveEasyAlign) |
| Right hand side | :<C-U>call <SNR>51_live_easy_align_op(visualmode(), 1)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(EasyAlign) |
| Right hand side | :<C-U>call <SNR>51_easy_align_op(visualmode(), 1)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(fzf-maps-x) |
| Right hand side | :<C-U>call fzf#vim#maps('x', 0)<CR> |
| Description | Comment toggle blockwise (visual) |
|---|
| Left hand side | <Plug>(comment_toggle_blockwise_visual) |
| Right hand side | <Esc><Cmd>lua require("Comment.api").locked("toggle.blockwise")(vim.fn.visualmode())<CR> |
| Description | Comment toggle linewise (visual) |
|---|
| Left hand side | <Plug>(comment_toggle_linewise_visual) |
| Right hand side | <Esc><Cmd>lua require("Comment.api").locked("toggle.linewise")(vim.fn.visualmode())<CR> |
| Description | |
|---|
| Left hand side | <Plug>NetrwBrowseXVis |
| Right hand side | :<C-U>call netrw#BrowseXVis()<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitVisualTextObject) |
| Right hand side | <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward) |
| Description | |
|---|
| Left hand side | <Plug>(MatchitVisualMultiForward) |
| Right hand side | :<C-U>call matchit#MultiMatch("W", "n")<CR>m'gv`` |
| Description | |
|---|
| Left hand side | <Plug>(MatchitVisualMultiBackward) |
| Right hand side | :<C-U>call matchit#MultiMatch("bW", "n")<CR>m'gv`` |
| Description | |
|---|
| Left hand side | <Plug>(MatchitVisualBackward) |
| Right hand side | :<C-U>call matchit#Match_wrapper('',0,'v')<CR>m'gv`` |
| Description | |
|---|
| Left hand side | <Plug>(MatchitVisualForward) |
| Right hand side | :<C-U>call matchit#Match_wrapper('',1,'v')<CR>:if col("''") != col("$") | exe ":normal! m'" | endif<CR>gv`` |
Operator mode keymaps
| Description | |
|---|
| Left hand side | % |
| Right hand side | <Plug>(MatchitOperationForward) |
| Description | |
|---|
| Left hand side | [% |
| Right hand side | <Plug>(MatchitOperationMultiBackward) |
| Description | |
|---|
| Left hand side | ]% |
| Right hand side | <Plug>(MatchitOperationMultiForward) |
| Description | |
|---|
| Left hand side | g% |
| Right hand side | <Plug>(MatchitOperationBackward) |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieBackwards) |
| Right hand side | <Cmd>call smoothie#backwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieForwards) |
| Right hand side | <Cmd>call smoothie#forwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieUpwards) |
| Right hand side | <Cmd>call smoothie#upwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(SmoothieDownwards) |
| Right hand side | <Cmd>call smoothie#downwards() <CR> |
| Description | |
|---|
| Left hand side | <Plug>(fzf-maps-o) |
| Right hand side | <C-C>:<C-U>call fzf#vim#maps('o', 0)<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitOperationMultiForward) |
| Right hand side | :<C-U>call matchit#MultiMatch("W", "o")<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitOperationMultiBackward) |
| Right hand side | :<C-U>call matchit#MultiMatch("bW", "o")<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitOperationBackward) |
| Right hand side | :<C-U>call matchit#Match_wrapper('',0,'o')<CR> |
| Description | |
|---|
| Left hand side | <Plug>(MatchitOperationForward) |
| Right hand side | :<C-U>call matchit#Match_wrapper('',1,'o')<CR> |