我可以从Vim脚本功能中检测Vim宏录制模式,并在Vim宏录制模式下调用此功能吗?

时间:2013-10-27 11:43:25

标签: macros vim

我想制作一个自定义单键Vim映射,可用于开始将宏记录到未命名的寄存器(q")并停止记录宏(q)。

如果Vim处于录制模式,我可以从Vim脚本中检测到吗?

如果可以检测录制模式,如果在录制模式下唤醒我的功能(停止录制)会有问题吗?我的意思是,是否可以将函数调用记录在宏内?

2 个答案:

答案 0 :(得分:1)

嗯,我不推荐这个,因为开始录音只有两个 按键,您可以灵活选择寄存器。

那就是说,你可以做到这一点。我不知道直接的方法 检测录制模式,但您可以创建将重新映射的映射 本身在每个按键上,因此在启动和停止之间交替 记录:

" Helper mappings
nnoremap @{ :nmap ; @}<CR>qq
nnoremap @} q:nmap ; @{<CR>

" Toggle recording
nmap ; @{

" Playback
nnoremap , @q

选择您自己的地图键,最适合您。

另外,我建议不要将"用于录音寄存器:它也是 容易被覆盖。

答案 1 :(得分:0)

您可以使用映射到q"<esc>。假设您只在正常模式下开始录制(并且未设置insertmode),这将完全符合您的要求。