打开文件时插入文本

时间:2014-04-04 15:10:32

标签: vim vi

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

这样的东西
vim -c ":insert TEXT" filename.txt

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

上面的命令显然是错误的......有关如何获得此行为的任何建议。

感谢。

4 个答案:

答案 0 :(得分:1)

复杂的解决方案:

这似乎完全符合您的要求。它不保存文件,而是插入文本。

vim -c ':exe "normal iTEXT"' filename.txt

这样做相同,但在输入文本后退出插入模式:

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

以前的错误解决方案。但有帮助:

与Hal的答案类似,但您可以从标准输入中获取vim文本:

echo "This is some text" | vim - -c ":w filename.txt"

vim将在第一行打开“This is some text”,并且只要vim打开,-c命令就会调用:w filename.txt命令。

答案 1 :(得分:1)

我会用

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

如果你被额外的空白行所困扰,那就去吧

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

你可以将它与echo命令结合使用:

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