我发现能够在 Vim 中使用宏是多么方便。特别是录音,q
但我对如何读取我正在录音的寄存器中存储的内容感到困惑。
举一个具体的例子,我经常使用 Vim 来编写 LaTeX 文档,在这方面我制作了一个宏,将 a%
放在当前行的开头,以便注释掉这段代码。我通过如下记录来做到这一点。我按下了键q
u
Home i
%
Esc q
。现在按下@u
我就可以播放那个宏了,因为我经常使用那个宏,所以我决定把它放在我的.vimrc
文件中。我查看了主题,发现我必须使用Ctrl+V来获取我使用的击键,例如,转义键。我
let @u='^[OHi%^['
我^OH
用Ctrl+V Home和+制作^[
的地方。现在,当我启动 Vim 时,寄存器的内容应该是,但如果我只是用 录制宏,那么寄存器会读取CtrlV Escu
^[OHi%^[
q
<80>khi%^[
我试图理解这意味着什么。它做同样的事情,但是如果我在查阅 Vim 中的一些帮助页面(更准确地说,和)之后尝试使用Ctrl+编写类似的东西,但我仍然不明白。V:help key-notation
:help i_CTRL-V
:help i_CTRL-V_digit
我想要理解这一点的动机是我希望能够阅读我录制的宏的作用。如果我了解寄存器的内容是如何产生的,那么我可能能够通过产生类似的结果来理解它。例如,如果我记录的宏遵循与使用Ctrl+时相同的语法,V那么我可以检查Ctrl+V加上最可能产生的击键并查看哪个匹配。