【发布时间】:2012-07-17 18:37:07
【问题描述】:
我发现能够在 Vim 中使用宏是多么方便。特别是使用q 进行录制,但我对如何读取我正在录制的寄存器中存储的内容感到困惑。
举一个具体的例子,我经常使用 Vim 来编写 LaTeX 文档,为此我制作了一个宏,在当前行的开头放置了一个 %,因此这段代码被注释掉了。我通过如下记录来做到这一点。我按下了键quHomei%Escq。现在按@u 我可以播放那个宏,因为我经常使用那个宏,所以我决定把它放在我的.vimrc 文件中。我查看了主题,发现我必须使用 Ctrl+V 来获取我使用的击键,例如转义键。我
let @u='^[OHi%^['
我用 Ctrl+V Home 和 ^[ 用 Ctrl+^OH kbd>V Esc。现在当我启动 Vim 时,寄存器u 的内容应该是^[OHi%^[,但如果我只是用q 记录宏,那么寄存器会读取
<80>khi%^[
我试图理解这意味着什么。它做同样的事情,但是如果我在查阅 Vim 中的一些帮助页面后尝试使用 Ctrl+V 编写类似的东西(更准确地说是:help key-notation,@987654339 @ 和:help i_CTRL-V_digit),但我还是不明白。
我想了解这一点的动机是我希望能够阅读我录制的宏的作用。如果我了解寄存器的内容是如何产生的,那么我可能能够通过产生类似的结果来理解它。例如,如果我记录的宏遵循与使用 Ctrl+V 时相同的语法,那么我可以检查 Ctrl+V 加上最有可能产生的击键,看看哪一个匹配。
【问题讨论】:
-
不是您问题的答案,但您应该尝试使用
0而不是<home>。这将为您节省ctrl-v。 -
虽然很荣幸自己尝试一下:我认为Nerd Commenter也支持LaTeX:vim.org/scripts/script.php?script_id=1218