Answers:
至少terminal vim将前十个文件存储~/.viminfo在filemarks部分中。您可以使用'0,'1,'2,... '9它们之间跳跃。
('0除非您的内存比我的要大,否则这可能仅对返回到正在编辑的最后一个文件有用。)
您也可以使用该:browse oldfiles命令获取带有数字的菜单。
0- 9作为商标用于导航,不用手动将它们标记
:browse old获取文件列表。然后输入q以选择要编辑的文件。
:e #<1打开最后一个文件,请参阅:h c_#<。
rm使用上述方法恢复了错误删除的文件。
我使用的最好方法是
:browse oldfiles
在vim上最简单的方法。
这里很晚的答案... @sarnolds答案的详细解释-您可以使用oldfiles命令@see查看文件历史:@h oldfiles或:h viminfo
:oldfiles
此外,您可以使用视图和会话进行细粒度的文件管理... @see:h mkview和:h mksession了解详细信息...
:oldfiles。可以使用:browse命令以交互方式执行此操作,如@sarnold所述,但也可以通过使用:e #<NN来手动完成此操作,其中N是oldfiles列表中的数字。
有一把瑞士人的文件切换CtrlP插件刀,它也是janus发行版的一部分。它具有:CtrlPMRU在最近使用的文件中进行智能查找的命令。
注意:中
CtrlP维护自己的最新使用文件列表g:ctrlp_cache_dir."mru/cache.txt"。它不会重复使用set viminfo?包含文件标记列表的viminfo()。如果您要清除此列表,这将很有用。
该CtrlP插件可以让您在最近使用的文件通过搜索,以及与该命令将当前目录下的文件:
nnoremap <c-p> :CtrlPMixed<cr>
这省去了处理Vim内置命令和MRU插件的麻烦,而这两个命令都不会让您进行模糊文件搜索,这在处理大型项目时至关重要。
如此处的评论所示(http://stackoverflow.com/questions/571955/undo-close-tab-in-vim),您的文件可能仍在缓冲区中打开:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
例如,您可以在新标签页中重新打开第三个缓冲区(如果不使用标签页,请使用:e代替):
:tabnew +3buf
您可能可以使用以下命令从命令行访问列表:
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
如果您定期使用bash别名
alias vim_mru="grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'\"$HOME\"','"
因为前面没有提到fzf,所以在这里加上2美分,这是一个很棒的工具:
fzf.vim有一个:History命令,可以让您模糊搜索最近使用的文件,并在键入方式时进行搜索。
我通过不让fzf将搜索结果列表重新排序为最佳匹配来自定义此命令的(默认)行为:我希望所有匹配文件名的顺序保持最后使用这些文件的顺序。
为了完成此定制,我在.vimrc中添加了以下内容以覆盖Historyfzf.vim插件定义的默认命令:
command! -bang -nargs=* History
\ call fzf#vim#history({'options': '--no-sort'})
:ls 在左侧列中列出带有缓冲区编号的最新文件。
然后:b{buffer-number}跳到那里。
示例:
:ls显示文件列表。我想跳到我访问的倒数第二个文件。
:b3会带我到那里。
为了更快地搜索,请映射:ls到某些内容,例如<Leader>.在您的.vimrc文件中。