(Neo)Vim录制宏时实时显示宏内容的实现方法
在Vim/NeoVim录制宏时实时显示内容
原生配置就能搞定
不用装插件,直接改配置文件就能实现需求:
Vimscript 版本(适用于Vim、用Vimscript配置的NeoVim)
把下面这段代码加到~/.vimrc(Vim)或~/.config/nvim/init.vim(NeoVim)里:
" 状态栏实时显示录制中的宏内容 set statusline+=%{reg_recording()?'['.reg_recording().':'.@'.']':''} " 可选:给录制内容加高亮,更醒目 hi RecordingStatus guifg=white guibg=red ctermfg=white ctermbg=red set statusline+=%{reg_recording()?'%#RecordingStatus#['.reg_recording().':'.@'.']%*':''}
保存后重启编辑器,再按q开始录制宏,状态栏就会实时显示当前使用的寄存器(比如a)和你按下的所有按键,像你例子里的iNowImRecording^[dip会完整展示出来。
Lua 版本(适用于用Lua配置的NeoVim)
如果你的NeoVim用Lua写配置,把这段代码加到~/.config/nvim/init.lua里:
-- 状态栏实时显示录制中的宏内容 vim.o.statusline = vim.o.statusline .. '%{reg_recording()?"["..reg_recording()..":"..@".".."]":""}' -- 可选:添加高亮样式 vim.api.nvim_set_hl(0, 'RecordingStatus', { fg = 'white', bg = 'red' }) vim.o.statusline = vim.o.statusline .. '%{reg_recording()?"%#RecordingStatus#["..reg_recording()..":"..@".".."]%*":""}'
用插件更省心
要是嫌自己写配置麻烦,还想要额外功能(比如录制暂停、宏管理),可以用vim-recorder插件。安装完成后,它默认就会在状态栏实时显示录制的宏内容,还支持快速回放、编辑已录制的宏,上手门槛更低。
内容的提问来源于stack exchange,提问作者beyarkay
相关产品推荐
相关产品推荐

