.İnputrc içindeki kontrol karakterlerini anlama


22

Uzak makinedeki Linux hesabım aşağıdaki önceden tanımlanmış olarak geliyor .inputrc

"\e[1~": beginning-of-line
"\e[4~": end-of-line
\e[5~”: history-search-backward
\e[6~”: history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

set completion-ignore-case on
set bell-style visible
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on

Ben GNU bash belgelerine okuyorum konuda ama karakter dizileri açıklayan bir bölüm bulmak mümkün olmamıştır \e[1~, \e[5C, \e\e[Dvb anlamına gelir.

Ben olduğunu okumuştum \evasıta meta character(ı olduğunu düşünüyorum Altbenim klavyede), ama ne diğer kontrol karakterleri anlamıyorum [, ~, 5Dvb ortalama.

Konuyla ilgili iyi bir referansı bilen var mı?

Yanıtlar:


21

Bunlar, bir "terminal" klavyesinde çeşitli alfasayısal olmayan tuşlara basıldığında iletilen ANSI kontrol kodu kaçış dizileridir .

\ e ASCII "ESCAPE" karakteri anlamına gelir (sekizli 033 hex 1B ondalık 27). Hangi komut dizisi girişinin (CSI) bir parçasıdır.

Escape [ 2 ~VT220 (veya üstü) terminalinde "Ekle" etiketli tuşa bastığınızda iletilen bir karakter dizisidir .

Bu sözleşmelerin birçoğu xterm ve Linux konsolları / kabukları gibi yazılımlarda kabul edilmiştir - genellikle çeşitli, bazen uyumsuz şekillerde genişletilmiştir.

Bu dizilerin bash'ın READLINE işlevinde kullanımı readline için kılavuz sayfalarında açıklanmıştır

       İkinci form olan "keyseq": işlev adı veya makro, keyseq farklıdır
       yukarıdaki anahtar adından, tüm anahtar dizisini gösteren dizelerde
       diziyi çift tırnak içine alarak belirtilir. Bazı GNU'lar
       Emacs stili anahtar çıkışları aşağıdaki örnekte olduğu gibi kullanılabilir, ancak
       sembolik karakter adları tanınmaz.

          "\ Cu": evrensel argüman
          "\ Cx \ Cr": yeniden okuma-init-dosyası
          "\ e [11 ~": "İşlev Tuşu 1"

Hangi kaçış dizilerinin hangi klavye tuşlarına karşılık geldiğini öğrenmek için, infocmp -L -1veya gibi bir komut kullanabilirsiniz.infocmp -L -1 xterm


Mükemmel!! Tam da aradığım şey buydu . Teşekkürler @RedGrittyBrick!
Amelio Vazquez-Reina

+1. -> = + Ctrlkodunu arıyordum . inputrcENTERCtrln
rendon

@ user1133275: bağlantı güncellendi, ancak man 3 readline kendi sisteminizdeki komut size aynı bilgileri vermelidir. Komut man 3 readlineayrıca Windows 10'da WSL'de de çalışır . Gerekirse, bind -Pçıktınızın size zorluk çekmesine neden olan belirli kısımları hakkında yeni bir soru sorabilirsiniz .
RedGrittyBrick
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.