Настройка шрифтов шрифтов Bash Terminal

Недавно я задал этот вопрос, как настроить цвета шрифтов терминала bash. На этот вопрос был дан ответ, и я получил нужные цвета, используя ссылку, предоставленную полезным пользователем.

Команда, которую я искал, была:

export PS1="\e[1;34m\u@\H : \e[m\[$(tput sgr0)\]"

Который дает мне следующее, в желаемом цвете:

user@host :

Однако после использования это какое-то время, я замечаю, что мой терминал bash в настоящее время довольно затруднен при записи и доступе к истории команд. этот поток описывает точный вопрос, который у меня есть, и решение: «используйте \[...\] вокруг частей PS1 с длиной 0».

Мне кажется, что я пробовал все, чтобы сделать именно это в моем PS1, но история по-прежнему остается неисправной. Может кто-нибудь, пожалуйста, указать, что мне не хватает?

0
задан 2 May 2017 в 00:31

3 ответа

Эти части PS1 имеют длину 0, потому что они устанавливают форматирование (используя escape-последовательности ANSI), но не производят никакого другого выхода:

\e[1;34m
\e[m
$(tput sgr0)

Также:

Вы можете вынуть $(tput sgr0), потому что \e[m делает то же самое. Поместите PS1 в одинарные кавычки, чтобы переменные и команды в нем были динамическими, а не статическими. (Хотя это не важно в этой ситуации.)

Итак, вы ищете эту команду:

export PS1='\[\e[1;34m\]\u@\H : \[\e[m\]'
1
ответ дан 22 May 2018 в 23:01
  • 1
    Прекрасно объяснил, и делает то, что я просил, спасибо за помощь! – Klicker 2 May 2017 в 19:50

Эти части PS1 имеют длину 0, потому что они устанавливают форматирование (используя escape-последовательности ANSI), но не производят никакого другого выхода:

\e[1;34m \e[m $(tput sgr0)

Также:

Вы можете вынуть $(tput sgr0), потому что \e[m делает то же самое. Поместите PS1 в одинарные кавычки, чтобы переменные и команды в нем были динамическими, а не статическими. (Хотя это не важно в этой ситуации.)

Итак, вы ищете эту команду:

export PS1='\[\e[1;34m\]\u@\H : \[\e[m\]'
1
ответ дан 18 July 2018 в 13:58

Эти части PS1 имеют длину 0, потому что они устанавливают форматирование (используя escape-последовательности ANSI), но не производят никакого другого выхода:

\e[1;34m \e[m $(tput sgr0)

Также:

Вы можете вынуть $(tput sgr0), потому что \e[m делает то же самое. Поместите PS1 в одинарные кавычки, чтобы переменные и команды в нем были динамическими, а не статическими. (Хотя это не важно в этой ситуации.)

Итак, вы ищете эту команду:

export PS1='\[\e[1;34m\]\u@\H : \[\e[m\]'
1
ответ дан 24 July 2018 в 20:18

Другие вопросы по тегам:

Похожие вопросы: