Mac Terminal / Проблемы с курсором истории iTerm

13

Очень часто я запускаю команду в Terminal.app или iTerm, нажимаю стрелку вверх, чтобы вернуться, чтобы отредактировать ее, и курсор переходит на строку выше или где-то совершенно не в том месте. Это особенно происходит, когда команда настолько длинна, что переносится на следующую строку. Иногда все эти длинные команды отображаются в одной строке, а иногда они отображаются корректно в нескольких строках.

Это происходит как в iTerm, так и в Terminal.app

Также происходит в режимах vi и emacs, что делает их практически бесполезными.

есть идеи? Благодарность!

carillonator
источник

Ответы:

20

Скорее всего, потому что ваше определение подсказки включает последовательности, которые не должны учитываться в длине подсказки, например, для настройки цветов. Эти последовательности должны быть между \[и \]для предотвращения подсчета их длины. Вот пример, который выдает полностью красное приглашение:

PS1='\[\033[31m\]\u@\h:\w\$\[\033[0m\]'
Приостановлено до дальнейшего уведомления.
источник
Эта строка находится в файле конфигурации (как .bashrcили .bash_profile), для любого - как я - кто не имеет понятия после прочтения ответа.
Монреалист