Vim 打开文件时插入文本

Vim 打开文件时插入文本,vim,vi,Vim,Vi,我正在尝试用vim编辑一个新文件。第一行应该是给定的文本字符串。 差不多 vim -c ":insert TEXT" filename.txt 我正在寻找的行为是,filename.txt是用vim打开的,单词TEXT出现在第一行 上面的命令显然是错误的。。关于如何获得这种行为的任何建议 谢谢。为什么不简单地使用echo输出到文件并随后打开它呢 echo "TEXT" > filename.txt | vi filename.txt 复杂的解决方案: 这似乎正是你想要的。它不保存文件,

我正在尝试用vim编辑一个新文件。第一行应该是给定的文本字符串。 差不多

vim -c ":insert TEXT" filename.txt
我正在寻找的行为是,filename.txt是用vim打开的,单词TEXT出现在第一行

上面的命令显然是错误的。。关于如何获得这种行为的任何建议


谢谢。

为什么不简单地使用echo输出到文件并随后打开它呢

echo "TEXT" > filename.txt | vi filename.txt

复杂的解决方案:

这似乎正是你想要的。它不保存文件,但插入文本

vim -c ':exe "normal iTEXT"' filename.txt
其工作原理相同,但在输入文本后退出插入模式:

vim -c ':exe "normal iTEXT\<Esc>"' filename.txt

vim将在第一行以“This is some text”(这是一些文本)打开,并且
-c
命令将在vim打开时调用
:w filename.txt
命令。

您可以与echo命令结合使用:

echo ":insert TEXT" | vim -c 'w filename.txt' -
我会用

$ vim -c "put='insert text here'" foo.txt
如果你被额外的空行所困扰,那就去做吧

$ vim -c "put='insert text here'|2d" foo.txt

您也可以尝试使用
调用append(0,'TEXT')
(未测试),而不是使用
:put

此解决方案将在打开之前创建文件。这是我不想要的。解决方案提供了相同的行为。文件会立即保存。我想要的行为是只允许用户在需要时保存文件。我明白了。我想我现在更明白你的问题了。虽然您没有提到您不希望立即保存该文件。但不确定是否有解决方案。我已用有效的解决方案更新了我的答案。
$ vim -c "put='insert text here'|2d" foo.txt