コマンドが長すぎる取得するときにコマンドライン自体を上書き

StackOverflow https://stackoverflow.com/questions/2024884

  •  19-09-2019
  •  | 
  •  

質問

私はDebianのサーバにログインするためにはPuTTYを使用しています。私はタイピングだコマンドが長すぎるなったとき、それはラップアラウンドして新しい行を開始していないことを、この奇妙な問題を抱えています。代わりに、のと同じの行の先頭から開始し、プロンプトと、コマンドの先頭に上書きを開始します。

コマンドがうまく動作しますが、それは本当に迷惑ですが、私は私のためにこの問題を解決するだろういくつかの設定があると仮定している?

役に立ちましたか?

解決

bashがウィンドウをサイズ変更していることを知らせる信号を得ることはありませんので、別のコマンドを実行している間、あなたはパテ・ウィンドウのサイズを変更すると、

私はこの動作を見てきました。

これは追加問題の場合:

shopt -s checkwinsize

それは離れて行く行う必要があります。

他のヒント

私はちょうどこれを自分で解決してきました。

これは、PS1コマンドプロンプトで、単にいくつかの色のエスケープました

LTGREEN="\033[40;1;32m"
LTBLUE="\033[40;1;34m"
CLEAR="\033[0m"
LIGHT_GRAY="\033[40;1;33m"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ❯ "

問題は、色リテラルは括弧で囲まれていないということです。彼らの周りエスケープブラケットを配置すると、完全に問題を修正します:

LTGREEN="\[\033[40;1;32m\]"
LTBLUE="\[\033[40;1;34m\]"
CLEAR="\[\033[0m\]"
LIGHT_GRAY="\[\033[40;1;33m\]"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ❯ "

この情報がお役に立てば幸いです。

試します:

eval $(resize)

Ctrlキー + L 押してみてください。 (それとも Altキー + L - 何か + L とにかく)私が正しく覚えていれば、これはにコードを再実行お使いの端末の大きさを把握し、それに応じて調整します。

Ctrl-l

はCtrl-Lの作品。私はに必要なパテを推測する。

私のために働いたのこのソリューション: あなたの.bashrcに次のコードを追加します:

if [ $(tty) == '/dev/ttyS0' ]; then
  trap resize DEBUG
fi

パテとそのA "bashの" イズムを行うには何もしています。

そのあなたはそれがあなたを悩ます場合は、長いコマンドラインで別の何かをする「のksh」に切り替えることができ、それに使用されますが、いったん非常に便利(何のDebian上わからない!)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top