我刚刚从 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` 可以详细了解其工作原理。