13

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

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

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

есть идеи? Спасибо!

2 ответа2

20

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

PS1='\[\033[31m\]\u@\h:\w\$\[\033[0m\]'
0

Для тех, кто имеет эту проблему, эта ошибка исправлена. Для получения дополнительной информации вы можете посетить здесь. https://code.google.com/p/iterm2/issues/detail?id=2245

Возможно, вам придется извлечь последний источник из github и собрать из источника.

https://github.com/gnachman/iTerm2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .