我正在尝试使用vim编辑新文件。第一行应该是给定的文本字符串。 像
这样的东西vim -c ":insert TEXT" filename.txt
我正在寻找的行为是用vim打开filename.txt,第一行出现单词TEXT。
上面的命令显然是错误的......有关如何获得此行为的任何建议。
感谢。
答案 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' -