2010-01-22 17 views
32

Vim'de, geçerli sekme ile son etkin sekme arasında hızla geçiş yapmanın bir yolu var mı? '' Yolunun şekli, mevcut hat ile son aktif hat arasında geçiş yapar. Eklentiler/klavye eşlemeleri/voodoo hepsi kabul edilebilir. senin .vimrc içindeVIM'de son etkin sekmeye geç

cevap

55

koyun bu:

let g:lasttab = 1 
nmap <Leader>tl :exe "tabn ".g:lasttab<CR> 
au TabLeave * let g:lasttab = tabpagenr() 

Sonra normal modda, tip \tl son görüntülediğiniz sekmesine takas.

+0

bu sadece gvim mi? sadece mac? Iterm2 içinde mac üzerinde çalışıyorum gibi görünmüyor (sadece terminali vim modu) –

+1

İngiltere klavye düzeni için bu daha kullanışlı buldu nmap : exe "tabn" .g: lasttab '.. Teşekkürler @LucasOman –

+0

' tt' ile eşleştirdim ancak bu bir çekicilik gibi çalıştı. Şampiyon cevap. –

3

Ben tamponlarını değil sekmeleri kullanın ama tamponlarını kullanmanın :b#
Temelleri kullanarak mevcut ve en son kullanılan tampon arasında geçiş mümkün duyuyorum şunlardır:

:e filename to open file in new buffer 
:bn to go to next buffer 
:bp to go to previous buffer 
:bd to close current buffer 
+2

Tamponlar üzerinde sekmeleri tercih etmemin tek nedeni, dosyaları birlikte gruplamak ve büyük bir oturumda işleri daha kolay bulmak için sekmeleri yeniden düzenleyebileceğim. –

+2

AFAIK, ayrıca, Ctrl-6'yı da kullanabilirsiniz (inanıyorum ki "C#) yerine": b # " – akavel

+0

' 'veya' ctrl' '' '' '' '' '' '' '' '' '' '' '' '' '' 'dır, gerçekten, son arabelleğe geçer . Eğer '' ls' yazıp en az 2 arabelleğe sahipseniz, '% '(geçerli arabellek) isminin soluna ve diğer adı ise # # (son arabellek) isminin soluna kalan arabelleği göreceksiniz. Yani, 'etkin bir şekilde:' b # 'yapar. Aslında, eğer: 'echo @ #' ziyaret ettiğiniz önceki arabayı göreceksiniz. Buna ek olarak, eğer # # = "foo.bar" işlevine izin verirseniz, '' davranışını değiştirecektir, çünkü bu işlev '' # '(' @ # ') kayıt defterine dayanır. Ben de b'nin işlevinin değiştirileceğini düşünüyorum, ama emin değilim. – dylnmc

0

potansiyel sorununugiderin bir sekme kapatıldığında :

" Switch to last-active tab 
if !exists('g:Lasttab') 
    let g:Lasttab = 1 
    let g:Lasttab_backup = 1 
endif 
autocmd! TabLeave * let g:Lasttab_backup = g:Lasttab | let g:Lasttab = tabpagenr() 
autocmd! TabClosed * let g:Lasttab = g:Lasttab_backup 
nmap <silent> <Leader>` :exe "tabn " . g:Lasttab<cr>