Zamykam zakładkę w vim i od razu zdaję sobie sprawę, że muszę ponownie ją otworzyć. Czy istnieje sposób na cofnięcie zamknięcia karty w Vimie 7.2?Cofnij zamknięcie Tab w Vim
Odpowiedz
Używam MRU (most recently used files) plugin. Więc mogę edytować ostatnie 30 plików Właśnie edytowane
Oto metadanych plugin MRU:
File: mru.vim
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
Version: 3.2 Last Modified:
September 22, 2008
Wykorzystanie
Aby wyświetlić i edytować pliki z listy MRU można użyj polecenia ": MRU". Polecenie ": MRU" wyświetla listę plików MRU w tymczasowym oknie Vima. Jeśli okno MRU jest już otwarte, lista MRU wyświetlana w oknie jest odświeżana.
Czy możesz podsumować podstawowe użycie? –
Nie rozumiem tej odpowiedzi ... Wygląda na to, że zaleca się użycie wtyczki? – Carpetsmoker
@Carpetsmoker Tak, to jest: mru.vim. – trusktr
Prosta odpowiedź brzmi: nie, nie ma nic wbudowanego.
Ale praktycznym rozwiązaniem byłoby użycie wtyczki, takiej jak znakomita BufExplorer. Ponieważ domyślne do wymieniające ostatnio stosowane bufory pierwsze, wznowienie zamkniętą kartę byłoby tak proste, jak naciśnięcie \bet
Jak wspomniano przez Lucia, musisz najpierw zejść z '
Plik jest prawdopodobnie nadal otwarte w buforze:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
do ponownego bufor 18, dla przykład:
:tabnew +18buf
pomocą plug-in Ben Sugerowana: BufExplorer Github Mirror
W swojej odpowiedzi trzeba by nacisnąć <Leader>be<Down>t
. Dodanie bitowy skrót:
map <silent><leader>t <leader>be<Down>t
Więc po prostu <leader>t
by wykonać pracę.
:tabnew#
Otwiera ponownie niedawno zamkniętego pliku w nowej karcie
Edycja: Proszę używać odpowiedzi greyfade użytkownika. Nie podoba mi się moja odpowiedź, ale zachowuję ją tutaj dla referencji i przydatnych informacji o komentarzach.
Nie działa dla mnie - Vim 7.4 –
Dziwne, wydaje się, jakby działało na początku, teraz otwiera niepowiązane bufory. –
'# 'jest ostatnim edytowanym plikiem w bieżącym oknie. Zamknięcie karty nie rejestruje pliku jako alternatywnego ('#'). Musisz sprawdzić go za pomocą numeru bufora (': ls') – Sukima
Jeśli zdarzenie miało miejsce BufferClose
, byłoby to łatwe ... but it seems that it is not possible since it is not possible for window creation.
Ale w przypadku kart możemy wykryć, czy zakładka została zamknięta, zachowując liczbę zakładek i licząc różnicę między TabLeave
i TabEnter
.
Zastosowanie: <leader>tr
ponownie otwiera ostatnią zamkniętą kartę na nowej karcie (zakładając kartę miał tylko jeden bufor):
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>
można to przeniósł się do vi.stackexchange.com? – Sukima
Witam, [ten fragment vimscript i wtyczki windowlayout] (https: //www.reddit.com/r/vim/comments/3ke941/undo_close_tab/cux8gh2) wykonuje zadanie: otwiera ponownie zamkniętą kartę i przywraca układ okna, który posiadałeś. –