在vim中,如何在上次关闭的同一行号上打开文件?

时间:2009-04-21 20:56:24

标签: vim

我想配置vim在我离开的同一个地方打开一个文件。

7 个答案:

答案 0 :(得分:178)

从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

用户是您的username,而group通常与您的用户名相同。

答案 1 :(得分:40)

如果你不介意简化交易自动化,只需按开键' (撇号,后跟双引号)打开文件,你会跳到你原来的位置。这基本上就是@ marcog的答案。

答案 2 :(得分:20)

  :h views-sessions

您可以将其放在 .vimrc

  au BufWinLeave * mkview
  au BufWinEnter * silent loadview

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

答案 3 :(得分:6)

如果启用了viminfo,则只需`0即可转到上次编辑的文件位置。你会发现这只是一个'去标记'命令;

实际上,您可以稍后执行'3转到之前编辑的第三个位置(可能在另一个文件中),然后再次使用`0返回到最后一个

看看

 :marks

查看记住的位置。另请注意,viminfo存储各种其他内容(如寄存器内容,每个文件的标记,命令和搜索历史记录)。大多数人出于显而易见的原因启用了此功能

答案 4 :(得分:5)

您可以使用

启动vim而不指定文件名
vim 

然后按两次CTRL + O移动到您处理的任何文件中的最后一个位置。

答案 5 :(得分:3)

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

答案 6 :(得分:1)

有时~/.viminfo变为只读或您的用户无法访问该文件。这也可能是当您关闭文件时vim不存储光标位置的原因。