
Обычно у меня длинные команды терминала, и всякий раз, когда я пытаюсь использовать историю команд (нажимая стрелку вверх), форматирование текста становится искаженным, а курсор появляется не в том месте. В этот момент редактирование команды становится невозможным, а фактическое положение курсора не отображается на экране должным образом.
Если я изменю размер окна терминала так, чтобы вся команда умещалась на одной строке, то форматирование исправится, но иногда у меня не хватает места на экране, чтобы это сделать. Есть идеи?
решение1
Вы настраивали приглашение оболочки (например, раскрашивание или что-то в этом роде)? Обычно это происходит из-за того, что в приглашении есть непечатаемые символы (например, последовательности смены цвета), и они сбивают оболочку с толку относительно ширины приглашения и, следовательно, того, как переносить командную строку.
Если вы используете bash в качестве оболочки, правильным решением будет обернуть непечатаемые последовательности, \[...\]
чтобы дать оболочке знать, что они непечатаемые. Например, если вы хотите, чтобы приглашение было синим ( \e[0;34m
чтобы сделать его синим, \e[m
чтобы вернуться к нормальному цвету), вы бы использовали:
PS1='\[\e[0;34m\]your prompt text here\[\e[m\]'
решение2
Это происходит на вашей локальной машине - под этим я подразумеваю, что вы не подключались по SSH к другому компьютеру? Если это происходит локально, попробуйте выйти из Terminal.app, удалить файл .plist и снова открыть Terminal.app.