【问题标题】:Vim: how to append the content of a variable to a file?Vim:如何将变量的内容附加到文件中?
【发布时间】:2016-10-14 22:06:00
【问题描述】:

我想知道:是否可以使用命令将变量的内容(在我的情况下为最后一次搜索)写入文件?

我尝试了以下方法:

:echo @/ >> /tmp/foo.txt
:@/w /tmp/foo.txt

但这没有用。知道什么是正确的方法吗?

【问题讨论】:

  • :echo <C-r>/ >> /tmp/foo.txt 但是……你为什么要这么做?
  • <C-r> 是什么意思?为什么要在命令中添加特殊的组合键?顺便说一句,你的命令并不像字面意思那样工作:E15: Invalid expression: <C-r>/ >> /tmp/foo.txt 这个命令是一个更大项目的一部分:我需要与外部程序交流一些东西
  • <C-r> 表示“按 ctrl+r”。见:h c_ctrl-r
  • 但是我需要一个: 命令,所以我不能在那里插入特殊的组合键。您是否尝试过自己编写的命令?对我来说,它给出了我在上一条评论中粘贴的例外情况。
  • 我不需要尝试。输入:!echo ,然后按Ctrl+R,然后按/,然后输入>> /tmp/foo.txt,然后按Enter。

标签: file vim editor text-editor vi


【解决方案1】:

romain 提议的另一种解决方案是使用redir 命令将消息重定向到文件。如:help redir 中所述,

作为命令输出的消息被写入该文件, 直到重定向结束。

要附加搜索寄存器的内容,请运行以下命令序列:

redir >> /tmp/foo.txt
echo @/
redir END

这个序列可以变成一个函数和/或用作键映射。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2012-01-20
    • 1970-01-01
    • 2010-09-13
    • 2013-07-31
    相关资源
    最近更新 更多