Tutorial :Recent file history in Vim?


I would like to access recent files that I had opened and then closed in GVim. I open and close GVim frequently. I would like to access recent files from previous sessions as well.

Does GVim store recent files somewhere as Word and many other desktop apps store? How to access them?


At least terminal vim stores the previous ten files into ~/.viminfo in the filemarks section. You can use '0, '1, '2, ... '9 to jump among them.

(Probably only useful for '0 to get back to the last file you were editing, unless your memory is stronger than mine.)

You can also use the :browse oldfiles command to get a menu with numbers.


The best way that I use is

:browse oldfiles  

Easiest way on vim.


There is mru.vim, which adds the :MRU command.


Very late answer here ... expounding on @sarnolds answer - You can view the file history with the oldfiles command @see :h oldfiles or :h viminfo


Furthermore, you can have fine-grained file management with views and sessions ... @see :h mkview and :h mksession for specifics ...


There is an Swiss knife of file switching CtrlP plugin, which is also part of janus distributive. It has :CtrlPMRU command with smart lookup among recently used files.

Note: CtrlP maintains its own list of most recent used files in g:ctrlp_cache_dir."mru/cache.txt". It is not reusing viminfo (set viminfo?) which contains a list of file marks. This is useful if you want to clear this list.


The CtrlP plugin lets you search through your recently used files as well as files in the current directory with this command:

nnoremap <c-p> :CtrlPMixed<cr>  

This saves you the hassle of having to deal with built in Vim commands and the MRU plugin, neither of which let you do fuzzy file searching, which is critical when working on larger projects.


MRU has lot of features as explained here: http://www.thegeekstuff.com/2009/08/vim-editor-how-to-setup-most-recently-used-documents-features-using-mru-plugin/


Use ":bro ol" then press the number that corresponds to the file you want to open.


As seen in the comments here (http://stackoverflow.com/questions/571955/undo-close-tab-in-vim), your file is probably still open in a buffer:

:ls " get the buffer number  :tabnew +Nbuf " where N is the buffer number  

For example you can reopen the third buffer in a new tab (use :e instead if you don't use tabs):

:tabnew +3buf  


One more plugin that let's you choose file from the list of last modified ones is staritfy. It replaces your start screen with a list of most recently modified files. You can always open this page later using :Startify command.


:ls to list recent files with buffer number on left-hand column.

Then do :b{buffer-number} to jump there.

Example: :ls shows list of files. I want to jump to third-last file I visited. :b3 will take me there.

For faster searching, map :ls to something, e.g. <Leader>. in your .vimrc file.


You might be able to access the list from the command line with:

grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'"$HOME"','  


grep '^>' ~/.viminfo  #find the list of recent files  cut -c3-              #remove the first 2 characters  sed 's,~,'"$HOME"','  #replace ~ with absolute path  

You could have a bash alias if you use this regularly

alias vim_mru="grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'\"$HOME\"','"  


Also you can go back with ctrl+O.


Adding my 2 cents here because fzf was was not mentioned earlier, which is such a wonderful tool:
fzf.vim has a :History command that lets you search the most recent used files in a fuzzy manner.
I customize this further by not letting fzf reorder the list to the best match: I want the order to keep being the order in which these files were used.
I added the following in my .vimrc to override the default History command defined by the fzf.vim plugin:

    command! -bang -nargs=* History        \ call fzf#vim#history({'options': '--no-sort'})  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »