Vim在Ex模式下注册使用

时间:2010-03-09 00:57:46

标签: vim scripting vim-registers

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

例如,我正在编辑一个文件,我想保存带有时间戳(或者只是真正的日期戳)的文件。

我知道我可以使用:

将寄存器设置为shell命令输出的值
:let @a = system("date +\"%Y-%m-%d\"")

有没有取消引用该寄存器并将其值插入Ex命令?类似的东西:

:w testfile.<value of "a register>

复制到系统剪贴板并粘贴会很好,但是在将来以其他命令为基础以更通用/更方式的方式进行操作会很不错。

2 个答案:

答案 0 :(得分:12)

这样做有两种方法,但可能都不是你想要的。

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

  2. 使用exe允许将变量插入表达式。请参阅:help :exe:help 41.3

    :exe 'w testfile.' . @a
    

答案 1 :(得分:1)

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

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