有没有一条命令可以显示普通模式下最后执行的命令是什么?
假设我不小心按了某个键,并得到了一些意外的结果。 我可以撤消它,但是我能否揭示按下了哪个键以及它如何被解释?
按下冒号 (:
) 并使用向上箭头开始浏览之前的命令。您也可以使用上/下箭头在列表中移动。
:set history=100
,然后我就能使用向上箭头查看以前的命令了。 - Jimq:
会显示Vim中的命令历史记录。
q/
会显示搜索历史记录。
而最重要的是,:q
可以退出模式。
:q
的相反。否则我不会知道它的存在而去寻找它。 - felwithe:q
可以让你退出那个模式。我知道,这非常不直观,我们很可能永远不会尝试,因为我们习惯于使用 :q
退出编辑器本身,而且并不明显这个模式实际上是 vim 中的一个单独窗口/分屏,它将拦截下一个 :q
。 - mtraceur最近的命令文本被存储在.
寄存器中。你可以通过:display查看所有寄存器。不幸的是,它没有显示正常命令的启动方式。
要查看来自:
(命令模式)的命令,您可以使用:hist或q:,默认只显示最后20个命令。
另一个功能是保存撤销缓冲区:wundo undo.bin--但是撤销缓冲区是二进制的。
但这些都没有真正回答你的问题。我很好奇是否可以做到。
I,A,i,a,s,S,c,C
之后)。 - Benoit输入冒号:
然后再按ctrl+p
可以显示你之前的命令,即通过vim命令历史向后移动。使用ctrl+n
则可以向前移动。
如果你习惯于使用命令行且不想改变键盘手位以使用箭头键,则此功能非常方便。
这很难理解。你可以尝试调整变量来实验:
v:operator
v:count (and v:prevcount)
v:register
但是,您无法完全获取发出的最后一个正常模式命令。
然而,如果您想在Vim中系统记录您输入的所有内容,可以启动vim -W ~/.vim-last-scriptout
(Windows版本:vim -W "%HOMEPATH%\Vim\.last-scriptout
)。您可以在UNIX机器上为其设置别名。每个按键或控制键都将记录在该文件中。请注意,如果您使用gvim
或vim -g
(GUI),您可能会遇到此错误。
如果您想重新运行此文件,可以使用:source!
(带有感叹号)或从命令行使用-s
选项。
在Windows上,我已将gvimportable.exe -W gvim_directory\last_scriptout
设置为我的Commander程序(FreeCommander)中的默认编辑器。这样,我就可以始终记住自己输入的内容并重复执行一系列命令。当然,我还有另一个快捷方式来打开Vim并播放脚本。
请注意,该文件可能仅在Vim退出时编写,因此您必须丢失会话才能知道自己做了什么。
:echo v:count . v:operator
。 - sehe