VI 读取行未提供所需的输出
VI read line not giving desired output
我有一个名为 test
的文件,我使用 vi 打开它:
vi test
现在我想通过 shell 命令插入一行,为简单起见,我使用 printf
:
:r! printf %s hello
但是输入的行是
tests
即附加 s
的文件名。
如果我直接在终端输入相同的命令,它工作正常。
我想做的是最终能够在 base64 中对字符串进行编码,并在光标所在的同一行输入 vi,这样我就不必在单独的终端中复制字符串,对其进行编码,然后将其复制回 vi。我怎样才能做到这一点?我做错了什么?
在 vim
中处理命令行的第一步是 expand
处理它。 %
扩展为当前文件的名称 - test
在您的例子中。 %s
扩展为 tests
。
为避免扩展,请使用反斜杠保护特殊字符:
:r! printf \%s hello
我有一个名为 test
的文件,我使用 vi 打开它:
vi test
现在我想通过 shell 命令插入一行,为简单起见,我使用 printf
:
:r! printf %s hello
但是输入的行是
tests
即附加 s
的文件名。
如果我直接在终端输入相同的命令,它工作正常。
我想做的是最终能够在 base64 中对字符串进行编码,并在光标所在的同一行输入 vi,这样我就不必在单独的终端中复制字符串,对其进行编码,然后将其复制回 vi。我怎样才能做到这一点?我做错了什么?
在 vim
中处理命令行的第一步是 expand
处理它。 %
扩展为当前文件的名称 - test
在您的例子中。 %s
扩展为 tests
。
为避免扩展,请使用反斜杠保护特殊字符:
:r! printf \%s hello