你怎么让Vim带你回到你上次编辑文件的位置?

时间:2009-11-05 18:19:47

标签: vim editor

  

可能重复:
  In vim, how do I get a file to open at the same line number I closed it at last time?

如何让Vim带你回到上次编辑文件的位置?

我的工作电脑有这个功能,但不是我的家用电脑!你如何设置Vim记住你上次编辑文件的哪个部分?

编辑:更确切地说,我想在打开新文件或启动时出现这种行为。

6 个答案:

答案 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个文件的最后位置外,它看起来还列出了此处列出的几个解决方案。 ;你可以根据自己的需要改变这个价值。