在vim中,我如何获得一个文件打开在同一行号我上次closures它?

我想configurationvim在我离开的同一个地方打开一个文件。

从Ubuntu的/etc/vim/vimrc文件中,这个例子被注释掉了:

 " Uncomment the following to have Vim jump to the last position when " reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") \| exe "normal! g'\"" | endif endif 

如果这不起作用,一个常见的问题是没有你的~/.viminfo文件的所有权。 如果是这种情况,那么运行:

 sudo chown user:group ~/.viminfo 

其中用户是您的usernamegroup通常与您的用户名相同。

如果你不介意交易自动化的简单,只需按下'' (撇号,然后双引号)打开一个文件,你会跳到你所在的位置,这实际上是@ marcog的答案。

  :h views-sessions 

你可以把它放在你的.vimrc中

  au BufWinLeave * mkview au BufWinEnter * silent loadview 

该视图将被放置在$ HOME / .vim / view中。 您可能需要创build这些目录。

如果你启用了viminfo,就像`0一样简单到最后编辑的文件位置。 你会注意到这只是一个'去标记'的命令;

事实上,你可以稍后做'3去到第三个编辑的位置(也许在另一个文件中),然后再次用`0返回到最后一个

看一下

  :marks 

看到记住的地点。 还要注意,viminfo存储各种其他东西(如寄存器的内容,每个文件的标记,命令和search历史)。 大多数人有这个明显的原因启用

有一个名为vim-lastplace (我是作者)的插件,可以在你离开的地方打开你的文件。 它通过忽略提交消息来改进上述build议,因为通常是编辑一条新消息并希望从提交消息文件的顶部开始。

有时/root/.viminfo变成只读。 这也可能是vim在closures文件时不存储光标位置的原因。