Get; 5D beim Drücken von Strg + Pfeiltaste in einem Terminal unter FreeBSD

18

Bei Centos kann ich ein Wort überspringen, indem ich in einem Terminal Strg + Pfeil (links oder rechts) drücke. Wenn ich in eine FreeBSD-Box ssh und das gleiche Muster versuche, das ich erhalte:

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

(jeder Versuch = ; 5D )

Gibt es eine Möglichkeit, dies zu beheben? Ich benutze Ubuntu 12.04 + Terminator.

Danke im Voraus.

jdorfman
quelle

Antworten:

26

A .inputrcin Ihrem Home-Verzeichnis bewirkt, dass ctrl+ leftunter Ubuntu nicht mehr funktioniert (zum Beispiel).

Fügen Sie Folgendes hinzu, um alles zum Laufen zu bringen ~/.inputrc:

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc
f.kowal
quelle
1
Zur Verdeutlichung .inputrcsollte dies auf dem Remote-Computer eingestellt sein.
Omikron
hat bei mir funktioniert, allerdings erst nach dem neustart von byobu.
Immeëmosol
1
Für alle , die ihre ganz fehlen .inputrc, die entsprechenden Zeilen für mich waren: "\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

Sofern Sie diese nicht vom Standard geändert haben, ist die Shell, die Sie unter Ubuntu verwenden, bash. Unter FreeBSD ist die Standardshell csh. Sie können Ihre Shell mit dem folgenden Befehl in beiden Betriebssystemen ändern:

chsh

Setze deine Shell in FreeBSD auf / usr / local / bin / bash. Bash ist nicht Teil von FreeBSD. Wenn Sie dies noch nicht getan haben, installieren Sie es über die folgenden Ports:

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

Eine letzte Sache: Ändern Sie nicht die Shell für root. Das ist, wofür das "toor" Konto ist: Alle Rechte von root, aber Sie können die Shell auf das einstellen, was Sie wollen. Der Grund dafür ist, dass es keine Systemaktivitäten gibt, die unter toor ausgeführt werden. Sie können also nichts kaputt machen oder jemanden verwirren, indem Sie die Shell dieses Kontos in etwas ändern, das Sie gewohnt sind (oder möglicherweise als Anmeldeshell besser geeignet sind).

Utkonos
quelle
1

Die Shell, die Sie auf der FreeBSD-Maschine ausführen, unterstützt diese Steuerungssequenz wahrscheinlich nicht. Ohne zu wissen, auf welcher Shell Sie sich gerade befinden, ist dies jedoch schwer zu sagen.

wfaulk
quelle
1

Wenn Sie ZSH verwenden, verwenden Sie diese Datei unter / 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
vermaden
quelle
0

Sieht so aus, als hätten Sie möglicherweise die falsche $ TERM-Einstellung. echo $TERMum herauszufinden, was Ihre aktuelle Einstellung ist. Vielleicht möchten Sie xterm verwenden export TERM=xterm-256color.

Aaron Kaufman
quelle
immer noch keine Liebe = |
Jdorfman