Проблеми з курсором історії терміналів Mac / iTerm


13

Тому часто я запускаю команду або в Terminal.app, або iTerm, натискаю стрілку вгору, щоб повернутися назад, щоб її відредагувати, і курсор перескакує на рядок вище або десь зовсім у неправильному місці. Особливо це трапляється, коли команда настільки довга, що вона перегортається до наступного рядка. Іноді ці довгі команди відображаються в одному рядку, а іноді вони відображаються правильно в декількох рядках.

Це відбувається як в iTerm, так і в Terminal.app

Також це відбувається в режимах vi та emacs, що робить їх майже непридатними.

якісь ідеї? Спасибі!

Відповіді:


21

Це, швидше за все, тому, що ваше швидке визначення включає послідовності, які не повинні враховуватися в довжину підказки, наприклад, ті, які встановлюються кольорами. Ці послідовності повинні знаходитись між ними \[і \]не допускати підрахунку їх довжини. Ось приклад, який створює все-червоний запит:

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

Цей рядок є у конфігураційному файлі (наприклад, .bashrcабо .bash_profile) для тих, хто, як я, - хто зрозумів після прочитання відповіді.
Монреаліст

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.