我希望能够访问在GVim中打开和关闭的最近文件。由于我经常打开和关闭GVim,因此我希望能够访问以前会话中的最近文件。
GVim是否像Word和其他桌面应用程序一样在某个地方存储最近文件呢?如何访问它们?
我希望能够访问在GVim中打开和关闭的最近文件。由于我经常打开和关闭GVim,因此我希望能够访问以前会话中的最近文件。
GVim是否像Word和其他桌面应用程序一样在某个地方存储最近文件呢?如何访问它们?
至少终端版的vim会将前十个文件存储在~/.viminfo
的filemarks部分中。您可以使用'0
,'1
,'2
,... '9
来在它们之间跳转。
(除非您比我记忆力更强,否则可能只有对'0
有用,以便返回您最后编辑的文件。)
您还可以使用:browse oldfiles
命令获取带有数字的菜单。
0
-9
用作导航标记,请不要手动标记它们。 - yuan:browse old
查看文件列表,然后输入 q
来选择要编辑的文件。 - songhir:e #<1
会打开上次编辑的文件,详见:h c_#<
。 - Hotschkerm
文件。 - tandem我使用的最佳方式是
:browse oldfiles
在vim上最简单的方式。
很晚的回答……展开@sarnolds的答案-您可以使用oldfiles命令查看文件历史记录@see:h oldfiles或:h viminfo
:oldfiles
此外,你可以通过视图和会话进行细粒度文件管理...有关详细信息,请参阅 :h mkview 和:h mksession。:oldfiles
列表中获知文件序号后,了解如何打开文件实际上是很有用的。您可以使用交互式的:browse
命令来执行此操作,如@sarnold所解释的那样,但也可以通过使用:e #<N>
手动实现,其中N是oldfiles
列表中的一个数字。 - Krzysztof Adamski:bro ol
命令,然后按下对应的文件编号即可打开相应的文件。因为之前的回答中没有提到如此好用的工具fzf,我想在这里加入我的两分意见:
fzf.vim 有一个:History
命令,可以让你以模糊和实时搜索的方式查找最近使用的文件。
我通过不让 fzf 重新排列搜索结果列表来自定义(默认)行为:我希望所有匹配文件名的顺序保持这些文件最后使用的顺序。
为了实现这个自定义,我在我的 .vimrc 文件中添加了以下内容,覆盖了 fzf.vim 插件定义的默认 History
命令:
command! -bang -nargs=* History
\ call fzf#vim#history({'options': '--no-sort'})
编辑:
目前我只使用一个neovim插件telescope.nvim,它与fzf.vim非常相似,它具有命令:Telescope old_files
。并且它可以将fzf算法用作后端的排序算法(目前建议使用比默认排序器更好的算法)。
它看起来更漂亮,但根据上下文可能会慢一些。它不像fzf那样成熟,但对我来说更容易定制,全部都是lua脚本。
如果您只是使用neovim,请一定值得考虑。
MRU插件有很多特性,如下所述:http://www.thegeekstuff.com/2009/08/vim-editor-how-to-setup-most-recently-used-documents-features-using-mru-plugin/
(MRU是一种Vim编辑器的插件,可以帮助用户快速访问最近使用过的文件。)使用CtrlP插件,您可以使用以下命令搜索最近使用的文件以及当前目录中的文件:
nnoremap <c-p> :CtrlPMixed<cr>
这样可以避免您必须处理内置的Vim命令和MRU插件的麻烦,这两者都无法进行模糊文件搜索,在处理较大项目时非常重要。
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
alias vim_mru="grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'\"$HOME\"','"