Schließen Sie die Registerkarte "Schließen" in Vim
77
Ich schließe einen Tab in vim und stelle sofort fest, dass ich ihn für etwas erneut öffnen muss. Gibt es eine Möglichkeit, das Schließen der Registerkarte in Vim 7.2 rückgängig zu machen?
File: mru.vim
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
Version: 3.2 Last Modified:
September 22, 2008
Verwendung
Zum Auflisten und Bearbeiten von Dateien aus der MRU-Liste können Sie den Befehl ": MRU" verwenden. Der Befehl ": MRU" zeigt die MRU-Dateiliste in einem temporären Vim-Fenster an. Wenn das MRU-Fenster bereits geöffnet ist, wird die im Fenster angezeigte MRU-Liste aktualisiert.
Können Sie die grundlegende Verwendung zusammenfassen?
Ciro Santilli 法轮功 冠状 病 六四 事件 24
Ich verstehe diese Antwort nicht ... Es sieht so aus, als würde die Verwendung eines Plugins empfohlen?
Martin Tournoij
@Carpetsmoker Ja, es ist: mru.vim.
Trusktr
Dies ist nicht so nützlich, wenn Sie gerade 10 Dateien in Registerkarten geöffnet, zu einer der mittleren Dateien gewechselt und diese dann geschlossen haben, da die MRU die letzten 10 geöffneten Dateien nur in der Reihenfolge anzeigt, in der sie geöffnet wurden, und natürlich hätten Sie mehr und mehr öffnen können
Verlieren
140
Ihre Datei ist wahrscheinlich noch in einem Puffer geöffnet:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
:tabnew Nhat bei mir nicht funktioniert. Was ich tue ist :tabnewund :bNwo N die Puffernummer ist
alf
@alfonso: Bei dem Befehl ist :tabnew +NbufN die Puffernummer . Es muss ein + vorangestellt und mit dem Wort "buf" versehen werden.
Greyfade
5
Ein Beispiel dafür, was @greyfade bedeutete:tabnew +18buf
Eric Hu
3
Sie könnten sogar tun: vsp + [bufferNumber] buf hat mir geholfen, den geschlossenen Split in meinem vim wieder zu öffnen
3emad
4
Der Grund, warum dies nicht funktioniert, ist, dass +es sich um eine Zeilenreferenz handelt, NICHT um eine Pufferreferenz, die #nicht +wie in verwendet wird :tabe #5, um Puffer 5 in einer neuen Registerkarte zu öffnen.
Sukima
31
:tabnew#
Öffnet die kürzlich geschlossene Datei in einem neuen Tab erneut
Bearbeiten : Bitte verwenden Sie die Antwort von greyfade. Ich mag meine Antwort nicht, aber ich behalte sie hier für Referenzen und nützliche Kommentarinformationen.
Seltsam, scheint, als hätte es zuerst funktioniert, jetzt öffnet es nicht verwandte Puffer.
#ist die zuletzt bearbeitete Datei im aktuellen Fenster. Durch das Schließen einer Registerkarte wird die Datei nicht als Alternative registriert ( #). Sie müssen es nach :ls
Puffernummer
Es funktioniert mehr als perfekt, wenn Sie splitorientiert sind.
Al.G.
Fehleraufforderung: "E194: Kein alternativer Dateiname als Ersatz für '#'"
Scott Yang
6
Einfache Antwort ist nein, es ist nichts eingebaut.
Eine praktikable Lösung wäre jedoch die Verwendung eines Plug- Ins wie dem hervorragenden BufExplorer . Da standardmäßig zuerst die zuletzt verwendeten Puffer aufgelistet werden, ist das erneute Öffnen einer geschlossenen Registerkarte so einfach wie das Drücken\bet
Bei Registerkarten können wir jedoch feststellen, ob eine Registerkarte geschlossen wurde, indem wir die Anzahl der Registerkarten beibehalten und die Differenz zwischen TabLeaveund zählen TabEnter.
Verwendung: <leader>trÖffnet die zuletzt geschlossene Registerkarte auf einer neuen Registerkarte erneut (vorausgesetzt, die Registerkarte 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>
Antworten:
Ich verwende ein MRU-Plugin (zuletzt verwendete Dateien) . So kann ich die letzten 30 Dateien bearbeiten, die ich gerade bearbeitet habe
Hier sind die Metadaten des MRU-Plugins:
quelle
Ihre Datei ist wahrscheinlich noch in einem Puffer geöffnet:
So öffnen Sie den Puffer 18 erneut:
quelle
:tabnew N
hat bei mir nicht funktioniert. Was ich tue ist:tabnew
und:bN
wo N die Puffernummer ist:tabnew +Nbuf
N die Puffernummer . Es muss ein + vorangestellt und mit dem Wort "buf" versehen werden.tabnew +18buf
+
es sich um eine Zeilenreferenz handelt, NICHT um eine Pufferreferenz, die#
nicht+
wie in verwendet wird:tabe #5
, um Puffer 5 in einer neuen Registerkarte zu öffnen.Öffnet die kürzlich geschlossene Datei in einem neuen Tab erneut
Bearbeiten : Bitte verwenden Sie die Antwort von greyfade. Ich mag meine Antwort nicht, aber ich behalte sie hier für Referenzen und nützliche Kommentarinformationen.
quelle
#
ist die zuletzt bearbeitete Datei im aktuellen Fenster. Durch das Schließen einer Registerkarte wird die Datei nicht als Alternative registriert (#
). Sie müssen es nach:ls
Einfache Antwort ist nein, es ist nichts eingebaut.
Eine praktikable Lösung wäre jedoch die Verwendung eines Plug- Ins wie dem hervorragenden BufExplorer . Da standardmäßig zuerst die zuletzt verwendeten Puffer aufgelistet werden, ist das erneute Öffnen einer geschlossenen Registerkarte so einfach wie das Drücken
\bet
quelle
<leader>be<Down>t
damit es funktioniert.Verwenden Sie das Plug-In Ben Suggested: BufExplorer Github Mirror
In seiner Antwort müsste man drücken
<Leader>be<Down>t
. Hinzufügen einer kleinen Verknüpfung:Das würde also einfach
<leader>t
die Arbeit machen.quelle
Wenn es ein
BufferClose
Ereignis gäbe, wäre dies einfach ... aber es scheint, dass es nicht möglich ist, da es für die Fenstererstellung nicht möglich ist .Bei Registerkarten können wir jedoch feststellen, ob eine Registerkarte geschlossen wurde, indem wir die Anzahl der Registerkarten beibehalten und die Differenz zwischen
TabLeave
und zählenTabEnter
.Verwendung:
<leader>tr
Öffnet die zuletzt geschlossene Registerkarte auf einer neuen Registerkarte erneut (vorausgesetzt, die Registerkarte hatte nur einen einzigen Puffer):quelle