Автодополнение Tab в Zsh делает символы дублирующимися

Автодополнение Tab в Zsh делает символы дублирующимися

при использовании автодополнения клавишей 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)

Смотрите также:

Связанный контент