我想找出我在编码过程中最常用的模式是什么。因此,我正在寻找一种在vim中记录所有键盘输入的方法,最好使用时间戳记。然后,我可以对最近使用的模式/动作进行一些分析,确定一个动作要花费什么时间,并找出要优化的东西。

在Vim中是否有惯用的方式来做到这一点?
我要为此写一个插件吗?
做这样的事情会对性能产生什么影响?

谢谢

评论

启动vim时,应该开始查看-w标志。您可以用它记录每次击键。

相关博客文章(链接)。它显示了如何记录输入(vim -w file.log),并提供了一个haskell脚本将文件解析为单独的命令,然后可以对其进行分析。虽然没有时间戳。

谢谢@ Nobe4,这看起来很有用,几乎我正在寻找。我仍然想知道时间是否可以收藏。也许不是时间戳记,但是击键之间的时间差。这可能有助于找出事物运行的速度。

其实这对你们俩都是一个问题。只是不允许我在一条评论中指定提及。

这是一个捕获时间戳的方法:使用以下脚本并像这样调用vim:vim -w <(./ test-io.py> log)(vim -w <(tee原始日志| ./test- io.py> log)(如果您也想要原始输出)(仅* nix)。这应该将所有带有时间戳的输入写入日志,每行一个字节。我注意到的是,vim不会一一输出命令,而是将其刷新。

#1 楼

当通过文件传递-w命令行选项时,Vim允许记录所有输入: scriptout},直到退出Vim。如果您想创建一个脚本文件来与“ vim -s”或“:source!”一起使用,这将很有用。如果{scriptout}文件存在,则会附加字符。


现在我们可以访问输入了,可以将其重定向到所需的位置。例如,以下方式(仅适用于* nix系统): >
如果您想做更复杂的事情,该脚本可以替换为其他任何需要输入的程序。它在某个点和出口刷新的输入的数量。这使得时间戳相当不可靠。

评论


是的我不知道是否可以为此提出新问题。也许有人对提供此功能感兴趣。或者,我可以先潜水,如果允许的话,尝试自己动手打补丁,尽管我可能没有时间。

– 6D65
2015年9月3日15:31

@ 6D65我想您可以向neovim项目建议一个输入调试日志功能,其中来自用户的每个输入都带有时间戳。我已经看到他们经常临时修补代码以尝试和调试与输入有关的:terminal问题,因此它应该是一个有用的功能。我不熟悉它们具有的远程插件API,但是它也可能有某种实时获取输入的方法。

–tokoyami
2015年9月4日在6:34

还是不要在Vim中执行此操作-使用系统键盘记录器(从Vim启动/停止)并解析该输出。

– VanLaser
2015年9月4日在11:35