Zdobywanie; 5D po wciśnięciu ctrl + klawisz strzałki w terminalu na FreeBSD

18

Na centos mogę pominąć słowo, naciskając ctrl + strzałkę (w lewo lub w prawo) w terminalu. Kiedy ssh w polu FreeBSD i próbuję tego samego wzoru, otrzymuję:

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

(każda próba = ; 5D )

Czy istnieje sposób, aby to naprawić? Używam Ubuntu 12.04 + Terminator.

Z góry dziękuję.

jdorfman
źródło

Odpowiedzi:

26

A .inputrcw twoim katalogu domowym spowoduje, że ctrl+ leftprzestanie działać na Ubuntu (na przykład).

Aby wszystko działało, dodaj następujące elementy do ~/.inputrc:

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc
f.kowal
źródło
1
Aby to wyjaśnić - .inputrcnależy to ustawić na zdalnym komputerze.
omikron
działało dla mnie dopiero po ponownym uruchomieniu byobu.
immeëmosol
1
Dla kogoś, kto jest całkowicie brakuje ich .inputrc, właściwych linii dla mnie były: "\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

O ile nie zmieniłeś ich domyślnie, powłoka, której używasz na Ubuntu, to bash. W FreeBSD domyślną powłoką jest csh. Możesz zmienić powłokę za pomocą następującego polecenia w obu systemach operacyjnych:

chsh

Ustaw swoją powłokę we FreeBSD na / usr / local / bin / bash. Bash nie jest częścią FreeBSD, więc jeśli jeszcze tego nie zrobiłeś, zainstaluj go z portów:

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

I ostatnia rzecz: nie zmieniaj powłoki dla roota. Do tego służy konto „toor”: wszystkie uprawnienia roota, ale możesz ustawić powłokę na cokolwiek zechcesz. Powodem jest to, że nie ma żadnych działań systemowych, które działają pod kontrolą toor, więc niczego nie zepsujesz ani nie pomylisz, zmieniając powłokę tego konta na coś, do czego jesteś przyzwyczajony (lub może być bardziej funkcjonalny jako powłoka logowania).

Utkonos
źródło
1

Powłoka uruchomiona na komputerze FreeBSD prawdopodobnie nie obsługuje tej sekwencji kontrolnej. Jednak nie wiedząc, jaką powłokę używasz na obu końcach, trudno jest powiedzieć na pewno.

wfaulk
źródło
1

Jeśli używasz ZSH, użyj go w pliku / 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
źródło
0

Wygląda na to, że masz nieprawidłowe ustawienie $ TERM. echo $TERMaby dowiedzieć się, jakie jest twoje obecne ustawienie. Może chcesz użyć Xterm export TERM=xterm-256color.

Aaron Kaufman
źródło
wciąż brak miłości = |
jdorfman