【发布时间】:2012-02-14 05:32:45
【问题描述】:
是否有显示正常模式下最后一条命令的命令?
假设我不小心按了随机键并得到了一些意想不到的结果。 当然我可以撤消它,但我可以透露按下了什么键以及它是如何解释的吗?
【问题讨论】:
-
我能想到的最好的办法是:
:echo v:count . v:operator
是否有显示正常模式下最后一条命令的命令?
假设我不小心按了随机键并得到了一些意想不到的结果。 当然我可以撤消它,但我可以透露按下了什么键以及它是如何解释的吗?
【问题讨论】:
:echo v:count . v:operator
q: 将显示 Vim 中的命令历史记录。q/ 将显示搜索历史记录。
并且必须重要的是,:q 将非常模式。
【讨论】:
:q 的反面)。否则我不会知道它的存在去寻找它。
:q 会让你摆脱那种模式。我知道,非常不直观,也不是我们可能会尝试的东西,因为我们已经习惯了:q qutting 编辑器本身,而且这种模式实际上是 vim 中的一个单独的窗口/拆分并不明显,它将拦截下一个:q。
输入冒号: 然后ctrl+p 显示您之前的命令,即向后移动您的vim 命令历史。 ctrl+n 前进。
如果您习惯使用命令行并且不希望将键盘手的位置更改为使用箭头键,这将非常方便。
【讨论】:
点击冒号 (:),然后使用向上箭头开始返回之前的命令。您也可以使用向上/向下箭头在列表中移动。
【讨论】:
:set history=100,然后我可以使用向上箭头查看以前的命令。
很难知道。您可以使用变量:
v:operator
v:count (and v:prevcount)
v:register
但您无法完全获取发出的最后一个正常模式命令。
但是,如果您想系统地记录您在 Vim 中键入的所有内容,您可以启动 vim -W ~/.vim-last-scriptout(Windows 版本:vim -W "%HOMEPATH%\Vim\.last-scriptout)您可以在 UNIX 机器上的 shell 中为其设置别名。每个键或控制键都将记录到该文件中。请注意,如果您碰巧使用gvim 或vim -g(GUI),您可能会使用encounter this bug。
如果你想重播这个文件,你可以在命令行中使用:source!(带有感叹号)或-s选项。
在 Windows 上,我已将 gvimportable.exe -W gvim_directory\last_scriptout 设置为我的 Commander 程序 (FreeCommander) 中的默认编辑器。这样,我总是可以记住我输入的内容来执行某项操作并在另一个文件上重复一系列命令。当然,我还有另一个打开 Vim 和播放脚本的快捷方式。
请注意,该文件可能仅在 Vim 退出时写入,因此您必须丢失会话才能知道您做了什么。
【讨论】:
最后一条命令的文本存储在. 寄存器中。您可以通过 :display 查看所有寄存器。不幸的是,它没有说明启动正常命令的内容。
要查看来自: 的命令(命令模式),您可以使用 :hist 或 q: 限制为最后 20 个(默认情况下)。
另一种能力是保存撤消缓冲区 :wundo undo.bin -- 但撤消缓冲区是二进制的。
但这些都没有真正回答你的问题。我很好奇它是否可以做到。
【讨论】:
I, A, i, a, s, S, c, C 之后)