如何让 VIM 记住我重新打开文件时所在的行?

如何让 VIM 记住我重新打开文件时所在的行?

我刚刚从 RH/Fedora 转到 Ubuntu 12.04。在 RedHat 中,当我使用 VIM 重新打开文件时,它会将光标放在我关闭文件时所在的行上。但是,我现在看到的是,当我重新打开文件时,光标始终位于顶部,每一个时间。由于我处理的一些文件长达 20k 行,所以很快就会变得有点过时。

我在新的 Ubuntu 上通过 apt-get 安装了完整版的 VIM,这样我就可以在插入模式下使用箭头键。打印出来的版本是 VIM - Vi IMproved 7.3。

任何帮助都将受到热烈欢迎。

答案1

将以下几行添加到您的~/.vimrc或全局/etc/vim/vimrc

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
endif

这将跳转到最后已知的光标位置,除非:

  • 该职位无效
  • 该位置位于事件处理程序内部

答案2

你的系统可能已经包含了必要的功能。你只需要在默认配置中取消注释它/etc/vim/vimrc,或者将它添加到你的 ~/.vimrc 文件中。vim 不记得最后的位置

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

这是一个自动命令,用于查找已评估表达式的行号。如果记录了最后一个位置,则 g 命令会跳转到该位置。使用 :help on command BufReadPost, line() and g` 可以详细了解其工作原理。

相关内容