如何在vim中查看最后几个按键?

如何在vim中查看最后几个按键?,vim,Vim,有时我在笔记本电脑的小键盘上按错键,就会出现奇怪的导航或编辑(有时这是我的新功能) 虽然我可以撤消编辑(u)或导航(control-o),但我不知道我做错了什么,所以以后很难避免。不知道刚刚发生了什么也令人沮丧。所以,我希望能够看到我最后的几次击键 有点像:设置showcmd,但显示文字击键,以及(理想情况下)击键的简短历史记录 我只在help/google中找到了命令行和导航历史记录 澄清一下:我不是在寻找命令行历史记录,而是在寻找击键历史记录。e、 g.我是否无意中按了),然后转到下一句?

有时我在笔记本电脑的小键盘上按错键,就会出现奇怪的导航或编辑(有时这是我的新功能)

虽然我可以撤消编辑(
u
)或导航(
control-o
),但我不知道我做错了什么,所以以后很难避免。不知道刚刚发生了什么也令人沮丧。所以,我希望能够看到我最后的几次击键

有点像
:设置showcmd
,但显示文字击键,以及(理想情况下)击键的简短历史记录

我只在help/google中找到了命令行和导航历史记录


澄清一下:我不是在寻找命令行历史记录,而是在寻找击键历史记录。e、 g.我是否无意中按了
,然后转到下一句?我是否按了
dd
并删除了一行?我猜它类似于击键记录器


命令行历史记录(
:history
)仅显示在
提示符下输入的命令。

:history
将显示您的命令历史记录-这将有助于您发现我们在vim中发现的错误击键的新功能。

据我所知,最接近的是q命令,它将您的击键记录到您选择的寄存器中。显然,这必须事先设置好,因为它用于复杂的重复,尽管您可能会破解一些东西,开始记录打开的每个文件。不过,还有内存使用和令人讨厌的“录制”提示的问题

最简单的方法可能是安装keylogging软件。我个人对这些方面没有任何经验,但如果您从可靠的来源获得它或自己构建它,将其设置为仅记录到内存而不是磁盘,只有一个句子大小的缓冲区,或仅记录vim windows,则安全性影响可能很小。

-可能值得一看,虽然可能不完全是你在看什么,但它会稍微有帮助


它让您可视化Vim undo树,这意味着您将能够看到发生的最后一次编辑。例如,如果您意外删除了一行或一些类似的内容,这将显示在树中,但是,它不会显示实际按下的按键,也不会显示光标移动等内容。

最近,我遇到了一个Vim日志插件,它提醒我这个问题:


它基本上记录了您所做的一切,以备日后分析使用。它旨在获取有关命令使用情况的统计信息,但对于查找您意外输入的那些神奇命令应该非常有效。

有点旧,但我刚刚在:

您可以使用-w标志启动vim,将所有击键写入一个文件中。参见
:h-w

vim -w filename

谢谢,但我在问题中提到,我已经找到了命令行历史记录-我正在寻找的是击键历史记录。为了澄清,我是否无意中按了
,然后转到下一句?我是否按了
dd
并删除了一行?命令行历史记录没有显示这些;它只显示在
提示符下输入的命令。好主意!您可以使用
:reg
检查用
q
存储的宏。例如,如果您开始
qx
,然后键入
kkjjdd/hello^M:w^M
(和
q
结束),那么
:reg x
将打印出来(
^M
是回车;所有内容都被记录,包括
//code>搜索和
命令);但是
:reg
的输出不会换行,因此最近的击键通常会在屏幕右侧丢失(通常较长,因为它会记录所有内容-例如,如果您输入几行文本,则会包括所有这些击键)。但是,它确实告诉我,我有时按
n
而不是
b
,把我扔进文件而不是背单词。我仍然希望vim能做我想做的事;我再留一天。@13ren,你也可以用
“[reg letter]p
将寄存器的值粘贴到文本窗口中。谢谢。Gundo是一个了不起的项目,它基于vim惊人的(但无法使用的)撤销树-我不知道任何类型的工具都有它(git和其他版本控制系统除外,它们基于更大规模的概念).但是,正如您所注意到的,这并不能回答我的问题,因为它不显示击键。对于恢复错误编辑,常规撤消工作很好-当一个简单的解决方案已经完美解决时,没有必要使用更复杂的解决方案。然而,我认为您只是利用这一点作为推广Gundo的借口…我不能在这方面指责您。:-)