2015-09-07 268 views
3

我可能会导致通过与+参数调用它VIM将光标移动到文件的最后一行的位置:Vim:从命令行开始,到文件结尾并开始编辑?

vi + myfile   # "+" = go to last line of file 

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

类似的东西,以

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

嗯,我得到: 处理命令行时检测到错误: E20:未设置标记 –

+0

为您工作?对我而言,它开始插入第一行的第一个字符,这不是我想要的。我需要去文件的末尾。 –

+0

@TimBiegleisen,emacs效果很好。这个问题是关于在vim中做同样的事情。 –

回答

2

一种解决方案可以是使用所述+参数来传递命令读取文件之后执行。 Vim可以长达10个命令这种方式,所以你可以使用:

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

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

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

如果你这样做,你的最后一行已经包含了一些文字,你会开始插入最后一个字符之前的文本。我不知道相当于startinsertstartappend所以我不知道如何解决这个问题。

+1

第一个正是我所需要的。谢谢! –

+0

不客气!另外,您可能对[Vi/ViM SE站点](http://vi.stackexchange.com/)感兴趣,以了解关于Vim未来的问题:-) – statox