可能有2个问题合二为一。我想知道如何在Ex模式下引用寄存器。
例如,我正在编辑一个文件,我想保存文件,并附加一个时间戳(或者只是真正的日期戳)。
我知道我可以使用以下命令设置寄存器到shell命令输出的值:
:let @a = system("date +\"%Y-%m-%d\"")
有没有取消引用该寄存器并将其值插入Ex命令?就像是:
:w testfile.<value of "a register>
复制到系统剪贴板并粘贴会很不错,但是在将来以其他命令为基础以更通用/更方式的方式进行操作会很好。
有两种方法可以做到这一点,但可能两者都不是你想要的。
使用 <CTRL-R>a 在当前命令行中插入内容。看到 :help c_CTRL-R 了解更多信息。
使用 exe 允许在表达式中插入变量。看到 :help :exe 和 :help 41.3。
:exe 'w testfile.' . @a
假设注册“a”,您可以输入:
<CTRL-R>a 这将在该点输入内联寄存器的值。这也可以在插入模式下使用。
有两种方法可以做到这一点,但可能两者都不是你想要的。
使用 <CTRL-R>a 在当前命令行中插入内容。看到 :help c_CTRL-R 了解更多信息。
使用 exe 允许在表达式中插入变量。看到 :help :exe 和 :help 41.3。
:exe 'w testfile.' . @a
假设注册“a”,您可以输入:
<CTRL-R>a 这将在该点输入内联寄存器的值。这也可以在插入模式下使用。