/ / Control + kesme işaretini zsh içindeki bindkey ile bağlama - zsh, console, bind

Control + kesme işaretini zsh - zsh, konsol, bağlama olarak bindkey ile bağlama

zsh

Control + apostophe'yi bindkey ile bağlamanın bir yolu var mı?
Denedim:

 bindkey "C-""
bindkey "^""
bindkey "C-x27"

ve bunların hepsi çalışmıyor

Yanıtlar:

Cevap için 3 № 1

Muhtemelen değil. En azından terminalinizi değiştirmeden değil.

Bir terminalde bir kabuk çalışır. Terminaldeki temel giriş birimi bir tuşa değil bir karakterdir. Kabuğunuza bir anahtar bağlaması eklediğinizde, "bir tuş bileşimini değil, bir karakter dizisini gerçekten bağlarsınız. Ctrl-kesme işareti karakteri yoktur.

En eski ASCII tabanlı terminallerden beri,tek bir karakter üretmek için Ctrl ile birleştirilebilen bir dizi anahtar var. Bunu yapan anahtarlar 0x3f - 0x5f ASCII kodlarına karşılık gelir: ? @ A-Z [ ] ^ _

Bu karakterlerden biriyle Ctrl tuşuna basıldığında, değer 0x40 bit ters çevrilmiş olarak iletilir. 0x3f ? 0x7f olur DELve geri kalanı 0x00 ila 0x1f olur. Kesme işareti 0x27'dir, bu nedenle bu kural tarafından Ctrl tuşuyla birleştirilirse 0x67 olur; g. Almak g Ctrl-kesme işareti yazdığınızda "yararlı olmaz, bu nedenle terminal bunu yapmaz".

Ancak, anahtarlarıörneğin ok tuşları gibi tek ASCII karakterlerine karşılık gelir. Bu işe yarar çünkü bu anahtarlar terminal tarafından bir kaçış dizisine - kaçışla başlayan bir karakter dizisine - çevrilir. Bu diziler yararlı eylemlere bağlanabilir. Örneğin, ESC [ A normalde, kabukta geçmişle ilgili bir eyleme bağlı olan yukarı ok tuşudur.

Eğer yeterince kararlıysanız, ikna edebilirsinizterminaliniz Ctrl-kesme işareti için bir kaçış dizisi çıktısı verir ve sonra bu kaçış dizisini bindkey komutunuzda kullanır. Bu hatlar boyunca devam etmek için terminalinizin belgelerine bakın.


İlgili sorular
Yorumlar
Yorum ekle