可能是重复问题:
在vim中,如何让文件在上次关闭时打开相同的行号?
当你最后一次编辑一个文件时,如何让 Vim 把你带回到之前的位置?
我的工作电脑有这个功能,但家里的电脑没有!如何设置Vim以记住你最后编辑文件时所在的部分?
编辑:更明确地说,我想要这种行为在打开新文件或启动时。
可能是重复问题:
在vim中,如何让文件在上次关闭时打开相同的行号?
当你最后一次编辑一个文件时,如何让 Vim 把你带回到之前的位置?
我的工作电脑有这个功能,但家里的电脑没有!如何设置Vim以记住你最后编辑文件时所在的部分?
编辑:更明确地说,我想要这种行为在打开新文件或启动时。
我在我的 .vimrc 文件中加入了以下代码,它可以正常工作:
" go to the position I was when last editing the file
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif
这可以通过 viminfo
文件完成。只需启用此功能(并确保该文件可写),即可满足要求。我使用以下命令:
set viminfo='25,\"50,n~/.viminfo
...它将viminfo数据存储到~/.viminfo
中。您可以在此处阅读有关其他自定义选项的信息。
首先,请检查您的 .vimrc 文件是否可写。
如果这不够,可以将以下内容添加到您的 .vimrc 文件中:
if has("autocmd")
autocmd BufReadPost *
\ if line("\'") > 0 && line("\'") <= line("$") |
\ exe "normal g`" |
\ endif
endif
'0 //(单引号后跟零)将带您到上次编辑的位置
这是一个不太优雅的解决方案。
每当你编辑完一个文件并准备退出时,只需使用m<字母>
标记该位置。现在使用mks!
为此创建一个会话文件。下次打开此文件时,只需使用```到达该位置。
您可以有不同的字母以到达文件中的不同位置。例如,e
表示您最后编辑的位置或f
表示您最后工作的函数定义等。这取决于您的喜好。
这个解决方案的一个缺点是mks!
将在当前目录中创建一个Session.vim
文件。
还可以查看Vim Wikia关于恢复光标到上一个编辑会话中的文件位置的文章。它似乎列出了一些已在此处列出的解决方案,以及一个更大的脚本,专门存储您最近编辑的最后10个文件的位置;您可以更改该值以适应您的需求。