我在VIM中创建了许多菜单命令。
.在正常模式下重复最后一个命令。
@:重复命令行中的最后一个命令
有没有办法重复从vim的菜单调用的最后一个命令?
更新:
示例菜单命令:
an 98.80.00 &MyMenu.Test\ :call <SID>Test("%")<CR>如果我使用我自己创建的菜单命令,如何再次重复它(重复上次使用的菜单命令)?
在上述情况下,它将是:call <SID>Test("%")<CR>
我在命令行历史记录中找不到这些命令。
@:和:<UP>不工作
有人知道Vim在哪里保存函数调用/菜单命令操作吗?
Update2
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它似乎有效,缺点是我必须更改当前的所有命令;)
发布于 2014-08-11 11:20:31
如果没有内置的支持,你必须自己构建一个,如果它对你如此重要的话。基本思想是:
创建一个像ExecMenuCmd(cmd)这样的函数--参数是命令,就像wq一样,在函数中,将命令保存到变量中,然后执行它。
然后,通过读取变量并执行,您可以创建映射到“重复”最后一个菜单cmd。
创建菜单项时,可以执行以下操作:
:menu File.SaveAndExit :call ExecMenuCmd('wq')如果您愿意,您可以维护一个堆栈来存储菜单触发的命令,以实现更多功能。
发布于 2011-03-26 22:46:01
您可以在.vimrc中进行映射,以进入命令模式,然后运行最后一个命令。类似于:
noremap <F8> :<Up><Cr>这将重复在正常模式下按F8时从命令模式运行的最后一件事情。您可以将F8更改为任何您想要的。
https://stackoverflow.com/questions/5330658
复制相似问题