11

可能是 2 个问题合二为一。我想知道如何在 Ex 模式下引用寄存器。

例如,我正在编辑一个文件,我想保存该文件并附加一个时间戳(或者实际上只是日期戳)。

我知道我可以使用以下命令将寄存器设置为 shell 命令输出的值:

:let @a = system("date +\"%Y-%m-%d\"")

是否有任何取消引用该寄存器并将其值插入 Ex 命令的方法?就像是:

:w testfile.<value of "a register>

复制到系统剪贴板并粘贴会很好,但将来以更通用/程序化的方式构建其他命令会很好。

4

2 回答 2

13

有两种方法可以做到这一点,但可能都不是你想要的。

  1. 用于<CTRL-R>a在当前命令行中插入内容。有关:help c_CTRL-R更多信息,请参阅。

  2. 用于exe允许将变量插入到表达式中。见:help :exe:help 41.3

    :exe 'w testfile.' . @a
    
于 2010-03-09T08:10:33.803 回答
1

假设注册“a”,您可以键入:

<CTRL-R>a这将在该点输入寄存器 a inline 的值。这也可以在插入模式下使用。

于 2010-03-09T01:09:31.987 回答