View a list of recent documents in Vim

VimRecent Documents

Vim Problem Overview


Is there a way to view the list of recent documents you've opened in Vim?

I realize I could view the cursor jump list, :ju, and then go to a cursor position in the list but this is not ideal because there will be multiple listings of the same document in the list.

Is there another command which would do what I'm looking for?

Vim Solutions


Solution 1 - Vim

Don't use a plugin, unless you want a nice menu. From Vim Documentation: Starting (or :help old):

:ol[dfiles]

Then to open one of the listed files, use: '0, '1, '2, ... '9


List the files that have marks stored in the viminfo file.

:bro[wse] ol[dfiles][!]

List file names as with :oldfiles, and then prompt for a number. When the number is valid that file from the list is edited. Use ! to abandon a modified buffer.

Solution 2 - Vim

The Most Recently Used (MRU) plugin provides an easy access to a list of recently opened/edited files in Vim. This plugin automatically stores the file names as you open/edit them in Vim.

http://www.vim.org/scripts/script.php?script_id=521

Solution 3 - Vim

Besides :oldfiles, fzf.vim has :History.

Solution 4 - Vim

Start Vim and hit Ctrl-o-o to open previously edited file. Keep hitting o (while still pressing the Ctrl key) to cycle back through earlier files. See https://dev.to/jovica/3-little-known-but-useful-vim-tips-1pbg

Solution 5 - Vim

vim plugin: minibufexpl may help you. the opened file list is displayed on the top or bottom of the screen:

enter image description here

in vim normal mode, type :b${bufid} to jump to the _${bufid}th buffer, for example: type :b13 to jump to the 13th buffer, ie. ngx_mail_ssl_module.c.

besidies, you can map some convenient bindings in your vimrc, such as:

" ------------------------------- minibufexpl mappings -----------------------------------
"let g:miniBufExplSplitBelow=1
nnoremap <silent> <leader>bn :bn<cr>
nnoremap <silent> <leader>bp :bp<cr>
nnoremap <silent> <leader>bf :bf<cr>
nnoremap <silent> <leader>bl :bl<cr>
nnoremap <silent> <leader>bt :TMiniBufExplorer<cr>

Get the plugin from here: https://github.com/fholgado/minibufexpl.vim

Solution 6 - Vim

In addition to oldfiles there's a nice thing called tinyMRU.

> Vim-tinyMRU's only purpose is to provide an intuitive alternative to the built-in :oldfile command. Nothing more, nothing less.

It's very simple:

https://github.com/romainl/vim-tinyMRU/blob/master/plugin/tinymru.vim

Solution 7 - Vim

A good plugin is https://github.com/Shougo/denite.nvim

You can call :Denite file_old in order to have fuzzy search on the list of old files. In particular, just hitting Enter will re-open the last opened file. Assigning a shortcut to this is useful:

nnoremap <leader>o :Denite<space>file_old<CR>

This saves few keystrokes compared to :browse oldfiles, q, 1, Enter

Solution 8 - Vim

The easiest way for me to access recent files is to add the following to one's .gvimrc file:

let g:netrw_sort_by           = 'time'

let g:netrw_sort_direction    = 'r'

These lines get netrw to sort files by those most recently modified. Then one simply calls :e. and selects the file one wants.

This solution presupposes files are saved in one main directory so specified in .gvimrc. E.g.

cd ~/vim

Solution 9 - Vim

No directly the answer but related.

you can define aliases to open the last opened file(s) by vim:

alias vil='vim -c "normal! '\''0"' # open the last file
alias vil1='vim -c "normal! '\''1"'  # open the second last file ...
alias vil2='vim -c "normal! '\''2"'

Solution 10 - Vim

:ol works, but why not use fuzzy search to get the exact match quickly from a long list of file?

There's a very handy plugin, ctrlp which allows you to use :CtrlPMRU, and you can quickly get what you looking for.

For many many years, ctrlp is one of the first thing I would install for vim!

https://github.com/ctrlpvim/ctrlp.vim

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionchrisView Question on Stackoverflow
Solution 1 - VimAlex BolotovView Answer on Stackoverflow
Solution 2 - VimCraig LebakkenView Answer on Stackoverflow
Solution 3 - Vimuser1338062View Answer on Stackoverflow
Solution 4 - VimLyle ZView Answer on Stackoverflow
Solution 5 - VimZHOU LingView Answer on Stackoverflow
Solution 6 - VimbadteethView Answer on Stackoverflow
Solution 7 - VimHopeView Answer on Stackoverflow
Solution 8 - VimdevcomView Answer on Stackoverflow
Solution 9 - VimAhmadView Answer on Stackoverflow
Solution 10 - VimkenView Answer on Stackoverflow