MacVim'de sekmeleri değiştirmek için kısayol


16

MacVim'de Sekmeleri birinden diğerine geçirmek için herhangi bir kısayol var mı?

MacVim Sekmeleri

Kısayolları kendim .vimrc'de Sekme 1 için ⌘ + 1 ve Sekme 2 için ⌘ + 2 gibi bağlamak için ipuçları. Örneğin, tarayıcı sekmelerini değiştirmek gibi.

Yanıtlar:


17

MacVim, Mac OS'de gerçek bir program olduğundan, sekme anahtarlamasını herhangi bir programdaki komutları eşlediğiniz gibi eşleyebilirsiniz (son zamanlarda kişisel olarak öğrendiğim).

Sistem Tercihleri'ni açın, "Klavye" yi, ardından "Uygulama Kısayolları" nı seçin (soldaki menüden). Sağdaki menünün altında, yeni bir komut eklemek için artı (+) işaretini tıklayın. Uygulama için MacVim'i seçin ve menü başlığı için "Sonraki Sekmeyi Seç" yazın ve bir kısayol seçin (Cmd + sağ ok seçtim). Aynı işlemi "Önceki Sekmeyi Seç" komutu için de yapın.

"Sonraki Sekmeyi Seç" ve "Önceki Sekmeyi Seç" MacVim'de "Pencere" menüsünün altında bulunur. Bir uygulamanın menülerinden herhangi birinde gördüğünüz herhangi bir seçenek bu yöntem kullanılarak yeniden eşleştirilebilir.


1
Soru Macvim hakkında olduğundan, bu çözüm daha güzel. Tek şey, .vimrc'nizi diğer makinelere taşımak istediğinizde bu orada çalışmayabilir, ancak yine de bunu tercih ediyorum. Teşekkürler.
sabertooth

windows / linux i'de Alt + 1 ... 10'u sekme sırasına eşler. Mac'teki diğer her uygulama için olduğu gibi, komut + 1'in ilk sekmeye gitmesi iyi olurdu. Yine de bunu yapmak için? Bunun menüsü "Buffer >> <filename> (1)"
gcb

20

Elbette klavyeniz için OSXs sistem tercihleriyle kısayolları burada gösterildiği gibi değiştirebilirsiniz: Mac OS X'te Herhangi Bir Klavye Kısayolunu Yeniden Eşleme

Bazıları bunu kullanarak yapmayı tercih edebilir .vimrc:

if has("gui_macvim")
  " Press Ctrl-Tab to switch between open tabs (like browser tabs) to 
  " the right side. Ctrl-Shift-Tab goes the other way.
  noremap <C-Tab> :tabnext<CR>
  noremap <C-S-Tab> :tabprev<CR>

  " Switch to specific tab numbers with Command-number
  noremap <D-1> :tabn 1<CR>
  noremap <D-2> :tabn 2<CR>
  noremap <D-3> :tabn 3<CR>
  noremap <D-4> :tabn 4<CR>
  noremap <D-5> :tabn 5<CR>
  noremap <D-6> :tabn 6<CR>
  noremap <D-7> :tabn 7<CR>
  noremap <D-8> :tabn 8<CR>
  noremap <D-9> :tabn 9<CR>
  " Command-0 goes to the last tab
  noremap <D-0> :tablast<CR>
endif

1
Teşekkürler, ben bu çözümü seçilen çözüm tercih ederim çünkü satırların sonuna / başına gitmek için komut-sağ | sol-ok kullanın!
Brian Underwood

1
Ekleme modunda bu işlem nasıl yapılabilir?
Oliver Joseph Ash

Bu çok güzel! Teşekkürler! $$
Nik

12

Şunları yapabilirsiniz Sonraki Sekmeyi Seç ile + }ve Önceki Sekmeyi Seç ile +{

Üst karakter tuşu yalnızca [yerine değil }
, kısayol + shift+ ]veya + shift+ tuşlarına basmak için gereklidir. [
Bu kısayollar birçok uygulamada, yani Terminal'de çalışır


OP'nin istediği bu değil ... soru MacVim'deki sekmeleri değiştirmek değil, terminal değil
JESii

2
Ama bu bir MacVim klavye kısayolu. Komut tuşları terminal vim'e çevrilmez.
spoulson

MacVim kullanıyorum ve bu çözümde belirtildiği gibi, sekmeleri değiştirmek için zaten klavye komutları var. <kbd> ⌘ </kbd> + <kbd>} </kbd> yaparken <kbd> Shift </kbd> tuşunu kaçırıyordum.
brettlyman

5

Linux için ~ / .vimrc dosyamda aşağıdakiler var. İstediğinizi elde etmek için " <M-" dizisini " <D-" olarak değiştirebilmeniz gerekir:

" Meta+1-0 jumps to tab 1-10, Shift+Meta+1-0 jumps to tab 11-20:
let s:windowmapnr = 0
let s:wins='1234567890!@#$%^&*()'
while (s:windowmapnr < strlen(s:wins))
    exe 'noremap <silent> <M-' . s:wins[s:windowmapnr] . '> ' . (s:windowmapnr + 1) . 'gt'
    exe 'inoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-O>' . (s:windowmapnr + 1) . 'gt'
    exe 'cnoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-C>' . (s:windowmapnr + 1) . 'gt'
    exe 'vnoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-C>' . (s:windowmapnr + 1) . 'gt'
    let s:windowmapnr += 1
endwhile
unlet s:windowmapnr s:wins

3

Kendi eşlemelerinizi yapmaya ek olarak , yerleşik vim kısayolları da vardır. Ardından bir sayı deneyin gt. Örneğin: 3gtsizi 3. sekmeye götürür. Ayrıca yalnızca bir gtsonraki sekmeye gTgitmek veya bir öncekine gitmek için de yapabilirsiniz.

(7. sürümden beri, metin modu gvim olmayan sürümde bile sekmeler pişirilmiştir.)


Mükemmel! Bunu yapmanın yerel vim yolu; Teşekkürler.
JESii
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.