tmux önekini OS X cmd anahtarına (veya başka bir bağlama) bağlama


21

Ben OS X üzerinde iTerm2 (veya bu durumda Terminal.app) alışkınım. Ama tmux (veya ekran kullanmak için taşımak istiyorum, ama sorun her iki uygulama benzer).

Benim fikrim tmux oturumu birden çok sekmeyle açılmış tek bir iTerm sekmesine sahip olmak. Geçiş yapmak için tmux üzerinde yapılandırmam gereken temel bir özellik var: cmd + n (Firefox, Chrome, iTerm2'nin kendisi gibi) kullanarak 'n' sekmesini değiştirin

Ancak cmd tuşunu mac klavyesinde eşleştirmenin bir yolunu bulamıyorum. İlk önce cmd'yi bir önek anahtarı olarak uygulamaya çalıştım, ancak başarılı olamadım. Ayarlamayı denedim

set-option -g prefix M-a (hoping for Meta-a)

set-option -g prefix ^a (hoping for ^ to work)

ama hiçbir şey işe yaramıyor. Mümkün mü? Öneki cmd'ye gerçekten bağlamam gerekmiyor, ancak cmd + n ile tmux sekmelerini değiştirmek istiyorum.

teşekkür ederim


Yanıtlar:


8

Bu (birinci bir tuş dizisi çağırmak istiyorum Ctrl-bsonra, n, 0 ile 9 arasında).

En iyi seçeneğiniz, bunu sizin için yapmak için Butler veya Keyboard Maestro gibi bir klavye kısayol yardımcı programı kullanmaktır .


Butler'ı kullanma :

+ »Akıllı Öğe» Tuş Vuruşları'nı seçin , kısayol tuşunu yapılandırın Cmd-1. Tuş Vuruşları için önce tuşuna Ctrl-B, ardından tuşuna basın . Yalnızca Terminal (veya iTerm) 'de geçerli olacak şekilde yapılandırın. Diğer uygulamaların hoşuna gitmeyeceği konusunda sizi uyaracaktır, ancak bunu zaten biliyorsunuz.1


Keyboard Maestro'yu kullanma :

Solda yalnızca Terminal'de (veya iTerm'de) kullanılabilen yeni bir grup oluşturun.

Kısayol Tuşu Tetikleyicisi ( Cmd-1) tarafından tetiklenen yeni bir öğe ekleyin ve eylemlerine iki Tuş Vuruşu ekleyin : Ctrl-Bve 1.


Ayrıca bu konuya bir göz atmak isteyebilirsiniz - Commandyine de kullanmaz ve Terminal'i kullanarak benim için çalışmadı.


Gönderen tmux belgelerinde :

Komut vermek için anahtar tuşunu bağlayın. Anahtarlar, ctrl tuşları için 'C-' veya 'ˆ' veya alt (meta) tuşlar için 'M-' önekiyle belirtilebilir. Flagr bayrağı bu tuşun tekrarlanabileceğini gösterir, tekrarlama süresi seçeneğine bakın.

Üçüncü bir değiştirici anahtarı desteklemezler.


Aman tanrım ne harika bir hack! o da çalışıyor! Butler Maestro'yu kullandı çünkü Butler aşırıya kaçmış gibi görünüyor. Teşekkür ederim!
16'da rubenfonseca

Klavye Maestro bunun için harika çalışıyor
Sam Selikoff

19

İTerm2'de, kısayolları terminale gönderilen onaltılı kodlarla eşleyebilirsiniz. İTerm2 Tercihleri ​​-> Tuşlar. Genel Kısayol Tuşları'nda + işaretini tıklayın ve yakalanacak cmd + 1 gibi istediğiniz kısayolu yazın. Ardından "Onaltılı Kod Gönder" i seçin. Görünen kutuya, tmux'a gönderilmesini istediğiniz onaltılı kodları boşluklarla ayırarak yazın. Ctrl-B 0x02'dir, bu nedenle "Ctrl-B 1" için "0x02 0x31" yazın. Daha fazla onaltılı kod için buraya bakın: http://www.nthelp.com/ascii.htm

Cmd'i tmux bölmeleri arasında dolaşmak için h, j, k, l ve% ile Cmd ile eşleştirdim ve "bölmeleri oluşturmak için. Muhtemelen bir kontrol anahtarı ile vim bölmeleri arasında hareket etmeye benzer bir şey yapacağım.


Bu kesinlikle iTerm2 kullananlar için en iyi cevaptır. Teşekkürler!
newUserNameHere

1
Nedense, bu benim iTerm2 build 3.0.2 üzerinde çalışmıyor
jasonszhao

Bu işe yaramazsa, iTerm2'nin cmd anahtarını varsayılan olarak anahtar sekmesine bağlaması olabilir. Değiştiriciniz çakışıyor olabilir. CMD + n üzerinde çalışmak için swith tab tuşunu değiştirmek zorunda kaldım
Surfrdan

2

Terminal.app ile özel kısayollar yapılabilir. Geçen gün öğrendim, ama bu aslandan önce mümkün olabilirdi.

Tercihler> Ayarlar'a gidin ve "Klavye" sekmesini tıklayın. Şimdi kutunun altındaki artı simgesini tıklayarak yeni bir klavye kısayolu eklemeniz gerekiyor. Şimdi "Kabuğa dize gönderen" bir tuş birleşimi ayarlamak istiyorsunuz.

Örnek: Diyelim ki M-LeftArrow'u eşlenecek şekilde ayarlamak istiyorum prefix-p(önceki pencere).

Key: Left Arrow 
Modifier: Option 
Action: send string to shell

Şimdi sadece tmux için ayarladığınız prefix-pgiriş kutusuna yazın prefix(kutu görüntülenmesi için cntrl-a kullanıyorum \001p). Hata yaparsanız, karakterleri silmek yerine karakterleri sileceğinizi unutmayın; bu nedenle, karışıklık olması durumunda geriye gitmek için "Bir karakteri sil" düğmesine basın.

Hayatı kolaylaştırmak için belirlediğim özel karakterler:

M-Left  > Previous Window
M-Right > Next Window
M-Up    > Enter scrolling mode
M-Down  > Next Pane

Ayrıca cntrl-everything ve shift-any öğelerini değiştirebilirsiniz, ancak bunların $ EDITOR veya diğer programlarınızı etkileyebileceğini unutmayın, bu nedenle hangi özel işlevlerin işe yaramaz hale getirilebileceğine dikkat edin.

Ayrıca, bu işlevi iTerm2 çoğaltmak nasıl anlayamadık unutmayın.


1

Ayrıca iTerm2'nin tmux ile sunduğu yerel (ancak çok deneysel) entegrasyonu da düşünebilirsiniz: http://code.google.com/p/iterm2/wiki/TmuxIntegration

Bu şekilde, ekranı bölmek için Cmd-D'ye bastığınızda iTerm2 sekmeyi sizin için böler. Bu harika, çünkü bölme yereldir, böylece genişlikleri yeniden ayarlamak için kenarı ortasından sürükleyebilir veya tıklatarak bir bölmeyi seçebilirsiniz. Yeni sekmeler / pencereler için Ditto (ancak kısayollar biraz farklıdır - aksi takdirde tmux olmayan sekmeler eklemenin hiçbir yolu olmaz).

Ve tmux gibi, ayırır ve yeniden takarsanız, her şey sizin için kaydedilecektir.

Yine de iki uyarı var: * Bu benim için çok deneysel ve çok lapa lapa. * tmux'u kendiniz oluşturmanız gerekir (arşivi yukarıdaki bağlantıda bir yerde kullanarak).

-Chris


İki yıl geçtiğini biliyorum, ama bunun hala işe yarayıp yaramadığı hakkında bir fikrin var mı? Bağlantılarınızdaki talimatları cmd+Dizledim , ancak iTerm2'nin bölmelerini böler, tmux'ları değil.
Sam Selikoff

1
@SamSelikoff Başlamak zorundasınız tmux -CC.
jasonszhao

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.