【发布时间】:2011-03-16 19:24:51
【问题描述】:
我在 VIM 中创建了许多菜单命令。
. 在正常模式下重复最后一个命令。@: 从命令行重复最后一个命令
有没有办法重复从 vim 的 menu 调用的最后一个命令?
更新:
示例菜单命令:
an 98.80.00 &MyMenu.Test\ :call <SID>Test("%")<CR>
如果我使用自己创建的这个菜单命令,我怎样才能再次重复它(重复上次使用的菜单命令)?
在上述情况下,它将是 :call <SID>Test("%")<CR>
我在命令行历史记录中找不到这些命令。@: 和 :<UP> 不起作用
有人知道 Vim 在哪里保存函数调用/菜单命令动作吗?
更新2
Kent 提议围绕上述命令构建一个函数:
an 98.80.00 &MyMenu.Test\ :call SubExe('call <SID>Test("%")')<CR>
function! SubExe(argument)
let g:lastcommand = a:argument
exe g:lastcommand
endfun
似乎可以,缺点是我必须更改所有当前命令;)
【问题讨论】:
-
我一直认为如果我可以重复一组命令,而不仅仅是最后一个命令,那就太好了。答案显然是使用宏(qa
q 然后@a 重复),但我一直在寻找更简单、更快的东西。不能用宏吗? -
是的,但如果我没记错的话,您必须为需要重复的每个菜单命令创建一个宏。
-
是的,这是写的,但我想你不会经常需要那个,是吗?否则,只需将一个键映射到菜单命令,然后按住该键。