set_prompt
私は常に新しい行にプロンプトを印刷するように設定しました。
set_prompt() {
local curpos
stty -echo
while read -t 0; do :; done
echo -en "\033[6n"
IFS=';' read -s -d R -a curpos
stty echo
(( curpos[1] > 1 )) && printf "\n"
}
emacs
ただし、テキストエディタ(orなど)でファイルを編集すると、文字がnano
間違った場所に印刷されるか、ナビゲーション中にカーソルが前後に移動してテキストが重なるようにテキストが混在します。
この時点で
PS1=\[\]$(git rev-parse --git-dir > /dev/null 2>&1 && git rev-parse --abbrev-ref HEAD 2>/dev/null || echo ${HOSTNAME})\[\]:\[\]\W\[\] Necktwi\[\]$\[\]
PROMPT_COMMAND=set_prompt
設定に加えて、set_prompt
次のこともできます。
PS1='$(printf "%$((COLUMNS-1))s\r")'$PS1
しかし、これにもemacs
テストされていない欠陥がありますが、nano
上記のように悪くはありません。生成された偽の文字を削除して、それをはるかに少なく歪んだテキストに変更することができました。