2009-02-21 16 views
69

Ich schließe eine Registerkarte in Vim und sofort erkennen, ich muss es wieder für etwas öffnen. Gibt es eine Möglichkeit, den Tab in Vim 7.2 rückgängig zu machen?Rückgängig Tab in Vim schließen

+0

kann dies zu vi.stackexchange.com verschoben werden? – Sukima

+0

Hallo, [dieses Bit von vimscript und das Fensterlayout - Plugin] (https: //www.reddit.com/r/vim/comments/3ke941/undo_close_tab/cux8gh2) erledigt den Job: Er öffnet den Tab, den Sie gerade geschlossen haben, und bringt das Fenster-Layout zurück, das Sie hatten. –

Antwort

9

Ich verwende eine MRU (most recently used files) plugin. So kann ich die letzten 30 Dateien bearbeiten ich nur

bearbeitet haben

Hier sind die MRU Plugin Metadaten:

File: mru.vim 
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) 
Version: 3.2 Last Modified: 
September 22, 2008 

Nutzungs

aufzulisten und Bearbeiten von Dateien aus der MRU-Liste, können Sie Verwenden Sie den Befehl ": MRU". Der Befehl ": MRU" zeigt die MRU-Dateiliste in einem temporären Vim-Fenster an. Wenn das MRU-Fenster bereits geöffnet ist, wird die MRU-Liste aktualisiert, die im Fenster angezeigt wird.

+5

Kannst du die grundlegende Verwendung zusammenfassen? –

+0

Ich verstehe diese Antwort nicht ... Das sieht so aus, als ob es die Verwendung eines Plugins empfiehlt? – Carpetsmoker

+0

@Carpetsmoker Ja, es ist: mru.vim. – trusktr

6

Einfache Antwort ist nein, es ist nichts eingebaut.

Aber eine praktikable Lösung wäre, ein Plug-In wie das ausgezeichnete BufExplorer zu verwenden. Da es standardmäßig zur Liste der zuletzt verwendeten Puffer zunächst eine geschlossene Registerkarte Wiedereröffnung wäre so einfach wie das Drücken \bet

+0

Wie von Lucia erwähnt, müssen Sie zuerst mit ' be t' gehen, damit es funktioniert. –

114

Ihre Datei ist wahrscheinlich noch offen in einem Puffer:

:ls " get the buffer number 
:tabnew +Nbuf " where N is the buffer number 

Zum erneuten Öffnen Puffer 18, für Beispiel:

:tabnew +18buf 
+0

funktioniert nicht für mich – Chris

+5

Es tut für mich. Ich habe es kurz vor dem Posten ausprobiert. – greyfade

+5

': tabnew N' funktionierte nicht für mich. Was ich mache ist ': tabnew' und dann': bN' wobei N die Puffernummer ist – alf

1

Verwenden Sie das Plug-in Ben Empfehlung: BufExplorer Github Mirror

In seiner Antwort würde man <Leader>be<Down>t drücken müssen. Hinzufügen eines Bit Abkürzung

map <silent><leader>t <leader>be<Down>t 

Damit einfach <leader>t würde die Arbeit machen.

23
:tabnew# 

Wiedereröffnung kürzlich geschlossene Datei in neuem Tab


bearbeiten: Bitte greyfade Antwort verwenden. Ich mag meine Antwort nicht, aber ich halte sie hier für Referenzen und nützliche Kommentarinformationen.

+0

Hat nicht für mich gearbeitet - Vim 7.4 –

+0

Seltsam, scheint wie es zuerst funktioniert hat, jetzt öffnet es nicht verwandte Puffer. –

+0

'#' ist die zuletzt bearbeitete Datei im aktuellen Fenster. Das Schließen eines Tabs registriert die Datei nicht als Alternative ('#'). Sie müssen es nach Puffernummer suchen (': ls') – Sukima

1

Wenn es ein BufferClose Ereignis wäre, wäre dies einfach ... but it seems that it is not possible since it is not possible for window creation.

Aber im Fall von Tabs können wir erkennen, wenn ein Tab geschlossen wurde, indem wir eine Tab-Anzahl halten und die Differenz zwischen TabLeave und TabEnter zählen.

Verbrauch: <leader>tr öffnet den letzten geschlossenen Tab auf einem neuen Tab (die Registerkarte angenommen hatte nur einen einzigen Puffer):

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> 
Verwandte Themen