履歴をスクロールするときに、複数行のコマンドがカーソル位置を混乱させるのを防ぐにはどうすればよいですか?

履歴をスクロールするときに、複数行のコマンドがカーソル位置を混乱させるのを防ぐにはどうすればよいですか?

関連:履歴検索でbashプロンプトに問題が発生するのはなぜですか?

歴史は次のとおりです。

 1831  git remote -v
 1832  gs 
 1833  gd 
 1834  gc -am 'moved apsum options etc to their own file
set routes to allow cors
changes to the apsum pull ' 
 1835  git push
 1836  reset
 1837  history
 1838  __git_ps1
 1839  reset
 1840  history
 1841  Kill 99894
 1842  history

g*それらはすべてgitコマンドのエイリアスです。履歴をスクロールすると、数値1833に達するまですべてが正常です(下線はカーソル位置を示します)。

$ gd _
[ up arrow]
$ gds_
[up arrow]
$ gdit remote -v_

私はPS1に印刷されていない文字のためだと思いますが、すべて括弧で囲みました。

PS1="\n\[$FCYN\]\$(date +%H:%M:%S) \w\[$IGreen\]\$(__git_ps1)\[$Black\] $ \[$DarkGray\]"

私が逃したものは何ですか?複数行のコミットメッセージがある場合にのみ発生しますか?

編集する:最終的なソリューションが大きすぎてコメントできません。

export PS1="\\n\[\033[38;5;246m\]\u@\[$(tput sgr0)\]\[\033[38;5;245m\]\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;28m\]\w\[$(tput sgr0)\]\[\033[38;5;15m\]\[$(tput sgr0)\]\[\033[38;5;2m\]`__git_ps1`\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;90m\]\t\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;232m\]\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\n\[$(tput sgr0)\]\[\033[38;5;0m\]\\$\[$(tput sgr0)\] "

奇妙に見えますが、明るい背景に読みやすいgitブランチと色を使用して素晴らしいヒントを作成します(ここでは見ることができません)。

collumj@machineName ~ (dev) 17:35:42  
$ 

非常にありがとうhttp://bashrcgenerator.com/

ベストアンサー1

「すべて」は括弧で囲まれていますが、未知のものがいくつかあります。列が右に移動したため、これは bash が認識しないテキストを送信することを意味します。

ロケールの不一致が原因でこの問題が発生する可能性がありますが、それ

設定が次のカラー機能を使用していないことを確認して確認します__git_ps1Fedoraの帽子電話が呼び出されます。git-prompt.sh、これは(設定されている場合GIT_PS1_SHOWCOLORHINTS)エスケープシーケンスを送信でき、実際の列に対してbashを混乱させる可能性があります。

おすすめ記事