Post

Fennel Neovim Configuration Information

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)
DescriptionNvim builtin
Left hand side&
Right hand side:&&<CR>
Description 
Left hand side-
Right hand side<Plug>VinegarUp
DescriptionNvim builtin
Left hand sideY
Right hand sidey$
Description 
Left hand side[%
Right hand side<Plug>(MatchitNormalMultiBackward)
Description 
Left hand side]%
Right hand side<Plug>(MatchitNormalMultiForward)
Description 
Left hand sidecS
Right hand side<Plug>CSurround
Description 
Left hand sidecs
Right hand side<Plug>Csurround
Description 
Left hand sideds
Right hand side<Plug>Dsurround
DescriptionComment insert end of line
Left hand sidegcA
Right hand side 
DescriptionComment insert above
Left hand sidegcO
Right hand side 
DescriptionComment insert below
Left hand sidegco
Right hand side 
DescriptionComment toggle current block
Left hand sidegbc
Right hand side 
DescriptionComment toggle current line
Left hand sidegcc
Right hand side 
DescriptionComment toggle blockwise
Left hand sidegb
Right hand side<Plug>(comment_toggle_blockwise)
DescriptionComment toggle linewise
Left hand sidegc
Right hand side<Plug>(comment_toggle_linewise)
Description 
Left hand sidegx
Right hand side<Plug>NetrwBrowseX
Description 
Left hand sideg%
Right hand side<Plug>(MatchitNormalBackward)
Description 
Left hand sideySS
Right hand side<Plug>YSsurround
Description 
Left hand sideySs
Right hand side<Plug>YSsurround
Description 
Left hand sideyss
Right hand side<Plug>Yssurround
Description 
Left hand sideyS
Right hand side<Plug>YSurround
Description 
Left hand sideys
Right hand side<Plug>Ysurround
Description 
Left hand sidey<C-G>
Right hand side:<C-U>call setreg(v:register, fugitive#Object(@%))<CR>
Description 
Left hand sidezb
Right hand side<Cmd>call smoothie#do("zb") <CR>
Description 
Left hand sidez-
Right hand side<Cmd>call smoothie#do("z-") <CR>
Description 
Left hand sidezz
Right hand side<Cmd>call smoothie#do("zz") <CR>
Description 
Left hand sidez.
Right hand side<Cmd>call smoothie#do("z.") <CR>
Description 
Left hand sidez<CR>
Right hand side<Cmd>call smoothie#do("z\<lt>CR>") <CR>
Description 
Left hand sidezt
Right hand side<Cmd>call smoothie#do("zt") <CR>
Description 
Left hand sidez^
Right hand side<Cmd>call smoothie#do("z^") <CR>
Description 
Left hand sidez+
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 sidei
DescriptionComment toggle blockwise with count
Left hand side<Plug>(comment_toggle_blockwise_count)
Right hand side 
DescriptionComment toggle linewise with count
Left hand side<Plug>(comment_toggle_linewise_count)
Right hand side 
DescriptionComment toggle current block
Left hand side<Plug>(comment_toggle_blockwise_current)
Right hand side 
DescriptionComment toggle current line
Left hand side<Plug>(comment_toggle_linewise_current)
Right hand side 
DescriptionComment toggle blockwise
Left hand side<Plug>(comment_toggle_blockwise)
Right hand side 
DescriptionComment 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>
DescriptionNvim 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 sideS
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 sidea%
Right hand side<Plug>(MatchitVisualTextObject)
Description 
Left hand sidegS
Right hand side<Plug>VgSurround
DescriptionComment toggle blockwise (visual)
Left hand sidegb
Right hand side<Plug>(comment_toggle_blockwise_visual)
DescriptionComment toggle linewise (visual)
Left hand sidegc
Right hand side<Plug>(comment_toggle_linewise_visual)
Description 
Left hand sidegx
Right hand side<Plug>NetrwBrowseXVis
Description 
Left hand sideg%
Right hand side<Plug>(MatchitVisualBackward)
Description 
Left hand sidezb
Right hand side<Cmd>call smoothie#do("zb") <CR>
Description 
Left hand sidez-
Right hand side<Cmd>call smoothie#do("z-") <CR>
Description 
Left hand sidezz
Right hand side<Cmd>call smoothie#do("zz") <CR>
Description 
Left hand sidez.
Right hand side<Cmd>call smoothie#do("z.") <CR>
Description 
Left hand sidez<CR>
Right hand side<Cmd>call smoothie#do("z\<lt>CR>") <CR>
Description 
Left hand sidezt
Right hand side<Cmd>call smoothie#do("zt") <CR>
Description 
Left hand sidez^
Right hand side<Cmd>call smoothie#do("z^") <CR>
Description 
Left hand sidez+
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>
DescriptionComment 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>
DescriptionComment 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 sideg%
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>