Просмотр списка последних документов в 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, а не о встроенной команде, заключается в том, что она позволяет фильтровать имена файлов и завершение табуляции, вместо того, чтобы каждый раз иметь дело с громоздким гигантским списком.
Бен
9

Запустите Vim и нажмите Ctrl-oo, чтобы открыть ранее отредактированный файл. Продолжайте нажимать o (удерживая нажатой клавишу Ctrl), чтобы вернуться к предыдущим файлам. См. Https://dev.to/jovica/3-little-known-but-useful-vim-tips-1pbg.

Лайл З
источник
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
DEVCOM
источник