2017-02-08 20 views
0

я получил следующее Баш подсказку:Почему мои Bash стремительные цвета делают курсор появляется в неправильном месте

# helper function to set colors 
function ps1c() { 
    tput setaf $1; 
} 

PS1='$(ps1c 243)\h $(ps1c 177)\W $(ps1c 214)$ \[\e[m\]'; 

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

Я проверил следующее, но они на самом деле не обеспечивают четкий ответ о том, как решить проблему:

Я знаю, что проблема имеет что-то связано с длиной подсказки, которая не является тем, что ожидает bash, но я полный bash noob. Что я могу сделать, чтобы исправить это?

+0

Какую версию bash вы используете? – kevin

+0

3.2.57 (1) -release – JakeParis

ответ

1

Выход ps1c не должен учитываться в соответствии с длиной вашего приглашения, поэтому его необходимо также обернуть в \[...\].

PS1='\[$(ps1c 243)\]\h \[$(ps1c 177)\]\W \[$(ps1c 214)\]$ \[\e[m\]'