Ana anahtar terminalde çalışmıyor


13

GNOME Terminal 2.7.3 ve zsh 4.3.9 kullanıyorum (x86_64-unknown-linux-gnu)

Homeve Endçalışmıyorlar. Hiçbir şey olmuyor ve bastığımda hiçbir şey görüntülenmiyor. ancak shift + Home(Kabuk çıktısının başlangıcına ilerler.) tuşuna bastığımda ve diğer GUI programlarında çalıştığımda çalışırlar. Google'ı araştırdım ve aşağıdakileri denedim. Değişiklik yok :(

  885  bindkey "\e[1~" beginning-of-line
  886  bindkey "\e[H" beginning-of-line
  887  bindkey "\e1~" beginning-of-line
  888  bindkey "\eH" beginning-of-line
  889  bindkey "\e[0H" beginning-of-line

Not: Son sekmede Ctrl + pagedownolduğumda ve düğmesine ;5~bastığımda ekrana basıyorum. Bu bir ipucu veriyor mu?


Eğer bir var mı .inputrcev dizininde? Yeni oluşturulmuş bir kullanıcıda bu olur mu? Bu her zaman oldu mu yoksa bir gün mü başladı?
Bahama

Hayır bende yok .inputrc. Yeni kullanıcı oluşturma iznim yok. Bu hep böyleydi. Bi'şey ile yaşayan ctrl +ave ctrl+e.
balki

1
Sanırım bu durumda tavsiye etmeyeceğim ctrl+a& ctrl+e;-)
bahamat

Yanıtlar:


4

Şu anda fedoradayım ama Archlinux'un wiki'sini dikkatlice okumanızı öneriyorum , hepsi: Home ve End tuşları çalışmıyor .

Düzeltmek için ne yaptım:

  1. Ctrl-V Home tuşuna basın, Home tuşu için çıkış sırası yazdırılır. Öyle değil \e[4~ ve \e[1~ben bakarak olması beklendiği gibi /etc/inputrc. Öyleydi [Hve[F

  2. Terminal bilgisini çıkarın infocmp $TERM >terminfo.src

  3. Gibi, düzenleme için bu dosyayı açın vim terminfo.srciçin görünüm, khomeve kendo şeye atanmış, let diyelim khome=\E[1~ve kend=\E[4~bu durumda çalışmıyor hangi. çıkarın ve 1. adımda bulduğunuz diziyle değiştirin, bu yüzden benim için düzenledikten sonra: khome=\E[Hve kend=\E[F.

  4. Güvenli oynamak istiyorsanız [Fve [H(veya az önce kullandığınız dizinin) başka bir şeye atanmadığından emin olun , aksi takdirde işler bozulacaktır!

  5. çalıştırmak tic terminfo.srcyaratan ~/.terminfodizini.

  6. Üstüne üstlük .zshrcher türlü diğer komutlar önce koyun:export TERMINFO=~/.terminfo

Yeni bir terminal penceresi açın ve iyi olmalısınız, ev ve son şimdi çalışıyor olmalıdır.

Not: Bindkey yöntemi teorik olarak çalışmalı ve daha kolay, ama benim için olmadı.


Ayrıca CentOS + bash'da da test edilmiştir - çalışıyor! Teşekkür ederim :)
Kasia Gauza

6

İşlev ve imleç tuşları ile gönderilen kaçış dizileri bir kaçış karakterinden sonra yazdırılabilir karakterlerden oluşur. Ctrl+ VSonra tuşuna basın Home. Bu, kaçış dizisini tam olarak ekleyecektir. Ardından, bilgisayarınıza bir bindkeytalimat ekleyin ~/.zshrc.

Talimat büyük olasılıkla olacaktır (not O, değil 0):

bindkey '\e[OH' beginning-of-line
bindkey '\e[OF' end-of-line

Ctrl ve ardından Home tuşlarına bastığımda hiçbir şey yazdırılmıyor. Hiçbir şey olmuyor. 0'ı O'ya değiştirmeyi denedim.
balki

@balki Ctrl + V, Ctrl değil. Cevabımda biçimlendirme sorunu olduğunu fark ettim.
Gilles 'SO- kötü olmayı bırak'

Teşekkürler! :) Şimdi alışkınım ctrl + ave ctrl +eve vi modu
balki

5

Ben vurmak zorunda bulunan CTRL-vgo, ardından izin Homeveya Endanahtar dizileri almak ^[[Hve ^[[Fiçin Homeve Endsırasıyla. Aşağıdaki satırları .zshrcdosyaya eklemek benim için sorunu çözdü:

bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line

2

Bu satırları ekleyin /etc/zshrcve ardından a source /etc/zshrc( buradan alınır )

bindkey '\e[1~'   beginning-of-line  # Linux console
bindkey '\e[H'    beginning-of-line  # xterm
bindkey '\eOH'    beginning-of-line  # gnome-terminal
bindkey '\e[2~'   overwrite-mode     # Linux console, xterm, gnome-terminal
bindkey '\e[3~'   delete-char        # Linux console, xterm, gnome-terminal
bindkey '\e[4~'   end-of-line        # Linux console
bindkey '\e[F'    end-of-line        # xterm
bindkey '\eOF'    end-of-line        # gnome-terminal

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.