可能重复:
In vim, how do I get a file to open at the same line number I closed it at last time?
如何让Vim带你回到上次编辑文件的位置?
我的工作电脑有这个功能,但不是我的家用电脑!你如何设置Vim记住你上次编辑文件的哪个部分?
编辑:更确切地说,我想在打开新文件或启动时出现这种行为。
答案 0 :(得分:4)
我在.vimrc中有这个,它可以工作:
" go to the position I was when last editing the file
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif
答案 1 :(得分:3)
首先,检查您的.vimrc文件是否可写。
如果这还不够,请将其添加到.vimrc:
if has("autocmd")
autocmd BufReadPost *
\ if line("\'") > 0 && line("\'") <= line("$") |
\ exe "normal g`" |
\ endif
endif
答案 2 :(得分:3)
这是使用viminfo
文件完成的。仅启用此功能(并确保文件可写)应该足够了。我用:
set viminfo='25,\"50,n~/.viminfo
...将viminfo数据存储到~/.viminfo
。您可以阅读其他customization options here。
答案 3 :(得分:2)
'0 //(单引号后跟零)带您进行上次编辑的
答案 4 :(得分:0)
这是一个肮脏的解决方案。
每当您完成编辑文件并且要退出时,只需使用m<letter>
标记该位置即可。现在,使用mks!
为此创建会话文件。下次打开这个文件时,只需要“`”到达那个地方。
您可以使用不同的字母到达文件中的不同位置。例如e
代表您上次编辑的地方或f
函数定义,您最后一次使用等等。这取决于你的口味。
此解决方案的一个不好之处是mks!
将在当前目录中创建Session.vim
文件。
答案 5 :(得分:0)
另请参阅关于Restore Cursor to File Position in Previous Editing Session.的Vim Wikia文章。除了一个更大的脚本专门存储您编辑的最后10个文件的最后位置外,它看起来还列出了此处列出的几个解决方案。 ;你可以根据自己的需要改变这个价值。