Tasto Home non funzionante nel terminale


13

Sto usando GNOME Terminal 2.7.3 e zsh 4.3.9 (x86_64-unknown-linux-gnu)

Homee Endnon funzionano. Non succede nulla e non viene visualizzato nulla quando li premo. ma funzionano quando premo shift + Home(scorre fino all'inizio dell'output della shell) e funzionano anche in altri programmi con interfaccia grafica. Ho cercato su Google e ho provato quanto segue. Nessun cambiamento :(

  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

PS: quando mi trovo nell'ultima scheda e premo, Ctrl + pagedownvengo ;5~stampato sullo schermo. Questo dà qualche indizio?


Hai un .inputrcnella tua home directory? Questo succede con un utente appena creato? È sempre successo o è iniziato un giorno?
bahamat,

No non ho .inputrc. Non ho il permesso di creare un nuovo utente. È sempre stato così. Vivo con ctrl +ae ctrl+e.
balki,

1
Immagino che in quel caso non suggerirò ctrl+a& ctrl+e;-)
bahamat

Risposte:


3

Sono su fedora ora, ma ti consiglio di leggere attentamente la wiki di Archlinux , tutto: le chiavi Home e End non funzionano .

Cosa ho fatto per risolverlo:

  1. Premere Ctrl-V Home, viene stampata la sequenza di escape per il tasto Home. E ' non è \e[4~ e \e[1~come mi aspettavo di essere, cercando in /etc/inputrc. Era [He[F

  2. Estrarre le informazioni sul terminale infocmp $TERM >terminfo.src

  3. Apri quel file per la modifica, ad esempio vim terminfo.src, cerca khomeed kendè assegnato a qualcosa, diciamo khome=\E[1~e kend=\E[4~che in questo caso non funziona. rimuovilo e sostituiscilo con la sequenza che hai trovato nel passaggio # 1, quindi per me, dopo averlo modificato, è stato: khome=\E[He kend=\E[F.

  4. Se vuoi giocare in modo sicuro assicurati [Fche [H(o qualunque sequenza tu abbia appena usato) non sia assegnato a qualcos'altro o le cose saranno incasinate!

  5. eseguire tic terminfo.srcche crea ~/.terminfodirectory.

  6. Oltre a .zshrctutti gli altri comandi, inserisci:export TERMINFO=~/.terminfo

Apri una nuova finestra del terminale e dovresti stare bene, casa e fine devono funzionare ora.

PS: Il metodo bindkey dovrebbe teoricamente funzionare ed è più semplice, ma non è stato per me.


6

Le sequenze di escape inviate dalla funzione e dai tasti cursore sono costituite da un carattere di escape seguito da caratteri stampabili. Premi Ctrl+ Vquindi Home. Ciò inserirà letteralmente la sequenza di escape. Quindi aggiungi bindkeyun'istruzione alla tua ~/.zshrc.

È probabile che l'istruzione sia (nota O, non 0):

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

nulla viene stampato quando premo Ctrl quindi Home. Non accade nulla. Ho provato a cambiare anche 0 a O.
Balki,

@balki È Ctrl + V, non Ctrl. Ho appena realizzato che c'era un problema di formattazione nella mia risposta.
Gilles 'SO- smetti di essere malvagio'

Grazie! :) Ora sono abituato ctrl + ae ctrl +ee VI modalità
Balki

5

Ho scoperto che dovevo premere CTRL-v, rilasciare, quindi il tasto Homeo Endper ottenere le sequenze ^[[He ^[[Fper Homee Endrispettivamente. L'aggiunta delle seguenti righe al .zshrcfile ha risolto il problema per me:

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

2

Aggiungi queste righe a /etc/zshrce quindi esegui un source /etc/zshrc(preso da qui )

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.