Ottenere; 5D quando si preme ctrl + tasto freccia in un Terminale su FreeBSD


18

Su centos posso saltare una parola premendo ctrl + freccia (sinistra o destra) in un terminale. Quando ssh in una scatola di FreeBSD e provo lo stesso schema ottengo:

$ tail -f 20120412.log;5D;5D;5D

(ogni tentativo = ; 5D )

C'è un modo per risolvere questo problema? Sto usando Ubuntu 12.04 + Terminator.

Grazie in anticipo.

Risposte:


26

A .inputrcnella tua home directory farà smettere di funzionare ctrl+ leftsu Ubuntu (per esempio).

Per far funzionare tutto, aggiungi quanto segue a ~/.inputrc:

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc

1
Per chiarire: questo .inputrcdovrebbe essere impostato sulla macchina remota.
omikron

ha funzionato per me, solo dopo aver riavviato byobu però.
immeëmosol,

1
Per tutti coloro che è totalmente assente loro .inputrc, le linee importanti per me erano: "\e[1;5C": forward-word, "\e[1;5D": backward-word, "\e[5C": forward-word, "\e[5D": backward-word, "\e\e[C": forward-word,"\e\e[D": backward-word
AlbinoDrought

2

A meno che tu non li abbia modificati di default, la shell che stai usando su Ubuntu è bash. Su FreeBSD, la shell predefinita è csh. È possibile modificare la shell con il seguente comando in entrambi i sistemi operativi:

chsh

Imposta la tua shell in FreeBSD su / usr / local / bin / bash. Bash non fa parte di FreeBSD, quindi se non l'hai già fatto, installalo dalle porte:

cd /usr/ports/shells/bash
make install
make clean

Un'ultima cosa: non cambiare la shell per root. Ecco a cosa serve l'account "toor": tutti i privilegi di root, ma puoi impostare la shell su quello che vuoi. Il motivo è che non ci sono attività di sistema eseguite sotto il dito, quindi non romperai nulla o confonderai nessuno cambiando la shell di quell'account in qualcosa a cui sei abituato (o potrebbe essere più funzionale come shell di accesso).


1

La shell che stai eseguendo sulla macchina FreeBSD probabilmente non supporta quella sequenza di controllo. Senza sapere quale shell stai usando su entrambe le estremità, è difficile dirlo con certezza.


1

Se usi ZSH, usa questo file / etc / zshrc .

case "${TERM}" in
  cons25*|linux) # plain BSD/Linux console
    bindkey '\e[H'    beginning-of-line   # home 
    bindkey '\e[F'    end-of-line         # end  
    bindkey '\e[5~'   delete-char         # delete
    bindkey '[D'      emacs-backward-word # esc left
    bindkey '[C'      emacs-forward-word  # esc right
    ;;
  *rxvt*) # rxvt derivatives
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    # workaround for screen + urxvt
    bindkey '\e[7~'   beginning-of-line   # home
    bindkey '\e[8~'   end-of-line         # end
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    ;;
  *xterm*) # xterm derivatives
    bindkey '\e[H'    beginning-of-line   # home
    bindkey '\e[F'    end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\e[1;5C' forward-word        # ctrl right
    bindkey '\e[1;5D' backward-word       # ctrl left
    # workaround for screen + xterm
    bindkey '\e[1~'   beginning-of-line   # home
    bindkey '\e[4~'   end-of-line         # end
    ;;
  screen)
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    bindkey '^[[1;5C' forward-word        # ctrl right
    bindkey '^[[1;5D' backward-word       # ctrl left
    ;;
esac

0

Sembra che tu abbia l'impostazione $ TERM errata. echo $TERMper scoprire qual è l'impostazione attuale. Potrebbe voler usare xterm export TERM=xterm-256color.


ancora nessun amore = |
Jdorfman,
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.