Глюки терминальной линии

Я установил Ubuntu 11.10 mini + LXDE и хотел изменить командную строку в терминале (кроме простого белого), поэтому я добавил синий цвет к линии пути (все до знака $), и он работает нормально, но у меня два странных глюки сейчас:

  1. Когда я пишу строку, которая длиннее, чем окно терминала, вместо того, чтобы начинать со следующей строки, она начинается с той же самой, перезаписывая все, что было там.
  2. Иногда при навигации по предыдущим командам (клавиши со стрелками вверх / вниз) некоторая часть команды застревает и рассматривается как часть подсказки (синий текст), но она белая и не удаляется и не может быть удалена. принимается как часть команды, когда я нажимаю Enter.

Что я могу испортить? Плохо то, что я не помню, что именно я изменил, но я уверен, что я изменил только одну строку в bashrc

Редактировать : для тех, кто хочет настроить терминальную линию, вот хороший учебник -> ссылка < - . Убедитесь, что вы не пропустили никаких символов (особенно '\'), и все работает отлично.

2
задан 21 November 2011 в 14:22

3 ответа

Я очень опаздываю, но проблема здесь состоит в том, что Bash не знает, где установить курсор, потому что он интерпретирует кодовые символы особого цвета как обычный текст. Это фиксируется путем помещения [и] отмечает вокруг цветовых кодов. Вместо записи \e[1;31m для создания текста красным необходимо записать \[\e[1;31m\].

Если у Вас есть эта проблема, тщательно проверьте все цветные управляющие коды, чтобы видеть, есть ли у них те теги вокруг них.

1
ответ дан 21 November 2011 в 14:22

bashrc по умолчанию можно найти в /etc/skel/.bashrc. Я бы посоветовал вам сделать резервную копию вашего текущего bashrc, затем замените ваш bashrc на тот, что есть в skel, и посмотрите, не возникнут ли проблемы. Затем, если они этого не сделают, сделайте резервную копию и отредактируйте свой новый bashrc, добавив комментарии в том, что вы сделали !!

0
ответ дан 21 November 2011 в 14:22

У меня были те же симптомы, но в моем случае проблема заключалась в последовательности сброса ASCII-звонка \a в моем приглашении Bash, что привело к проблеме. Цветовые коды были правильно заключены в квадратные скобки (спасибо @ringstaart).

Моя проблемная настройка приглашения Bash в .bashrc была (без определения переменных цвета):

PS1="\[$BLUE\]\u@\h: \[$YELLOW\]\w\a\\[$PURPLE\]\[$WHITE\]\$ "

Просто удаление \a решило проблему:

[ 119] PS1="\[$BLUE\]\u@\h: \[$YELLOW\]\w\\[$PURPLE\]\[$WHITE\]\$ "

0
ответ дан 21 November 2011 в 14:22

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

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