Vim“显示我最后的命令”命令?

有没有一个命令显示在正常模式下的最后一个命令?

假设我不小心打了随机键,并得到了一些意想不到的结果。 当然,我可以撤消它,但是我可以揭示什么键被按下,以及如何解释?

点击冒号(:),然后使用向上箭头开始返回前面的命令。 您也可以使用向上/向下箭头在列表中移动。

q:将在Vim中向您展示命令历史logging。 q/会显示你的search历史

来自最后命令的文本存储在. 寄存器。 你可以看到所有的寄存器:display 。 不幸的是,它并没有说什么开始正常的命令。

要查看命令:命令模式),可以使用:histq:限制在最后20(默认)。

另一个function是保存撤消缓冲区:wundo undo.bin – 但是撤消缓冲区是二进制的。

但是这些都不能回答你的问题。 我很好奇,如果可以做到的话。

这是很难知道的。 你可以玩变数:

 v:operator v:count (and v:prevcount) v:register 

但是你不能完全得到最后发出的正常模式命令。

但是如果你想在Vim中系统地logging你input的所有内容,你可以启动vim -W ~/.vim-last-scriptout (一个Windows版本: vim -W "%HOMEPATH%\Vim\.last-scriptout )每一个键或控制键都会被logging到这个文件中,注意如果你碰巧使用了gvim或者vim -g (GUI),你可能会遇到这个错误 。

如果你想重播这个文件,你可以使用:source! (带有感叹号)或命令行中的-s选项。

在Windows上,我在我的Commander程序(FreeCommander)中设置了gvimportable.exe -W gvim_directory\last_scriptout作为我的默认编辑器。 这样我就可以永远记住我input的内容,然后在另一个文件上重复一系列命令。 当然,我还有另一个打开Vim和播放剧本的捷径。

请注意,这个文件只有在Vim退出的时候才能写出来,所以你必须丢掉会话才能知道你做了什么。