有时我会与他人分享 vim 使用的屏幕截图和剪辑。如果能扩展一下此图中突出显示的命令行部分就更好了:
我也想通过某种方式让之前的按键序列也可见, 例如:
y2w jj f[ p 2d
- 您可以看到当前按键序列之前的按键序列。我将在底部详细说明我的愿望清单。
类似的东西可以作为插件或 vim 脚本使用吗?可用的脚本数量vim 在线这使得通过关键字很难找到。
澄清:我添加了以下部分来展示我需要的功能很多 vim 插件可以解决这个问题. 因为看起来好像可能很少或没有插件来做我想要的事情,本节是基本不相关问题不在于如何实现这些功能,而是它们是否以及在哪里实现已经实施。
我希望实现的一些功能(但似乎不太可能):
- 使用非键盘字符(而不是空格)来分隔按键序列,并且为当前命令使用不同的按键序列,因此
y2w jj f[ p 2d
可能会变成y2w¦jj¦f[¦p » 2d
- 将具有字母替代项的键替换为替代项,例如将右箭头键 -
^[[C
替换为等效的l
。 编辑:需要澄清的是,右箭头键是 vim 中的有效键,但没有字符来表示它(<right arrow>
必须使用类似的字符串),在l
键执行相同功能的情况下(大多数情况下),它应该替换较长的字符串。 - 让先前的击键一直运行到行首(而不仅仅是一两个),并在必要时让 vim 的命令提示符覆盖它。
- 用更优雅的替代方法替换一些击键,例如
hhhhh
用5h
或更令人印象深刻的d2f)
(d%
在适当的情况下)。
答案1
我希望实现的一些功能(但似乎不太可能):
1. 使用非键盘字符(而不是空格)来分隔键序列,并使用与当前命令不同的字符,因此 y2w jj f[ p 2d 可能变成 y2w¦jj¦f[¦p » 2d
首先,你必须弄清楚自己想要什么。一种简单(我相信其他人会想出更优雅的方法)的在正常模式下记录按下的键的方法是录制宏(按质量保证开始,QQ结束录制,然后通过:注册)。但它不会帮你“拆分按键”,在按键之间添加空格,因为,嗯...因为你在录制时没有按下空格键。
如果你想把寄存器的内容A例如,在你的文本中,你可以“阿普然后根据你的喜好将它们分开。之后,你可以尝试使用 join(a, "|") 之类的东西将它们连接起来,或者使用任何垂直字符。我现在还不确定。
2. 将带有字母替代项的键替换为替代项,例如将右箭头键 - ^[[C 替换为等效的 l。
这需要更高层次的逻辑,因为通常有多种方法可以完成同一件事。“替代方案”是什么?
3. 让先前的击键一直运行到行首(而不仅仅是一两个),并在必要时让 vim 的命令提示符覆盖它。
现在我想起来了,你有没有试过这个也许有键盘记录器? 看来这比我在这里的第一个建议要好,特别是如果你的目的是录制屏幕录像。
4. 用更优雅的替代方法替换某些按键,例如用 5h 替换 hhhhh 或更令人印象深刻的 d2f) 用 d%(在适当的情况下)。
很难。 5h 只是 Vim 为您省去按 hhhhh 麻烦的一种方式。
编辑:补充一下,如果你这样做是为了录制截屏视频或教育视频演示创建器可以记录您按下的键并在屏幕上显示它们。