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

我想将 vim 配置为在我停下来的地方打开一个文件。

52518 次浏览

在 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通常与您的用户名相同。

:h views-sessions

你可以把这个放在你的 .vimrc:

autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview

视图将放置在. vim/view 中。

如果您不介意用自动化来换取简单性,只需在打开文件时按下按键 '"(撇号,后面跟着双引号) ,您就会跳到原来的位置。@ marcog 的回答基本上就是这么做的。

如果您启用了 viminfo,那么转到最后编辑的文件位置就像 `0一样简单。您会注意到,这只是一个“ go to mark”命令;

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

看看这个

 :marks

看看记忆中的地点。还要注意,viminfo 存储各种其他内容(比如寄存器的内容、每个文件的标记、命令和搜索历史记录)。大多数人启用这个功能的原因显而易见

有一个名为 Vim 最后一名的插件(我是作者) ,它可以打开你离开的文件。它通过忽略提交消息改进了上述建议,因为您通常编辑新消息并希望从提交消息文件的顶部开始。

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

无需使用

vim

接下来按两次 Ctrl + O,移动到您处理的任何文件中的最后一个位置。