Не удается получить конфигурацию.bashrc PS1 для корректного рендеринга

Вы можете ознакомиться с инструкциями по сборке на их странице Github . Этот файл Readme датирован ноябрем 2017 года :

.

Running Enlightenment as a Wayland compositor is not considered "safe" for everyday desktop use

3
17.12.2020, 16:27
2 ответа

Проблема в том, что вы используете не печатаемые маркеры -для чего-то, что распечатывается(\t-метка времени)

STARTCOLOR='\[\e[0;31m\]'
ENDCOLOR='\[\e[0m\]'
BACKGROUND='\[\e[47m\]'
export PS1="$STARTCOLOR$BACKGROUND\u@\h \t$ENDCOLOR\w>\$?\$ "

\[... \]предназначен только для окружения непечатаемых -последовательностей символов, таких как цветовые коды.

7
18.03.2021, 22:42

Итак, проблема в том, что вы "чрезмерно используете" \[и \]. Их следует использовать только для непечатаемых последовательностей символов -в соответствии с руководством bash :

.
\[
Begin a sequence of non-printing characters.
This could be used to embed a terminal control sequence into the prompt.
\]

Кроме того, существует специальный синтаксис, который необходимо использовать, чтобы Bash правильно отображал вкладки:$'\t'.

Таким образом, более или менее исправленная версия кода подсказки будет выглядеть так:

#!/usr/bin/env bash

readonly PROMPT_STARTCOLOR='\[\e[0;31m\]'
readonly PROMPT_ENDCOLOR='\[\e[0m\]'
readonly PROMPT_BACKGROUND='\[\e[47m\]'

export PS1="$PROMPT_STARTCOLOR$PROMPT_BACKGROUND\u@\h"$'\t'"$PROMPT_ENDCOLOR\w>$?$"

Обратите внимание, что я переименовал ваши переменные, чтобы предотвратить возможный конфликт с вашей средой.

Для использования скрипта:

source <path_to_file>

Связанный вопрос, который я задавал некоторое время назад:Проблема с настройкой подсказки с предложением if

3
18.03.2021, 22:42

Теги

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