この質問にはすでに回答があります :ターミナルプロンプトが正しくラップされない
(9つの回答)
3年前に閉鎖されました。
Linux
(9つの回答)
3年前に閉鎖されました。
コマンドの履歴を見始めると、表示されているコマンドの一部の文字が消去されないことがよくあります。例:
何が起こっているのか:
prompt$ some_command
prompt$ some_commanother_command
何が起こったのか:
prompt$ some_command
prompt$ another_command
これらの文字を消去することはできず、コマンドの実行時にbashはそれらを無視します。また、新しいプロンプトが表示されているとき(Enter
を押した後)にも表示されなくなります。 たとえば)。
私の職場でLinuxを使用している他の人に聞いたところ、彼らもその問題を抱えていることがあるとのことでしたが、その問題をどのように解決するかについてはわかりませんでした。
私はUbuntu11.10を持っていて、guakeを使用しています。これが私のPS1
です :
e[0;31mu A ${PWD##*/}e[0;32m$(parse_git_branch)e[0;31m$e[m
ここで、parse_git_branch
parse_git_branch () {
git name-rev HEAD 2> /dev/null | sed 's#HEAD (.*)# (1)#'
}
私の知る限り、「派手な」PS1が少なくても、同僚はその問題を抱えています。
承認された回答:
[...]
を使用する PS1の長さが0の部分の周り。bashがプロンプトの長さを正しく取得するのに役立ちます。この方法を使用しても、マルチバイト文字を使用するとコマンドラインが台無しになる可能性があります(少なくとも私の場合はそうです)。 Ctrl + Lを押す このような場合にも役立ちます(ただし、同時に画面をクリアします)。