How to display commands that you type in Normal mode in statusbar#
As a novice in vim I would like to visually see which command I’m typing when I use VIM.
It appears not so straightforward in SpaceVIM as it already have pretty much magic around configuration.
When I wrote this documentation I used spacevim version 2.1.0 and neovim version 0.9.
Simple and ugly way#
to ~/.SpaceVim.d/init.toml add:
[options]
...
bootstrap_after = "myspacevim#after"to ~/.SpaceVim.d/autoload/myspacevim.vim add:
function! myspacevim#after() abort
set showcmd
endfunctionNow you will have 1 extra line where you can see commands that you type.
Unfortunately commands will be displayed in the right.
It can be quite inconvenient for some of the users.
Complex and more nice way#
So I started to think how can I integrate those into SpaceVIM statusline.
Spacevim use heavily tuned vim-airline.
So after some reading, experiments and thoughtful (who I’m trying to fool) conversation with ChatGPT I got the folling code:
to ~/.SpaceVim.d/init.toml add:
[options]
...
statusline_left = [
'winnr',
'filename',
'major mode',
'minor mode lighters',
'version control info',
'search status',
'showcmd'
]
bootstrap_after = "myspacevim#after"to ~/.SpaceVim.d/autoload/myspacevim.vim add:
function! myspacevim#after() abort
set showcmd
set showcmdloc=statusline
function! s:showcmd_section() abort
return ' %S '
endfunction
call SpaceVim#layers#core#statusline#register_sections('showcmd', function('s:showcmd_section'))
endfunctionI should note that according to NeoVIM changelog at: https://github.com/neovim/neovim/blob/040f1459849ab05b04f6bb1e77b3def16b4c2f2b/runtime/doc/news.txt that %S is supported from version 0.9 - so if you use neovim - be sure to upgrade to at least version 0.9.
References#
- NeoVim changelog: https://github.com/neovim/neovim/blob/040f1459849ab05b04f6bb1e77b3def16b4c2f2b/runtime/doc/news.txt
- NeoVim documentation: Options: https://neovim.io/doc/user/options.html
- SpaceVim docs: core#statusline layer: https://spacevim.org/layers/core/statusline/
- SpaceVim docs: statusline: https://spacevim.org/documentation/#statusline
- SpaceVim docs: bootstrap functions: https://spacevim.org/documentation/#bootstrap-functions
- statusline.vim: https://github.com/SpaceVim/SpaceVim/blob/master/autoload/SpaceVim/layers/core/statusline.vim
- vim-airline: https://github.com/vim-airline/vim-airline
- vim-airline FAQ: https://github.com/vim-airline/vim-airline/wiki/FAQ
