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

时间:2012-01-19 14:50:12

标签: vim vi

是否有一个命令显示正常模式下的最后一个命令是什么?

假设我意外地点击了随机密钥并得到了一些意想不到的结果。 当然我可以撤消它,但我可以透露按键是什么以及如何解释它?

5 个答案:

答案 0 :(得分:57)

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

答案 1 :(得分:41)

q:将在Vim中显示命令历史记录。 q/会向您显示搜索记录

答案 2 :(得分:11)

最后一个命令的文本存储在.寄存器中。您可以通过:display 查看所有寄存器。不幸的是,它没有说明正常命令的启动。

要查看来自:(命令模式)的命令,您可以使用:hist q:,它仅限于最后20个(默认情况下)。

另一种能力是保存撤消缓冲区:wundo undo.bin - 但是撤消缓冲区是二进制的。

但这些都没有真正回答你的问题。我很好奇是否可以做到。

答案 3 :(得分:6)

很难知道。您可以使用变量:

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

但是你无法完全获得最后发出的普通模式命令。

但是,如果要系统地记录在Vim中键入的所有内容,可以启动vim -W ~/.vim-last-scriptout(Windows版本:vim -W "%HOMEPATH%\Vim\.last-scriptout)您可以在UNIX计算机上的shell中对其进行别名。每个键或控制键都将记录到该文件中。请注意,如果您碰巧使用gvimvim -g(GUI),可能会encounter this bug

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

在Windows上我已将gvimportable.exe -W gvim_directory\last_scriptout设置为我的Commander程序(FreeCommander)中的默认编辑器。通过这种方式,我可以永远记住我输入的内容并在另一个文件上重复执行一系列命令。当然我还有另一个打开Vim和播放脚本的快捷方式。

请注意,该文件可能仅在Vim退出时写入,因此您必须丢失会话以了解您已完成的操作。

答案 4 :(得分:2)

输入冒号:,然后输入ctrl+p,将显示您先前的命令,即在vim命令历史记录中向后移动。 ctrl+n向前移动。

如果您习惯于使用命令行并且不想更改键盘手的位置以使用箭头键,这将非常方便。