Vim: 从命令行,转到文件末尾并开始编辑?

Vim: from command line, go to end of file and start editing?

我可以通过使用参数 +:

调用它来使 vim 将光标定位在文件的最后一行
vi + myfile          # "+" = go to last line of file

我怎样才能做到这一点,然后进入追加模式,以便用户可以在文件末尾开始键入?

类似于

emacs myfile --eval "(goto-char (point-max))"

一种解决方案是使用+ 参数传递读取文件后执行的命令。 Vim 这样最多可以执行 10 个命令,因此您可以使用:

vim "+norm Go" "+startinsert" myfile
  • 第一个命令norm Go将转到最后一行并添加一个新的。
  • 第二个命令将启动允许用户输入最后一行的插入模式。

注意 此解决方案在文件末尾创建一个新行。如果你想编辑最后一行的末尾而不创建新行,你可以使用类似的东西:

vim "+norm G$" "+startinsert" myfile

但是 如果您这样做并且您的最后一行已经包含一些文本,您将开始在最后一个字符之前插入文本。我不知道 startinsert 等同于 startappend,所以我不知道如何解决这个问题。

根据this sitestartappend等同于startinsertstartinsert!。所以答案可能是

vim "+norm G$" "+startinsert!" myfile