2012-06-11 18 views
11

Bash 4.2'de Ctrl - w için kill-region numaralı telefonu eşlemek istiyorum. Bu anahtar, varsayılan olarak unix-word-rubout (sözcüğü geriye doğru sil) bağlanır. kılavuzuna göre, yeniden eşleme seçenekleriBash’te C-w’yi nasıl çözebilirim?

-u işlevi adlı fonksiyona bağlı Ciltten Çıkar bütün tuşlar vardır bind komutla mümkün olmalıdır.

-r keyseq Keyseq için geçerli olan tüm bağları kaldırın. bind -P | grep unix-word-rubout ortaya koyduğu gibi, haritalama herhangi bir değişiklik yoktu,

Ben bind -r "\C-w" ve bind -u unix-word-rubout çalıştı ama anahtar ayarlanmazsa değildir ve. w -

Ben bind biraz oynadım ve ben diğer yerleşik tuşları unbind açabiliyorum ancak Ctrl.

cevap

13

CTRL - ağırlık werase için stty içinde bağlanmıştır. İlk önce onu çözmeniz gerekecek. Varsayılan

stty werase undef 
bind '"\C-w":kill-region' 
11

, taleb kendi taleb eşdeğerlerine çekirdeğin uç sürücüsü tarafından özel olarak muamele edilmiş kontrol karakterleri bağlamak için çalışır. Terminal tahminen werase için Ctrl-w kümesi vardır (.

stty -a 

çalıştırmak, uçbiriminiz nasıl yapılandırıldığını görmek için), bu yüzden bash unix-word-rubout onu bağlar. Bu bağlanma, ~/.inputrc'da belirttiğiniz herhangi bir tuş bağında önceliklidir.

bu eşleştirmeyi önlemek için, ~/.inputrc dosyada off taleb değişken bind-tty-special-chars ayarlamanız gerekir:

set bind-tty-special-chars off 
İlgili konular