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

Mar*_*son 4 vi command-line

我可以通过使用参数调用 vim 将光标定位在文件的最后一行+

vi + myfile          # "+" = go to last line of file
Run Code Online (Sandbox Code Playgroud)

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

类似的东西

emacs myfile --eval "(goto-char (point-max))"
Run Code Online (Sandbox Code Playgroud)

sta*_*tox 6

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

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

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

vim "+norm G$" "+startinsert" myfile
Run Code Online (Sandbox Code Playgroud)

但是,如果您执行此操作并且最后一行已经包含一些文本,则您将开始在最后一个字符之前插入文本。我不知道startinsertlike的等价物startappend,所以我不知道如何解决这个问题。