在Vim中查看最近的文档列表


130

有没有办法查看您在Vim中打开的最近文档的列表?我意识到我可以查看游标跳转列表,:ju然后转到列表中的游标位置,但这并不理想,因为列表中将存在同一文档的多个列表。还有另一个命令可以满足我的需求吗?

Answers:


200

不要使用插件,除非您想要一个漂亮的菜单。从Vim文档中:开始(或:help old):

:ol[dfiles]

然后列出的文件打开一个,用途:'0'1'2,...'9


列出文件中存储了标记的viminfo文件。

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

像一样列出文件名:oldfiles,然后提示输入数字。当数字有效时,将编辑列表中的文件。使用!放弃修改过的缓冲区。


1
感谢您的回答,但是当我查看“启动此命令”的帮助时,它不像您提供的链接中那样。同样尝试使用此命令也会产生错误“不是编辑器命令”。为什么是这样?
克里斯,

1
为我工作。@chris您知道括号内的位是可选的,对吗?即“:bro ol”是“:browse oldfiles”的缩写
Mr_Chimp 2011年

28
要打开列出的文件之一,请使用:'0,'1,'2,...'9。(我不得不去另一个问题才能找到答案,所以我将其发布在这里。)
Stew

3
@炖到这个问题的链接?那些似乎不适合我。[UPDATE]实际上对我有用:browse oldfiles-抱歉!
亚伦·吉布勒特

7
您不必一直滚动到旧文件列表的底部即可打开列出的文件。您可以记住数字,然后按q退出。然后在正常模式下,按“ 0”,“ 1、​​2” ...以打开文件。我经常发现按q比滚动到底部更快。
詹姆斯·劳森

28

最近使用(MRU)插件可轻松访问Vim中最近打开/编辑的文件列表。当您在Vim中打开/编辑文件名时,该插件会自动存储文件名。

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


2
很好。我想我很惊讶学习一个插件是必要的。
克里斯,

2
关于MRU而不是内置命令的一个很好的想法是,它允许筛选文件名和制表符完成,而不是每次都处理笨拙的巨型列表。
2014年



2

vim插件:minibufexpl可能会帮助您。打开的文件列表显示在屏幕的顶部或底部:

在此处输入图片说明

在vim正常模式下,键入:b $ {bufid}跳转到$ {bufid} _th缓冲区,例如:键入:b13跳转到第13个缓冲区,即。ngx_mail_ssl_module.c。

besidies,您可以在vimrc中映射一些方便的绑定,例如:

" ------------------------------- 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>

从此处获取插件:https : //github.com/fholgado/minibufexpl.vim



2

一个好的插件是https://github.com/Shougo/denite.nvim

您可以致电:Denite file_old以便对旧文件列表进行模糊搜索。特别是,仅Enter单击将重新打开最后打开的文件。为此分配一个快捷方式非常有用:

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

与此相比,可以节省敲几下键盘:browse oldfilesq1Enter


0

我访问最近文件的最简单方法是将以下内容添加到一个人的.gvimrc文件中:

let g:netrw_sort_by           = 'time'

let g:netrw_sort_direction    = 'r'

这些行使netrw可以按最近修改的文件对文件进行排序。然后,一个人简单地调用:e。并选择一个想要的文件。

该解决方案假定文件被保存在.gvimrc中指定的一个主目录中。例如

cd ~/vim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.