Ex模式下使用Vim寄存器

14

可能有两个问题。我想知道如何在 Ex 模式中引用寄存器。

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

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

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

有没有办法取消此寄存器的引用并将其值插入到 Ex 命令中?就像这样:

:w testfile.<value of "a register>

将文本复制到系统剪贴板并粘贴是很好的,但以更通用/编程的方式进行操作以便于在未来构建其他命令会更好。

2个回答

16

有两种方法可以实现这个功能,但可能都不完全符合您的需求。

  1. 使用<CTRL-R>a将内容插入当前命令行中。更多信息请参见:help c_CTRL-R

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

:exe 'w testfile.' . @a

2
假设有一个名为 "a" 的寄存器,您可以输入以下命令:<CTRL-R>a,该命令会在光标处插入寄存器 a 中的值。这个命令同样适用于插入模式。

是的,知道那个,但想找一种不必粘贴的方法来实现它。没有特别的原因,但有一个自动取消引用变量的东西会很好。 - Peck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接