我刚开始研究一种工具来帮助我提高Vim的工作效率.我希望它将每个击键记录到一个文件,然后识别低效的使用模式.我希望它为每次击键存储一个时间戳.
我尝试使用-w和-W vim选项将每个击键转储到管道.但是,Vim不会在线报告击键,因此我无法获得可靠的时间戳.
我也尝试拦截来自tty的输入,将其写入管道并将其重定向为Vim的stdin.但随后Vim退出:
Vim: Warning: Input is not from a terminal
我也发现这个技巧可以捕获每个键:http://vim.wikia.com/wiki/Capture_all_keys.我对vimscript一无所知,但我感觉这不是我想要的.
所以我现在的想法是:我需要拦截来自tty的输入,处理它然后将它写入Vim将用作输入的一些假tty.你是否同意这是最好的方法?如果是的话,有关我如何做到这一点的任何提示?
在进一步挖掘并查看“脚本”源代码后,我发现了这个:
man 7 pty man 4 pts man 3 openpty
创建一个新的伪终端似乎是去这里的方式,我打算试一试.
编辑:它似乎工作.如果有人遇到类似问题,可以在https://github.com/Baranowski/habit-vim/找到该项目.