когда я пытаюсь перейти к предыдущей команде, она закрывает текущий корень каталога в iterm

Привет, я новичок в интерфейсе командной строки на OSX. прежде чем я начал кодировать, я изменил цвет bash, который мне нравится.

#github branch show
parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

#export PS1="\W \$"
export PS1="\[\e[0;36m\W\e[m\e[32m\$(parse_git_branch)\[\033[00m\] $ "

#hightlight path
alias ls="ls -G"

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

Desktop $
Descd ~

есть ли какая-либо документация, в которой я могу узнать больше о настройке PS1 и решить эту проблему?

заранее спасибо.


person gnujoow    schedule 26.08.2016    source источник


Ответы (1)


Вы хотите заключать только символы, которые не перемещают курсор внутри \[...\].

Сравните свою подсказку сверху с правильной подсказкой внизу.

export PS1="\[\e[0;36m\W\e[m\e[32m\$(parse_git_branch)\[\033[00m\] $ "
export PS1="\[\e[0;36m\]\W\[\e[32m\]\$(parse_git_branch)\[\033[00m\] $ "

(Я также взял на себя смелость удалить явно ненужный \e[m из середины вашей подсказки.)

person chepner    schedule 26.08.2016
comment
Большое спасибо @chepner, похоже, я пропустил это, когда кодировал XD. Кроме того, можете ли вы порекомендовать какой-либо документ для изучения команды bash? я хочу узнать больше об этом. - person gnujoow; 26.08.2016