VI读取行未提供期望的输出

问题描述 投票:1回答:1

我有一个名为test的文件,我使用vi这样打开它:

vi test

现在,我想通过shell命令插入一行,为简单起见,我使用printf

:r! printf %s hello

但是输入的行是

tests

即文件名,后接s

如果我直接在终端中输入相同的命令,它将正常工作。

我想要做的最终是能够在base64中编码一个字符串,并将其输入到与vi中光标所在的行相同的行上,这样我就不必将字符串复制到单独的终端中,即可对其进行编码。 ,然后将其复制回vi。我怎样才能做到这一点?我在做什么错?

vim vi
1个回答
1
投票

vim中处理命令行的第一步是对其进行expand处理。 expand扩展为当前文件的名称-您的情况为%test展开为%s

为了避免扩展,请使用反斜杠保护特殊字符:

tests
© www.soinside.com 2019 - 2024. All rights reserved.