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 #<N
N来手动完成此操作,其中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中添加了以下内容以覆盖History
fzf.vim插件定义的默认命令:
command! -bang -nargs=* History
\ call fzf#vim#history({'options': '--no-sort'})
:ls
在左侧列中列出带有缓冲区编号的最新文件。
然后:b{buffer-number}
跳到那里。
示例:
:ls
显示文件列表。我想跳到我访问的倒数第二个文件。
:b3
会带我到那里。
为了更快地搜索,请映射:ls
到某些内容,例如<Leader>.
在您的.vimrc文件中。