при использовании автодополнения клавишей Tab в zsh, используя ohmyzsh, в относительно новой установке Arch, первые два символа будут дублироваться и станут неудаляемыми.
Например, я набираю yay -S terminato
, затем нажимаю Tab для автозаполнения до терминатора, верно? Это работает нормально, и я могу перемещаться по результатам с помощью Tab, как обычно, но начало строки, вместо того, чтобы быть, yay -S term...
вместо этогоyayay -S term...
Когда я нажал клавишу Backspace, чтобы исправить ошибку, я обнаружил, что не могу удалить ничего после , и в самом начале yay
у меня осталось , которое я не смог удалить.ya
Это касается только одной строки и на самом деле ни на что не влияет: команда все равно будет выполнена правильно, даже с двумя лишними символами.
Я пробовал другие эмуляторы, но проблема осталась, даже в базовом tty.
нажатие Enter или ctrl c для перехода на следующую строку сбрасывает эту новую строку, но старая строка остается с ее висячими символами.
для ясности: это происходит со всеми командами с автодополнением по клавише Tab, а не только с yay.
решение1
Это означает, что была напечатана какая-то ошибка, но затем командная строка была перерисована поверх ошибки, хотя и немного в неправильном месте из-за символов, напечатанных в сообщении об ошибке.
Причина, по которой вы не можете удалить первый, ya
заключается в том, что он является частью старой командной строки, которая была напечатана поверх. На самом деле он не является частью вашей новой командной строки, поэтому вы не можете его редактировать. Другими словами, в вашем терминале есть символы, которые не удалось удалить, и ваша оболочка ничего о них не знает.
Чтобы разобраться в этой ошибке, выполните следующие действия:
set -vx
затем попробуйте выполнить то же самое завершение еще раз и посмотрите, сможете ли вы заметить какое-либо сообщение об ошибке где-нибудь в выходных данных.
решение2
У меня была та же проблема. Действительно, это было связано с настройками локали, как упоминалось выше.
Я решил эту проблему, пересоздав локаль.
sudo echo en_US.UTF-8 UTF-8 > /etc/locale.gen
sudo locale-gen
После перезапуска всё заработало нормально.
решение3
У меня была похожая проблема, которая проявлялась схожим образом. Я отследил проблему до значения LC_ALL
. Я прекратил экспорт LC_ALL
(и друзей) как C
и экспортировал LANG=en_US.UTF-8
и проблема исчезла.
Я разделил проблему пополам до Zsh, в tmux, водна конкретная тема oh-my-zsh. ( robbeyrussell
я думаю, был первым создателем oh-my-zsh, поэтому теперь навигационная цепочка ведет к «официальной» организации GitHub)
Смотрите также: