Bash изменения подсказок при использовании клавиш со стрелками иногда - PullRequest
0 голосов
/ 08 февраля 2020

Когда я использую свой терминал (iTerm 2 Ma c) с моим PS1, установленным на "\[\e[38;5;117m\W \e[39;38;5;104m\$\e[39;0m\] ", и я использую клавиши со стрелками на go в моей истории bash, это иногда меняет мое приглашение с ~ $ на только первый персонаж и любая команда, на которую я смотрю. Например, перейдя к rvim .bashrc из randomDir $ ls. Эта проблема также сохраняется в приложении терминала по умолчанию.

1 Ответ

1 голос
/ 08 февраля 2020

\W и \$ не должны go внутри \[...\], поскольку bash будет знать, сколько места каждый занимает на терминале.

PS1="\[\e[38;5;117m<b>\]</b>\W <b>\[</b>\e[39;38;5;104m<b>\]</b>\$<b>\[</b>\e[39;0m\] "

Только символы, составляющие escape-последовательность ANSI (которые только инструктируют терминал изменять цвета, не отображая ни одного дополнительного символа), заключены в \[...\].

Помещение их внутрь \[...\] говорит bash игнорировать их вклад в длину приглашения, что приводит к неправильному redr aws.

...