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 site,startappend
等同于startinsert
是startinsert!
。所以答案可能是
vim "+norm G$" "+startinsert!" myfile
我可以通过使用参数 +
:
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 site,startappend
等同于startinsert
是startinsert!
。所以答案可能是
vim "+norm G$" "+startinsert!" myfile