balık kontrolü-sol kontrol-sağ klavye


5

Balıkla birlikte sonlandırıcı kullanıyorum ve imleci sözcükle hareket ettirmek için sonlandırıcı gezinmek için Alt Sol vb. Sorun ne zaman yaptığım

bind \cleft backward-word

Ctrl-left veya right davranışını değiştirmez. Bu belgelerin ne olduğunu takip ediyor gibi görünüyor ve ben -K ve -f bayraklarından anahtarı ve komutu çıkardım ve

bind -a

ciltlemelerin var olduğunu gösterir.

Aynı komutu diğer diziler için de kullandım, ancak bunun çalışmasını sağlayamıyorum. Bir şey mi eksik?

Yanıtlar:


4

Sonunda düzelttim. Bu config içinde gider:

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

"kaynak" i yürüterek:

. .config/fish/config.fish

("." balıklarda kaynaktır)

Umarım bu yardımcı olur!


1
Harika! Ancak bir terminali her açtığımda bunun otomatik olarak çalışmasını sağlamakta sorun yaşıyorum. Her zaman elle kaynak yapmak istemiyorum. Otomatik olarak yapmanın bir yolu var mı?
Seb

@Seb Burada aynı. Bir sorun olması için balığı yeterince sık kullanmıyorum (bu tür sorunlardan dolayı), bu yüzden hala el ile kaynak yapıyorum. Yine de bilmek isterdim. Sanırım bir soru açabilir misin?
eggonlegs

Balık için "~ / .bash_profile" ~ / .config / fish / config.fish dosyasındadır (eğer mevcut değilse oluşturun). O giriş yayınlanması için bunu: Durum bağlama \ e [1 \-giriş bilgilerinizi --is eğer; 5C ileriye kelime bağlamak \ e [1 \; 5D geriye kelimelik sonu
Steve Ross

Merhaba, @ eggonlegs, yazdığınız kaçış dizisi kaçış için durur + [+ 1 +; 5 C ", bu oldukça uzun bir sekans. Neden bu kadar uzun bir anahtar sekans kullanıyorsunuz, hepsine basmak zor değil mi?
richard.g

3

tip bind \cleft backward-wordbalık komut satırında işi yapmalıdır. Her başlangıçta çalıştırılmasını istiyorsanız:

function fish_user_key_bindings
    bind \cleft backward-word
end

içinde .config/fish/config.fish

Gönderen balık bağlama belgelerinde

Tuş ciltleri, oturumlar arasında varsayılan olarak kaydedilmez. Config.fish'teki Bare Bind deyimlerinin herhangi bir etkisi olmaz, çünkü varsayılan tuş bağlamaları kurulmadan önce kaynaklanır. Özel tuş bağlamalarını kaydetmek için, bağlama ifadelerini fish_user_key_bindings adlı otomatik yüklenecek bir işleve koyun.


1

Unutulmaması gereken ilk şey, ctrl+ ' left-arrownın hiçbir anlamı yoktur ve kabuğuna yapılamaz. Bunun nedeni, ctrlanahtarın aslında herhangi bir karakter göndermemesidir (terminal yapılandırmanız için olağandışı bir şey yapmadıysanız). Bu tuşun yaptığı, basılan bir sonraki harfi değiştirmektir. Örneğin, ctrl+ a, terminalin tek byte hex değerini 0x01 göndermesine neden olur. Sol ok gibi tuşlar normalde karakterle başlayan bir karakter dizisi gönderdiğinden escve escape zaten bir kontrol karakteri olduğundan, ona kontrol değiştiriciyi uygulamak hiçbir şey yapmaz.

Bunu yapmanın normal yolunu bulduğunuz gibi kullanmaktır alt. Eğer kaçış karakteri ile takip neyse önek tuşlarını kullanıp ki bir "meta" tuşu olarak bu tedavi etmek için terminali yapılandırmışsanız alt+ page-upterminali gönderin sahiptir \e\e[5~. Git kaynaklarından balık oluşturursanız, fish_key_readerhangi farklı anahtarların daha kolay gönderildiğini öğrenmeyi sağlayan kullanışlı bir program elde edersiniz . Bu birkaç hafta içinde bulunması gereken balık 2.3.1 sürümünde olacaktır.

Son olarak, özel anahtar bağlantıları, genel /usr/share/fish/functions/fish_default_key_bindings.fishkomut dosyasında değil, kişisel yapılandırma dosyanızda olmalıdır . $HOME/.config/fish/functions/fish_user_key_bindings.fishAşağıdaki içeriğe sahip bir dosya oluşturmalısınız :

function fish_user_key_bindings
    bind \e\[1\;5C forward-word
    bind \e\[1\;5D backward-word
end

0

Balık için "~ / .bash_profile" ~ / .config / fish / config.fish dosyasındadır (eğer mevcut değilse oluşturun). Oturum açma sırasında çalışması için bunu config.fish dosyasına koyun:

if status --is-login
 bind \e\[1\;5C forward-word
 bind \e\[1\;5D backward-word
end

0

Kabul edilen cevap neredeyse çalıştı, ancak anahtarları config.fish dosyası aracılığıyla otomatik olarak bağlayamadığımı gördüm. Ben doğrudan fish_vi_key_bindings.fish (/ usr / share / fish / fonksiyonları altında) değiştiririm.

Ayrıca, vi keybind altında sadece ctrl-sol ve ctrl-sağ normal mod eklemek yeterli değildir, ayrıca ekleme ve görsel mod eklemek zorunda.

bind \e\[1\;5C forward-word
bind \e\[1\;5D backward-word
bind -M insert \e\[1\;5C forward-word
bind -M insert \e\[1\;5D backward-word
bind -M visual \e\[1\;5C forward-word
bind -M visual \e\[1\;5D backward-word

Bunun için üzgünüm , kabul edilen cevaba bir yorum olmalı , bağımsız bir cevap değil, fakat yorum eklemek için yeterli itibarım yok (şahsen, bu itibar sisteminin makul olduğunu sanmıyorum) ve Bunu, aynı sorunla karşı karşıya kalan birisiyle veya sorunun nasıl çözüleceği konusunda deneyimi olan biriyle paylaşmanız gerekir.


Ekledim rağmen, benim için çalıştı /usr/share/fish/functions/fish_default_key_bindings.fish.
metal,

Lütfen cevabımı tekrar okuyunuz. Bind 3.0 uygulamasını kullanıyorsanız, bağlantıları config.fish dosyasına yalnızca yerleştirebilirsiniz . Aksi halde, bindkomutlar kişisel * $ HOME / .config / fish / functions / fish_user_key_bindings.fish * autoloaded işlevinize girmelidir. Sistem dosyalarını asla değiştirmemelisiniz.
Kurtis Rader
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.