Просмотр списка последних документов в Vim


131

Есть ли способ просмотреть список последних документов, которые вы открывали в Vim? Я понимаю, что могу просмотреть список переходов курсора, :juа затем перейти к позиции курсора в списке, но это не идеально, потому что в списке будет несколько списков одного и того же документа. Есть ли другая команда, которая сделает то, что я ищу?

Ответы:


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

28
Чтобы открыть один из перечисленных файлов, используйте: '0,' 1, '2, ...' 9. (Мне пришлось перейти к другому вопросу, чтобы найти этот ответ, поэтому я публикую его здесь.)
Stew

3
@Stew ссылку на этот вопрос? Мне кажется, это не работает. [ОБНОВЛЕНИЕ] на самом деле у меня это работает :browse oldfiles- извините!
Аарон Гибралтер

7
Вам не нужно полностью прокручивать старый список файлов до конца, чтобы открыть указанный файл. Вы можете запомнить номер и нажать q для выхода. Затем в обычном режиме нажмите '0,' 1, '2, ..., чтобы открыть файл. Я часто нахожу, что нажатие q выполняется быстрее, чем прокрутка вниз.
Джеймс Лоусон,

28

Плагин Most Recently Used (MRU) обеспечивает легкий доступ к списку недавно открытых / отредактированных файлов в Vim. Этот плагин автоматически сохраняет имена файлов, когда вы открываете / редактируете их в Vim.

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


2
Это прекрасно работает. Думаю, я удивлен, узнав, что плагин необходим.
Крис

2
Приятная мысль о MRU, а не о встроенной команде, заключается в том, что она позволяет фильтровать имена файлов и завершение табуляции, вместо того, чтобы каждый раз иметь дело с громоздким гигантским списком.
Бен



2

Плагин 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>

Загрузите плагин отсюда: 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 oldfiles, q, 1,Enter


0

Самый простой способ получить доступ к недавним файлам - это добавить в свой файл .gvimrc следующее:

let g:netrw_sort_by           = 'time'

let g:netrw_sort_direction    = 'r'

Эти строки заставляют netrw сортировать файлы по последним измененным. Затем просто звонят: e. и выбирает нужный файл.

Это решение предполагает, что файлы сохраняются в одном основном каталоге, указанном в .gvimrc. Например

cd ~/vim
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.