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

dvs*_*dvs 53 vi vim

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

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

小智 63

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

  • (:) 和向上/向下箭头显示命令历史记录,(/) 向上/向下箭头显示搜索模式历史记录。我发现这非常有用。 (4认同)
  • 由于某种原因,这对我不起作用.原来历史被设置为0.解决方案是运行`:set history = 100`然后我能够使用向上箭头查看以前的命令. (2认同)

Sus*_*hil 46

q:将在Vim中显示命令历史记录. q/将显示搜索历史

  • 所以_that_为什么这个功能会不时随机弹出.(它与`:q`相反).我不会知道它存在去寻找它否则. (10认同)
  • 我*总是*陷入这种模式。你如何摆脱它?Esc 不起作用,这真的让我感到困惑。 (4认同)
  • 我的天啊.这困扰了我很久.我无法弄清楚实际的命令是什么(`:w <tab>`,`:q <tab>`等)所以我不知道谷歌的用途.哈哈.谢谢! (3认同)
  • @ devios1`:q`将完全模式 (2认同)

Run*_*olt 11

最后一个命令的文本存储在.寄存器中.你可以看到所有的寄存器:display.不幸的是,它没有说出正常命令启动了什么.

要查看来自:(命令模式)的命令,您可以使用:histq:限制为最后20个命令(默认情况下).

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

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


Ben*_*oit 6

很难知道它.你可以玩变量:

v:operator
v:count (and v:prevcount)
v:register
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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


小智 5

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

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