İTerm2'de bir sözcük geri gitmek için nasıl kontrol + sol ok alabilirim?


114

Linux kılavuzunda okuyordum ve düzenleme sırasında terminaldeki kelimeleri ileri ve geri taşımak için control + left ve control + right kullanabileceğimi fark ettim.

"Ctrl artı Sol veya Sağ ok tuşuna basılması, Esc ve ardından B veya F tuşlarına olduğu gibi, her seferinde bir sözcük geri veya ileri doğru hareket eder."

OS X control+leftve control+rightnormalde kontrol boşluklarında. Bunları devre dışı bıraktım. Ayrıca klavye kısayollarını ayarlamak için tercihler bölmesini kullanmaya çalıştım:

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Ancak bu çalışmıyor ve bu hataya neden oluyor:

görüntü tanımını buraya girin

Ayrıca eğer iTerm'deysem ve alt+escapeB veya F tuşlarını kullanırsanız , karakter ileri geri hareket eder. Bu benim yapılandırma değişikliklerimizden önce gerçekleşiyordu. Ama control + ok tuşlarını kullanabilmek isterdim.


Bu arada, bunu başarmanın daha temel bir yolu basitçe ctrl + left ve ctrl + right yerine command + left ve command + right eşlemektir. Bunu başarmak için sistem genelinde hiçbir şeyi devre dışı bırakma ihtiyacım yoktu.
Doktor Mohawk,

Yanıtlar:


135

darbe

Sadece aşağıdakileri ekleyin ~/.inputrc:

"\e[1;5D": backward-word
"\e[1;5C": forward-word

Daha fazla açıklama için bu arşivlenmiş Wiki postasına bakınız . altAnahtardan kelimeye hareket yerine tuşu kullanmak istiyorsanız (varsayılan OS X davranışı gibi):

"\e[1;9D": backward-word
"\e[1;9C": forward-word

zsh

zsh varsayılan olarak readlinekütüphaneyi kullanmaz ve bu nedenle okumaz ~/.inputrc. Aynı işlevselliği elde etmek için, aşağıdakini ekleyebilirsiniz ~/.zshrc- bu tekrar altanahtarını kullanır :

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

Yerleşik zsh çizgi düzenleyicisi (zle) hakkında daha fazla bilgi için bu belgeye bakın .


Bu neden? Profilinizi Xterm varsayılanlarını kullanacak şekilde ayarladınız:

görüntü tanımını buraya girin

Bu yüzden bu sekansı “yakalamanız” ve readlinene yapmanız gerektiğini söylemeniz gerekecek.


Yukarıdakiler hala işe yaramazsa ve OS X 10.9 (Mavericks) kullanıyorsanız veya bunlar hakkında, muhtemelen Mission Control'ün kendisi devre dışı bırakılsa bile, Control + ok tuşlarının iTerm'e ulaşmasını engelleyen genel Mission Control kısayollarını devre dışı bırakmanız gerekir. Bunu Sistem Tercihleri ​​→ Klavye → Kısayollar → Görev Kontrolü'nden yapabilirsiniz :

görev kontrolü klavye tercihleri


4
Alt + sol ve alt + sağ tuşlarının çalışmasını sağlamak için talimatları izlemeye çalışıyorum. İki satırı .inputrc dosyama ekledim, ancak tuşlara bastığımda olan tek şey "D" ya da "C" nin kabuğa basılması. İTerm2'yi zsh shell ile kullanıyorum. Herhangi bir fikir?
Flo

1
Çizgiler eklemeyi deneyin @Flo bindkey -e, bindkey '^[[1;9C' forward-wordve bindkey '^[[1;9D' backward-wordsizin için ~/.zshrcyerine. IIRC zsh okumaz .inputrc- ya da en azından benim için bu şekilde çalışır.
slhck

2
Ctrl-left / right + bash ile çalışmıyor, ancak alt-sol / sağ ayarladıysam iyi çalışıyor.
Dalin

3
Görev Kontrol kısayollarıyla ilgili, herhangi birinin en rahatsız edici derecede opak bir şekilde çalışmasını engelleyen bir düzenleme eklendi. Umarım birisini daha önce yaptığım aynı şeyi yapmaktan kurtarır ...
rubyruy,

12
OSX + zsh + iTerm2 + ctrl-sol / sağ için aşağıdakileri kullanın:bindkey -e; bindkey '\e\e[C' forward-word; bindkey '\e\e[D' backward-word
Artur Bodera 11:30

45

Zsh için çalışma çözümü. Basit, anlaşılır, kullanıma hazır.

  1. Goto: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Preset yükle: Natural Text Editing

Ön Ayar Ayarla "Doğal Metin Düzenleme"


Teşekkürler @Happy Torturer, bunun en iyi cevabım olduğuna inanıyorum çünkü Terminal.app'taki düz problemim yok çünkü bu problemi bash / zsh değiştirmek istemiyorum, sadece Terminal.app'daki her şeyi yapmak istiyorum.
galuszkak

Bu bu bu. Bu çözüm için çok teşekkür ederim! Aldığım her Mac ile bu çıldırtıcı süreçten geçtim. Şimdi bunu yapmanın en basit yolunu biliyorum. Teşekkür ederim!
vernonk

8

Bu şekilde düzelttim:

Üst menüde; gitmek

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)

bu ön ayarın altındaki tüm "Fabrika Varsayılanları"
dır

7

Farklı bir yaklaşım kullandım. BetterTouchTool kullanarak iTerm2 için özel bir klavye kısayolu programladım. İTerm2'de alt-sol tuşlarına bastığımda, "Özel uygulamaya klavye kısayolu gönder" eylemiyle ctrl-sol klavye kısayolunu gönderir. Uygulama iTerm2'dir. Aynısını alt-sağ ctrl-sağ ile eşleştirdiğim için yaptım.

Bunun etkisi, iTerm'de alt-sol veya alt-sağa basmanın, bir masaüstünü sola veya sağa hareket ettirmek için kullanılan genel sistem kısayolunu atlayarak doğrudan iTerm2'ye bir ctrl-sol veya ctrl-sağ göndermesidir. Bunun gibi iTerm2'de, yerel terminal oturumlarında ve ayrıca uzak SSH oturumlarında tipik mac davranışını alıyorum ve farklı masaüstlerine geçmek için standart ctrl-left / ctrl-right kullanabilirim. Ben buraya yazdım:

http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/


2
BetterTouchTool açık kaynak değil ve olmasa da istediğiniz şeyleri yapmak çok iyi olabilir. Adam öğrenci olduğunu söylüyor ama üç mektup ajansı da olabilir.
revacuate

7

Aslında, en kolay çözümün, profil ayarlarıma gitmek (Profiller / Anahtarlar'da bulunur), rahatsız edici profil kısayollarını kaldırmak (profilim iTerm'de genel olarak geçersiz kılınır), benim durumumda alt + left ve alt + right ve sonra global kısayollar benim için mükemmel çalıştı!

Ayrıca, OS X kullanıyorsanız, sistem geniş kısayollarına bağlı kalmak en iyisidir, yani bu amaç için alt + sol ve alt + sağ kullanmak, terminalde farklı davranışlara sahip olmak en sonunda ağrıya neden olmak zorundadır.

Bu chmac'ın Better Touch Aracı'nı kullanma çözümü dışında, control + arrow davranışlarını yalnızca iterm'de değiştirmenin zarif bir yoluydu.


Aslında bu en iyi çözümdür. Çoğumuz Keyssekmeye giderken kafa karıştırıcı . Bunun yerine Profilessekme -> Bir profil (örneğin varsayılan) -> tuşlarına gitmeliyiz .
Paschalis

Bu kesinlikle en güvenli ve en kolay çözümdür.
16'yı

2

Bu yazı şunu ve diğer kısayolları ⌥ ← olarak silmek için kısayollar öğretir: Bir kelimeyi silmek için:

http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/


Bu aslında <ctrl> <left>
DavidPostill

Tek yapmanız gereken, ihtiyacınıza uygun kısayolu kullanmak. "<ctrl> <left>" veya ne istersen.
Seralto

1
Bu nedenle, lütfen linkteki sayfalar değişirse cevap geçersiz hale gelebileceğinden, cevabın esas kısımlarını referans linklerinden alıntı yapın.
DavidPostill

1

ProfilesSekmeye girmeniz ve varsayılan olarak bazı onaltılı değerler çıktığı için alt+ leftve alt+ için eşlemeyi silmeniz rightgerekir.


Bu benim için yaptı!
Philip
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.