Чому деякі команди (часто довгі) вбрані в bash & zsh?


10

Багато разів, коли я ввожу довгу команду в bash або zsh (це єдині дві оболонки, я впевнений, що я це бачив), курсор перекочується десь посередині рядка, в який я вводжу, може хто-небудь пояснити, чому це, і якщо з цим щось можна зробити?

Я помітив, що це часто трапляється, коли я переглядаю історію моєї оболонки (за допомогою клавіш зі стрілками), коли я стикаюсь із довгим записом, довгий новий запис змішуватиметься з попереднім записом, що робить текст потворним.

У мене є приклад з короткими рядками, які я щойно помітив:

Історія містить:

mkdir sune1
mkdir sune2

Якщо я перейду до mkdir sune1, а потім до mkdir sune2, я б очікував, що мій командний рядок буде mkdir sune2(оскільки це те, до чого я зараз переходив) - але натомість я отримую mkdir1sune2.

Я це часто помічаю роками, але ніколи не дозволяйте мені це занадто сильно турбувати, але я вважаю, що пора змін! Отже, якісь ідеї?

Відповіді:


8

Ваш рядок підказок, ймовірно, неправильно уникнув символи, що не надруковуються. Якщо у вас є що - небудь подібне зміни кольору у вашій рядку, вам потрібно поставити \[і \]навколо послідовностей термінальних евакуаційних так Баш може сказати , що вони не займають багато місця на екрані - в іншому випадку вона прораховується , де фактична команда знаходиться на екрані, і оновлює його в неправильному місці. Дивіться цей розділ з TLDP . У zsh введіть %{і %}навколо втечі послідовності.


У мене дійсно є кольори в моєму підказці, я спробую уникнути їх або видалити їх і побачити, чи це допомагає. Дякую!
Джонатан

Подумайте про використання кольорового модуля zsh. Слід уникати помилок stackoverflow.com/questions/6159856/…
Франциско
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.