VIM模拟Emacs的键盘宏记录

Emacs的按键宏记录是这样的:

按下F3:开始记录,如果正在记录则记录下一个宏。

按下F4:如果正在记录则停止,否则播放最后一个记录。

 

而VIM的按键宏记录则是:

开始记录:q<register>

停止记录:q

播放记录:@<register>

播放最后一个记录:@@

 

我最近最近在使用VIM时想要Emacs的按键宏记录,而且平时也就常用一个记录就够了,可以使用VIM脚本来模拟,代码如下:

let g:isrecording=0 nnoremap <F3> :call RecordMacro() <CR> nnoremap <F4> :call StopOrPlayMacro() <CR> function RecordMacro() let g:isrecording=1 :exec "normal qa" endfunction function StopOrPlayMacro() if(g:isrecording==1) "Stop recording let g:isrecording=0 :exec "normal q" let @a = strpart(@a, 0, strlen(@a) - 3) else "Play recorded macro :exec "normal @a" endif endfunction  

你可能感兴趣的:(脚本,vim,emacs)