Я закрываю вкладку vim и сразу понимаю, что мне нужно снова открыть ее для чего-то. Есть ли способ отменить закрытие вкладки в Vim 7.2?
Отменить закрытие вкладки в Vim
Ответ 1
Я использую плагин MRU (последние использованные файлы). Поэтому я могу редактировать последние 30 файлов, которые я только что редактировал.
Вот метаданные плагина MRU:
File: mru.vim
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
Version: 3.2 Last Modified:
September 22, 2008
Использование
Чтобы перечислить и отредактировать файлы из списка MRU, вы можете использовать команду ": MRU". Команда ": MRU" отображает список файлов MRU во временном окне Vim. Если окно MRU уже открыто, затем отображается список MRU в окне обновляется.
Ответ 2
Ваш файл, вероятно, все еще открыт в буфере:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
Чтобы повторно открыть буфер 18, например:
:tabnew +18buf
Ответ 3
:tabnew#
Открывает недавно закрытый файл на новой вкладке
Изменить. Используйте greyfade ответ. Мне не нравится мой ответ, но я держу его здесь для ссылок и полезной информации о комментариях.
Ответ 4
Простой ответ: нет, нет встроенного.
Но подходящим решением было бы использовать плагин, отличный от BufExplorer. Поскольку по умолчанию используется список самых последних использованных буферов, повторное открытие закрытой вкладки будет таким же простым, как нажатие \bet
Ответ 5
Используйте плагин Ben: BufExplorer Github Mirror
В его ответе нужно нажать <Leader>be<Down>t
. Добавление битового ярлыка:
map <silent><leader>t <leader>be<Down>t
Итак, просто <leader>t
выполнит работу.
Ответ 6
Если бы было событие BufferClose
, это было бы легко... но кажется, что это невозможно, так как невозможно создать окно.
Но в случае вкладок мы можем обнаружить, была ли закрыта вкладка, сохранив счет табуляции и подсчитав разницу между TabLeave
и TabEnter
.
Использование: <leader>tr
снова открывает последнюю закрытую вкладку на новой вкладке (предположим, что вкладка имела только один буфер):
let g:reopenbuf = expand('%:p')
function! ReopenLastTabLeave()
let g:lastbuf = expand('%:p')
let g:lasttabcount = tabpagenr('$')
endfunction
function! ReopenLastTabEnter()
if tabpagenr('$') < g:lasttabcount
let g:reopenbuf = g:lastbuf
endif
endfunction
function! ReopenLastTab()
tabnew
execute 'buffer' . g:reopenbuf
endfunction
augroup ReopenLastTab
autocmd!
autocmd TabLeave * call ReopenLastTabLeave()
autocmd TabEnter * call ReopenLastTabEnter()
augroup END
" Tab Restore
nnoremap <leader>tr :call ReopenLastTab()<CR>