Ctrl-ok tuşlarının Cygwin bash'ta bir seferde bir kelime ileri / geri gitmesini nasıl sağlayabilirim?


97

Varsayılan Cygwin kurulumunda, CTRL-LEFTARROW veya CTRL-RIGHTARROW kullanmak, beklendiği gibi bir sözcük atlamak yerine, basitçe 5C veya 5D yazdırır.

Giriş / Bitiş tuşları düzgün çalışıyor, bu nedenle yeniden yapılandırma mümkün olmalıdır.


Bu sorunun Cygwin'e yönelik olduğunu ancak Unix / Linux sistemlerinde genel bir uygulaması olabileceğini unutmayın. PuTTY kullanıyorsanız ve buradaki çözümlerin sizin için çalışmadığını düşünüyorsanız, özellikle PuTTY için hangi kodların kullanılacağına ilişkin bir soruya bakın .
palswim

Bu da bana tam bir linux altında oldu; bazı tavsiyelerde çevrimiçi olarak, ~/.inputrctüm linux nane varsayılanlarını iptal eden bir dosya ekledim . $include /etc/inputrc~ / .İnputrc'nizin üstüne ekleyerek onları geri alabilirsiniz (varsa / etc / inputrc, Linux Nane'de olduğu sistem genelinde inputrc'dir)
user208769

Yanıtlar:


133

Posterity için buraya göndererek bir çözüm bulundu .

Aşağıdaki satırları ~/.inputrc( C:\cygwin\home\<username>\.inputrc) öğesine ekleyin :

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

İşlemi tamamladığınızda geçerli oturumun dosyasını C-x C-ryeniden okumak için tuşuna basabilirsiniz .inputrc.

Kullanım: Eğer diğer benzer özelleştirmeler istiyorsanız Unutulmaması gereken 5Ave 5Byukarı ve aşağı oklar için ve 2xkaydırılmış sürümleri için.

"Resmi" anahtar eşleştirmeleri Bash Reference Manual'de açıklanmıştır , ancak bir anahtar eşlemesini bulmak için hızlı bir yolla, bash:

  1. tip Ctrl+V
  2. ilgilendiğiniz tuş sırasını yazın (örneğin, Alt+ ). Bu yazdırır^[[1;3C
  3. öncüyü çıkarın ve yapmak için ^[değiştirin\e\e[1;3C
  4. bu değeri .inputrcdosyanıza yerleştirin.

Bazı klavye kodları <kbd> Shift </kbd> + <kbd> Enter </kbd> gibi hiçbir şekilde görünmüyor. Bu klavye kodlarını Mintty / Windows / Cygwin aracılığıyla nasıl bulabilirim?
CMCDragonkai

14

.İnputrc dosyasını aşağıdaki yollarla yeniden yükleyebilirsiniz:

bind -f ~/.inputrc

Kaynak


2
Bu yararlıdır, ancak gerçekten bir sorunun cevabı değil - belki başka bir cevaba yorum yapmak daha iyi olur mu?
Martin Thompson,

@ Tom'un yukarıdaki cevabına eklendi
dovetalk

7

Özel ortam ayarları olmadan çalışacak bir şey istediğinizde, örneğin bir sunucudaki paylaşılan bir hesapta çalışırken veya yalnızca kullanılan özel yapılandırma miktarını sınırlarken, Bash bunun için Cygwin'de çalışan yerleşiklere sahiptir.

Yani Alt+ fileri doğru hareket etmesine ve Alt+ bgeri hareket etmek için.

http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html


4
Teşekkürler, bu anahtarların farkındayım ve bunları kullanıyorum. Ok tuşlarını da uygun olduğunda kullanıyorum ve aklı başında bir şey yapmak ve imleci hareket ettirmek yerine kaçış kodları yaymalarını istemiyorum.
Tom

0

Rgvt ile cygwin kullanırken bu bağlantıdaki çözümü benim için çalıştığını gördüm: control_arrow_keys_in_rxvt .

Aşağıdaki satırları şuraya ekleyin ~/.inputrc:

"\eOd": backward-word
"\eOc": forward-word

Bu, ek bir katmanın iletilen anahtarları değiştirdiği zamandır (ancak sorulan soruyu yanıtlamaz).
Nikana Reklawyks,

0

Bu çözüm aynı zamanda msys2konsollarda da çalışır :

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Sadece bu tuş kombinasyonlarını .inputrcdosyaya yerleştirin.

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.