Виправлено помилки відображення рядків та відображення зворотної області на Mac OS X?


14

Коли я відкриваю термінал (на Mac OS X 10.5.8) і набираю довгий командний рядок: alt текст

... текст не переходить до наступного рядка, коли він завертається: alt текст alt текст

Також іноді, коли я набираю команду, а потім повертаю назад (або стрілку вгору або ^ U): alt текст

... весь рядок не стирається, і я не можу повернути назад після певного моменту: alt текст alt текст

Це відома помилка bash (на Mac OS X)? Чи є виправлення?

Оновлення: Juliano було правильно, проблема була викликана неправильним розмежуванням послідовності кодової консолі в моїй змінній PS1. Зміна:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '

... по-моєму .bashrc:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '

... вирішили проблему.


1
+1 за найкрасивіші знімки екрана терміналу, які я коли-небудь бачив.
Призупинено до подальшого повідомлення.

1
два рядки коду, які ви показали під час оновлення, однакові.
Магне

Хороший улов, @Magne. Минуло чотири роки, як я це дивився, тож конкретно не пам’ятаю, але припускаю, що «раніше» було відсутні \].
Дарил Спітцер

вони не тотожні: 1-й має \]замість '[`
Охад Коен

Відповіді:


19

Поведінка відповідає тому, що у вашому запиті мають консольні коди (щоб змінити колір тощо), а потім не правильно розмітити їх, щоб баш знав, що вони непомітні.

Перш за все, зробіть це:

PS1='\w\$ '

А потім спробуйте ще раз. Якщо проблема вирішена, то мої підозри правильні.

Кожна послідовність кодових консолей повинна бути обмежена змінною PS1 \[і \]в ній. Вони кажуть Башу, що все, що там знаходиться, не зміщує положення курсору. Прочитайте посібник з bash для отримання додаткової інформації.


У цьому і була проблема. Дякую! Я оновлю своє запитання деталями.
Дарил Спітцер

А що, якщо це не вирішить питання?
levesque

3

Щоб створити санітарну підказку, спробуйте http://www.kirsle.net/wizards/ps1.html, це досить приголомшливо. Будьте обережні з дужками у вашому запиті, він намагається уникнути їх чи чогось іншого.


+1 Хоча відповідь @ Джуліано технічно правильна, тут посилається на те, що встановлюються правильні tputкоманди - які виправили новий рядок, `` новий рядок та інші "історії + зворотні зміни", які за допомогою інших ANSI-кодів не вдалося виправити.
Ерік Дункан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.