web-dev-qa-db-ja.com

FreeBSDのターミナルでctrl +矢印キーを押すと; 5Dを取得する

Centosでは、ターミナルでCtrl +矢印(左または右)を押すことでWordをスキップできます。 FreeBSDのボックスにsshして、同じパターンを試すと、次のようになります。

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

(各試行= ; 5D

これを修正する方法はありますか? Ubuntu 12.04 +ターミネーターを使用しています。

前もって感謝します。

20
jdorfman

ホームディレクトリの.inputrcは ctrl+left Ubuntu(たとえば)での作業を停止します。

すべてを機能させるには、~/.inputrcに次を追加します。

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

これらをデフォルトから変更していない限り、Ubuntuで使用しているシェルはbashです。 FreeBSDでは、デフォルトのシェルはcshです。両方のOSで次のコマンドを使用してシェルを変更できます。

chsh

FreeBSDのシェルを/ usr/local/bin/bashに設定します。 BashはFreeBSDの一部ではないため、まだインストールしていない場合は、ポートからインストールします。

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

最後に、シェルをルートに変更しないでください。これが「toor」アカウントの目的です。rootのすべての特権ですが、シェルを好きなように設定できます。その理由は、Toorの下で実行されるシステムアクティビティがないためです。そのため、そのアカウントのシェルを慣れ親しんだものに変更することで、何かを壊したり、誰かを混乱させたりすることはありません(またはログインシェルとして機能する可能性があります)。

2
Utkonos

FreeBSDマシンで実行しているシェルは、おそらくその制御シーケンスをサポートしていません。ただし、どちらのシェルで実行しているシェルなのかがわからないと、確かに言うのは困難です。

1
wfaulk

ZSHを使用する場合は、これを/ 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
1
vermaden

$ TERM設定が間違っている可能性があります。 echo $TERM現在の設定を確認します。 xtermを使いたいかもしれませんexport TERM=xterm-256color

0
aaron kaufman