问题 Vim在Ex模式下注册使用


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

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

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

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

有没有取消引用该寄存器并将其值插入Ex命令?就像是:

:w testfile.<value of "a register>

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


3906
2018-03-09 00:57


起源



答案:


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

  1. 使用 <CTRL-R>a 在当前命令行中插入内容。看到 :help c_CTRL-R 了解更多信息。

  2. 使用 exe 允许在表达式中插入变量。看到 :help :exe 和 :help 41.3

    :exe 'w testfile.' . @a
    

12
2018-03-09 08:10





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

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


1
2018-03-09 01:09



是的,知道这一点,寻找一种方法来做到这一点,而不必粘贴它。没有特别的原因,但有一些会自动取消引用变量的东西会很高兴 - Peck


答案:


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

  1. 使用 <CTRL-R>a 在当前命令行中插入内容。看到 :help c_CTRL-R 了解更多信息。

  2. 使用 exe 允许在表达式中插入变量。看到 :help :exe 和 :help 41.3

    :exe 'w testfile.' . @a
    

12
2018-03-09 08:10





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

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


1
2018-03-09 01:09



是的,知道这一点,寻找一种方法来做到这一点,而不必粘贴它。没有特别的原因,但有一些会自动取消引用变量的东西会很高兴 - Peck