Проблема PS1, циклы cmd

476
Runar

Я установил PS1следующее значение:

PS1="\033[0;37m[\033[1;33m\w\033[0;37m]\n\t \[[34m\]\u\033[0;37m@\[[34m\]\[[1m\]\h\[(B[m\] $" 

Проблема в том, что любая команда, охватывающая больше строки, зацикливается и не генерирует новую строку. Поэтому я перезаписываю строку, которую уже набрал. Что не так с PS1?

1
это даже не правильная команда, bash ждет большего ввода 13 лет назад 0

1 ответ на вопрос

6
Ignacio Vazquez-Abrams

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

Так что я должен добавить до и после каких частей линии? Runar 13 лет назад 0
Вы добавляете его до и после частей, которые не печатаются, столько раз, сколько требуется. Ignacio Vazquez-Abrams 13 лет назад 0
Но строка печатает, но когда я набираю длинную команду, она зацикливается. Runar 13 лет назад 0
ПЕРСОНАЖИ. Попробуйте снова. Ignacio Vazquez-Abrams 13 лет назад 0
Большое спасибо! Теперь это работает :) `PS1 =" \ 033 [0; 37 м [\ 033 [1; 33 м \ [\ w \] \ 033 [0; 37 м] \ [\ n \] \ [\ t \] \ [$ \] \ [\ u \] \ 033 [0; 37m @ \ [$ \] \ [$ \] \ [\ h \] \ [$ \] \ $ ` Runar 13 лет назад 0

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