有没有办法查看你在 Vim 中打开的最近文档列表?我意识到我可以查看光标跳转列表,:ju
然后转到列表中的光标位置,但这并不理想,因为列表中会有多个相同文档的列表。是否有另一个命令可以满足我的要求?
10 回答
不要使用插件,除非你想要一个漂亮的菜单。来自Vim 文档:开始(或:help old
):
:ol[dfiles]
然后打开列出的文件之一,使用:'0
, '1
, '2
, ...'9
列出文件中存储有标记的viminfo
文件。
:bro[wse] ol[dfiles][!]
用 列出文件名:oldfiles
,然后提示输入一个数字。当数字有效时,列表中的文件将被编辑。用于!
放弃修改后的缓冲区。
最近使用 (MRU) 插件提供了对 Vim 中最近打开/编辑的文件列表的轻松访问。当您在 Vim 中打开/编辑文件时,该插件会自动存储文件名。
此外:oldfiles
,fzf.vim有:History
.
启动 Vim 并按 Ctrl-oo 打开以前编辑的文件。继续按 o(同时仍按 Ctrl 键)以循环浏览较早的文件。见https://dev.to/jovica/3-little-known-but-useful-vim-tips-1pbg
vim 插件:minibufexpl可以帮助你。打开的文件列表显示在屏幕的顶部或底部:
在 vim 普通模式下,键入:b${bufid}跳转到第${bufid}_th缓冲区,例如:键入:b13跳转到第13个缓冲区,即。ngx_mail_ssl_module.c。
另外,您可以在 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>
除了oldfiles
有一个好东西叫做tinyMRU。
Vim-tinyMRU 的唯一目的是提供一个直观的替代内置 :oldfile 命令。不多也不少。
这很简单:
https://github.com/romainl/vim-tinyMRU/blob/master/plugin/tinymru.vim
一个好的插件是https://github.com/Shougo/denite.nvim
您可以调用:Denite file_old
以便对旧文件列表进行模糊搜索。特别是,只需点击Enter
将重新打开上次打开的文件。为此分配快捷方式很有用:
nnoremap <leader>o :Denite<space>file_old<CR>
:browse oldfiles
与, q
, 1
,相比,这节省了很少的击键次数Enter
我访问最近文件的最简单方法是将以下内容添加到一个人的 .gvimrc 文件中:
let g:netrw_sort_by = 'time'
let g:netrw_sort_direction = 'r'
这些行让 netrw 根据最近修改的文件对文件进行排序。然后一个简单的调用:e。并选择一个想要的文件。
此解决方案的前提是文件保存在 .gvimrc 中指定的一个主目录中。例如
cd ~/vim
没有直接的答案,但相关。
您可以定义aliases
通过 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"'
:ol
有效,但为什么不使用模糊搜索从一长串文件中快速获取完全匹配?
有一个非常方便的插件,ctrlp,它可以让你使用:CtrlPMRU
,你可以快速得到你要找的东西。
多年来,ctrlp 是我为 vim 安装的第一件事!