开发者

How do you make Vim take you back where you were when you last edited a file? [duplicate]

开发者 https://www.devze.com 2022-12-10 03:59 出处:网络
This question already has answers here: Closed 10 years ago. Possible Duplicate: In vim, how do I get a file to open at the same line number I closed it at last time?
This question already has answers here: Closed 10 years ago.

Possible Duplicate:

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

How do you make Vim take you back where you were when you last edited a file?

My work computer has this feature, but not my home computer! How do开发者_JAVA百科 you set Vim to remember in which part of a file you were when you last edited it?

EDIT: just to be more precise, I want this behavior when opening a new file, or on startup.


I have this in my .vimrc and it works:

" go to the position I was when last editing the file
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif


This is done with the viminfo file. It should be sufficient simply to enable this feature (and ensure that the file is writable). I use:

set viminfo='25,\"50,n~/.viminfo

...which stores viminfo data into ~/.viminfo. You can read about the other customization options here.


First, check that your .vimrc file is writable.

If that isn't sufficient, add this to your .vimrc:

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


'0 // (single quote followed by zero) take you to place you last edited


This is a dirty solution.

Whenever you are done editing a file and you are going to quit, just mark that place using m<letter>. Now you create a session file for this using mks!. Next time you open this file, just do ``` to reach that place.

You can have different letters to reach different places in the file. e.g. e for the place you were last editing or f function definition you were last working on etcetera. It depends upon your taste.

One thing bad about this solution is that mks! will create a Session.vim file in the current directory.


See also the Vim Wikia article on Restore Cursor to File Position in Previous Editing Session. It looks like it lists a couple of the solutions already listed here, in addition to one larger script that specifically stores the last position for the last 10 files you've edited; you can change that value to suit your needs.

0

精彩评论

暂无评论...
验证码 换一张
取 消