Ваша подсказка неверна, но не связана с проблемой git.
Чтобы сделать редактирование строк (т.е. узнать, где находится курсор после печати приглашения), bash необходимо точно знать, насколько широким является приглашение. Он не может распознать каждую возможную специфичную для терминала escape-последовательность, поэтому необходимо явно указать, что определенные части приглашения невидимы; они должны быть окружены кодами \[
и \]
. Например:
PS1="\[\033[1;33m\]\u@\h: \w>\[\033[m\]"
Без этого ввод команды, длина которой превышает одну строку, очень часто приводит к тому, что вторая строка перезаписывает первую и другие сбои.
Однако ничто из этого не влияет на мерзавца. Причина, по которой git log
печатает ESC[33m
заключается в том, что сам git хочет, чтобы эта строка отображалась желтым цветом - он всегда делает это, когда включена опция color, color.ui
. Причина, по которой вы видите слово "ESC" вместо желтого, заключается в том, что ваш $ PAGER не распознает последовательность; он думает, что вы читаете файл с двоичными данными (в отличие от читабельного текста).
Если вы используете по умолчанию less
пейджера в качестве $ PAGER, возможно, вы добавили несколько пользовательских параметров в переменную $LESS
и забыли тот, который допускает цвета, -R
. Обычно git устанавливает $LESS
внутренне при запуске пейджера, но если вы установите эту переменную самостоятельно, git не будет к ней прикасаться, и вы должны добавить к ней -R
:
export LESS="R"
export LESS="e M q R F X z -3"
...Или что-то вдоль этих линий.