ALT + zsh ve iTerm2 sözcükleri arasında hareket eden ok


19

Barındırma sağlayıcı sunucularından birinde oturum açtım ve ALT + sol ve ALT + sağ GNU Ekranındaki bir kabuk istemindeki kelimeler arasında taşındığını fark ettim.

Ne tür anahtar bağlamaları yapılandırmam gerekiyor ve bu davranışı iTerm2'de çalışan yerel OS X zsh'ımın neresine getireceğim?


Bu soruya ilgi duyan insanlar, zsh kelimelerinin bash kelimeleri olmadığını bilmek de ilginizi çekebilir. FOO=BARzsh için bir kelime ve bash için 2 kelime. Benzer şekilde, imlecinizi sonuna ayarlayıp foo --baralt + geri tuşu yaparsanız, foo --bash'ta sahip olacaksınız ve zsh içinde sahip olacaksınız foo . Zsh, bash'a birçok özellik ekler, ancak geçersiz kılmak için birçok çılgın varsayılana sahiptir.
weberc2

Yanıtlar:


28

Çözümü burada buldum: https://coderwall.com/p/h6yfda . Bağlantının kopması durumunda en önemli kısımlarını kopyalar.

  1. Tercihler, Profil, Tuşlar'a gidin.
  2. Sol tuşunuzu bir kaçış karakteri olarak ayarlayacak şekilde ayarlayın.
  3. ⌥ ← için geçerli kısayolu bulun veya aşağıdaki ayarlarla yeni bir kısayol oluşturun:
    • Klavye Kısayolu: ⌥ ←
    • Eylem: Kaçış Dizisi Gönder
    • Esc +: b
  4. settings → klavye kısayolunu aşağıdaki ayarlarla tekrarlayın:
    • Klavye Kısayolu: ⌥ →
    • Eylem: Kaçış Dizisi Gönder
    • Esc +: f

1
Genel olarak zsh'a değil, belirli bir terminal emülatörüne özgü olduğunu belirtmek gerekir.
Hi-Angel

7

Anahtar kelimelere arıyoruz backward-wordve forward-word. Dolayısıyla, tuş bağlantılarının çalışmadığı bir kabuk üzerindeyseniz, bindkey -L | grep backward-wordbunların yapılandırılıp yapılandırılmadığını kontrol etmeyi deneyin . Bu konuda daha fazla bilgi zshzle (1) 'de bulunmaktadır .

Aşağıdaki gibi bir şey yazarak tuş takımını manuel olarak ayarlayabilirsiniz:

bindkey ' Ctrl+ v Alt+ Right' ileri kelime

bindkey ' Ctrl+ v Alt+ Left' geriye doğru kelime

Ben de tuş bağlama ile bazı sorunlar yaşadım ve sorun neredeyse her zaman Seçenek / Alt tuşu beklenen Meta / Escape farklı bir şey gönderdi oldu.


Ayrıca emacs-forward-wordve öğelerini de kullanabilirsiniz emacs-backward-word. Aradaki fark, her zaman kelimenin başına atlamak yerine, sözcüğün sonuna ileri ve geri sözcüğün başlangıcına atlamanızdır.
Aalex Gabi

Bu en sağlam ve temiz çözümdür. Farklı anahtar haritalama türlerine ve / veya her türlü ssh-tmux-zsh kombinasyonuna uyum sağlayabilir. Sabit kodlu kaçış dizisini içeren diğer çözümler, belirli bir sistemdeki bazı durumları çözer.
HKTonyLee

3

İTerm için konuşamam ama bunlar GNOME Terminali altında, Fedora 19'da Oh-my-zsh ile ZSH 5.0.7 çalıştıran bu sorunu çözmek için kullandığım tuş bağlamaları:

bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word

where \e== Çıkış anahtarı dizisi ( bölüm 4.1.1'de belgelendiği gibi )

ve [== O(büyük harf O; bölüm 4.2.1'de belgelendiği gibi ), bazı durumlarda. Örneğin, tmuxbu ikame altında benim için gereklidir, ancak tmuxhiçbir ikame yapılmasına gerek yoktur ve [==[

Bir sekans için anahtar kodlar cat, istenen sekans kullanılarak ve basılarak elde edilebilir . Örneğin, presleme sonuçları <Alt+Right>şu şekilde yorumlanmalıdır:

$ cat
^[[1;3C

^[== \e== Escape-anahtar dizisi

[== OR [olmadan == (büyük harf o) iletmux[Otmux

1;3 == Bundan emin değilim, ama mantıklı <Alt>

C == Sağ ok tuşu

Daha sonra bu sıra, ilk argüman olarak kalıcılık bindkeyiçin ~/.zshrcdosyaya verilir ve bağlanır , yani bir argümandaki tuş vuruşu , ilkinde widget'a belirli bir düzenleyici komutunu (veya zsh terimleriyle widget'ı) yürütür. Yukarıdaki örneğin satırı forward-word.

~/.zshrcBu iki komutları ile kendisine eklenen sonra tekrar kaynaklı edilmelidir:

$ source ~/.zshrc

Şimdi sistemimdeki bir sıkıntı, bu özel kombinasyonun, terminal emülatörünün komut her verildiğinde bir bip sesi çıkarmasına neden olması, bu devre dışı bırakarak

'Edit'->'Profile Preferences'->'Terminal Bell' Onay kutusu.


2

İTerm2'nin komut satırı gezintisini benim için daha sezgisel hale getirme konusunda benim için en iyi olan şey (bir komut satırında büyümeyen genç bir yetişkinim, ancak metin editörlerinde ve IDE'lerde çok fazla zaman geçirdim) için:

  • Tercihler -> Profil -> Tuşlar'a gidin
  • Anahtar Eşlemeleri listesinin altında Ön Ayarlar eklemek / kaldırmak veya yüklemek için bir kutu vardır (birleşik giriş kutusu)
  • Seç Natural Text EditingHazır Ayarları açılır seçeneği.

Bu, her seçeneği tek tek değiştirmek zorunda kalmadan, editörün anahtarlarını daha standart bir düzenlemeye dönüştürür.


0

zkbdTuş bağlantılarını yapılandırmanızı öneririm . Kullanıyorum ve Alt+ Left/ Alt+ RightiTerm2 üzerinde iyi çalışıyor. Bkz zshcontrib(1)zkbd ayrıntıları için.

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.