Chiudo una scheda in vim e mi rendo immediatamente conto che è necessario riaprirla nuovamente per qualcosa. C'è un modo per annullare chiudere la scheda in Vim 7.2?Annulla Chiudi scheda in Vim
risposta
Sto usando un MRU (most recently used files) plugin. Così posso modificare gli ultimi 30 file che ho appena modificato
Ecco i MRU plug-in dei metadati:
File: mru.vim
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
Version: 3.2 Last Modified:
September 22, 2008
Uso
Per elencare e modificare i file dall'elenco MRU, è possibile usa il comando ": MRU". Il comando ": MRU" visualizza l'elenco dei file MRU in una finestra temporanea di Vim. Se la finestra MRU è già aperta, l'elenco MRU visualizzato nella finestra viene aggiornato.
Riassumi l'utilizzo di base? –
Non capisco questa risposta ... Sembra che stia raccomandando l'uso di un plugin? – Carpetsmoker
@Carpetsmoker Sì, è: mru.vim. – trusktr
La risposta semplice è no, non c'è niente di built-in.
Ma una soluzione praticabile sarebbe utilizzare un plug-in come l'eccellente BufExplorer. Dal momento che il valore predefinito è messa in vendita di buffer utilizzati più di recente in primo luogo, la riapertura di una scheda chiusa sarebbe semplice come premere \bet
Come menzionato da Lucia, è necessario prima andare giù con '
Il file è probabilmente ancora aperto in un buffer:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
di riaprire buffer di 18, per esempio:
:tabnew +18buf
utilizzare il plug-in di Ben consigliato: BufExplorer Github Mirror
Nella sua risposta si dovrebbe premere <Leader>be<Down>t
. L'aggiunta di un collegamento bit:
map <silent><leader>t <leader>be<Down>t
Così che semplicemente <leader>t
avrebbe fatto il lavoro.
:tabnew#
riapre file chiuso di recente in una nuova scheda
Edit: Si prega di utilizzare la risposta di greyfade. Non mi piace la mia risposta, ma la tengo qui per riferimenti e informazioni utili sui commenti.
Non ha funzionato per me - Vim 7.4 –
Strano, sembra che abbia funzionato all'inizio ora sta aprendo i buffer indipendenti. –
'#' è l'ultimo file modificato nella finestra corrente. La chiusura di una scheda non registra il file come alternativa ('#'). Devi cercarlo per numero di buffer (': ls') – Sukima
Se ci fosse un evento BufferClose
questo sarebbe facile ... but it seems that it is not possible since it is not possible for window creation.
Ma nel caso di schede è possibile rilevare se una scheda è stata chiusa tenendo un conto di tabulazione e contando la differenza tra TabLeave
e TabEnter
.
Uso: <leader>tr
riapre l'ultima scheda chiusa in una nuova scheda (supponendo che la scheda aveva solo un singolo buffer):
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>
questo può essere spostato a vi.stackexchange.com? – Sukima
Ciao, [questo bit di vimScript e il plugin windowlayout] (https: //www.reddit.com/r/vim/comments/3ke941/undo_close_tab/cux8gh2) fa il lavoro: riapre la scheda che hai appena chiuso e riporta il layout della finestra che avevi. –