我想将 vim 配置为在我停下来的地方打开一个文件。
在 Ubuntu 的 /etc/vim/vimrc文件中,这个例子被注释掉了:
/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文件的所有权。如果是这种情况,那么运行:
~/.viminfo
sudo chown user:group ~/.viminfo
其中用户是您的 username,而 group通常与您的用户名相同。
username
group
:h views-sessions
你可以把这个放在你的 .vimrc:
.vimrc
autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview
视图将放置在. vim/view 中。
如果您不介意用自动化来换取简单性,只需在打开文件时按下按键 '"(撇号,后面跟着双引号) ,您就会跳到原来的位置。@ marcog 的回答基本上就是这么做的。
如果您启用了 viminfo,那么转到最后编辑的文件位置就像 `0一样简单。您会注意到,这只是一个“ go to mark”命令;
`0
实际上,您可以稍后执行’3以转到前面编辑的第三个位置(可能在另一个文件中) ,然后再次使用 `0返回到最后一个位置
看看这个
:marks
看看记忆中的地点。还要注意,viminfo 存储各种其他内容(比如寄存器的内容、每个文件的标记、命令和搜索历史记录)。大多数人启用这个功能的原因显而易见
有一个名为 Vim 最后一名的插件(我是作者) ,它可以打开你离开的文件。它通过忽略提交消息改进了上述建议,因为您通常编辑新消息并希望从提交消息文件的顶部开始。
有时 ~/.viminfo变成只读的,或者您的用户无法访问该文件。这也可能是当您关闭文件时,vim 不存储您的光标位置的原因。
无需使用
vim
接下来按两次 Ctrl + O,移动到您处理的任何文件中的最后一个位置。