Пользовательское приглашение не выполнялось во время истории и управления a в Terminal.app OS X с использованием Bash

589
Jed

Я настроил мое приглашение в .bash_profile, чтобы оно выглядело так:

export PS1="\w \e[0;32m\$(vcprompt -f '[%n:%b]')\e[m\$ " 

Теперь, когда я нажимаю стрелку вверх, чтобы вернуться в историю, нахожу ту, которую я хочу, затем нажимаю control-a, чтобы перейти к началу строки, она часто останавливает меня на 5-м символе, вместо того, чтобы идти полностью к началу., Эти первые несколько символов затем «замораживаются» на месте. Если я буду стрелять вверх или вниз оттуда, это как если бы эти символы были новыми $.

Я нажимаю клавишу возврата и возвращаюсь в нормальное русло, но раздражает, что эти персонажи застряли там! Я что-то напортачил в настройке? Спасибо!

7

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

9
Gordon Davisson

Вам нужно пометить непечатаемые разделы приглашения \[..., \]чтобы bash мог сказать, что они не будут занимать место на экране. Пытаться:

export PS1="\w \[\e[0;32m\]\$(vcprompt -f '[%n:%b]')\[\e[m\]\$ " 
Вот и все! Спасибо, Гордон. Jed 12 лет назад 0