Bash: Bir seferde bir kelimeyi imlecimi sola nasıl hareket ettirebilirim?


14

OSX'te, optiontuşunu basılı tutup düzenlemem gereken kelimeye gelene kadar sol imleç tuşuna basabilirim (veya Vi'da sadece vurabilirim b, ancak Terminal'de nasıl yapılacağını anlayamadım hala...


Kendi bağlantılarınızı nasıl özelleştireceğinize ilişkin talimatlar da dahil olmak üzere , bu sayfada readline bağlantılarının tam listesini görebilirsiniz .
jasonwryan

Yanıtlar:


26

Anahtar bağlantısını ayarlamak için: Önce Ctrl+ Leftanahtar dizisinin hangi anahtar kodlarını oluşturduğunu bulmanız gerekir . catMevcut tuş bağları ile parazitleri kapatmak için komutu kullanın ve ardından tuş dizisini yazın. Benim sistemimde (Linux) şöyle görünüyor:

$ cat
^[[1;5D

Kattan çıkmak için Ctrl+ tuşuna basın d. Artık Ctrl-Left'un 6 anahtar kodu verdiğini öğrendiniz:

  • Kaçış (^ [)
  • [
  • 1
  • ;
  • 5
  • D

Şimdi bind komutunu verebilirsiniz:

bind '"\e[1;5D": backward-word'

6
İsterseniz kalıcı etki için $ HOME / .inputrc dosyasına `` "\ e [1; 5D": geriye doğru kelime '' ekleyebilirsiniz.
llhuii

@llhuii +1, bundan bahsetmeyi unuttum!
daniel kullmann

2
Rastgele tuş kombinasyonlarını herhangi bir yere bağlamak için en esnek yol için +1!
Irfy

14

İstediğiniz bash işlevi backward-word. Bu bind -q backward-wordişleve bağlı tuşların bir listesini almak için çalıştırabilirsiniz . Ortak bir bağlanma Esc+b

Ayrıca, birçok terminal Ctrl+ ' Leftyı destekler (kelime ile geriye doğru atlamak için X'te kullanabileceğiniz kısayol tuşu)


1
Tamam, geri dönüyor backward-word can be invoked via "\eb".ama Esc + b yerine control + Left komutlarını nasıl bağlarım? Ayrıca, zaten görebildiğim Esc + b için bir dezavantaj, her ne zaman bir kelime geri gitmek için her zaman Esc anahtarını bırakmak zorunda olduğunu, daha iyi bir yolu var mı?
nipponese

1
Daha iyi bir yol var mı? Doğal olarak: set editing-mode vi:)
jasonwryan

3
@nipponese "esc b" klavyede ALT-b olarak da kullanılabilir. Yapılandırmanıza bağlı olarak bunun özellikle sol veya sağ alt olması gerekebilir, bu nedenle her ikisini de deneyin.
Random832

8

İçin Bash varsayılan anahtar kısayol backword-wordolduğunu Alt+ b. Aynı sonuç Esc+ ile de elde edilebilir b. Tuş bağlantılarınızı düzenlemeden önce bunları denemelisiniz.

Belirli bir eylemin geçerli tuş bağını binddüzenlemek veya bind -q [name]almak için komut kullanın .


2
... ve ileri -Alt + f
Putnik
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.