LINUX.ORG.RU

Neovim рисует мусорные символы в QTerminal

 , ,


0

2

При входе в командный режим терминал рисует символ, который я не вводил (буферы чисты и макросов нет) в строке состояния и в поле ввода текста, также периодически ломает отрисовку: https://youtu.be/0tSFZ6s16zs Проблема наблюдается только в QTerminal, VT и xterm отображают все верно

Кто-нибудь сталкивался с подобным? Гуглеж ничего не показал, пока что не писал в баг-трекер

★★★

а проблемы только в neovim?
у меня похожее наблюдается в konsole
попробуй поиграться с переменными терминала TERM=xterm-256color или TERM=xterm

kiotoze ★★★★
()
Ответ на: комментарий от kiotoze

да, vim.tiny выдает кучу ошибок парсинга конфига (само собой, он не может в плагины неовима), но таким поведением не отличается. На TERM nvim'у, похоже, плевать, отличий нет.

mazdai ★★★
() автор топика

У тебя неверный TERM, последуй совету kiotoze, но не ограничивайся terminfo одного только xterm.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

c TERM=cygwin проканало, так же все работает нормально, если указать несуществующий terminfo (TERM=asdfgh). Интересно, в чем проблема QTerminal, пробовал все встроенные профили эмуляции и neovim с ними не работает корректно

mazdai ★★★
() автор топика
Последнее исправление: mazdai (всего исправлений: 1)
Ответ на: комментарий от r3lgar

Не уверен, что дело именно в TERM. xterm c TERM=xterm и xterm-256color по умолчанию отображает все правильно и не рисует никаких лишних символов, но QTerminal - нет. Стоит ли репортить в багтрекер, как считаешь?

mazdai ★★★
() автор топика
Последнее исправление: mazdai (всего исправлений: 1)
Ответ на: комментарий от mazdai

Не уверен, что дело именно в TERM.

Может быть не только в нём, но и в нём тоже.

xterm c TERM=xterm и xterm-256color по умолчанию отображает все правильно и не рисует никаких лишних символов, но QTerminal - нет.

А ты думаешь, почему у терминалов terminfo разные? Терминалы работают по-разному.

r3lgar ★★★★★
()

За qterminal не знаю. Konsole не поддерживает какую-то херню, из-за чего везде рисуются буквы q. Лечится установкой правильного TERM. На TERM=konsole-256color умвр. Есть соответствующая бага про konsole, но искать мне лень.

Проблема именно в неверном определении nvim'ом возможностей терминала, т.е. в переменной TERM. Инфа 146%.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от Ivan_qrt

Вот вы двое не совсем поняли мою мысль, имею в виду, что при одинаково заданной переменной TERM (=xterm, допустим) один терминал (xterm) работает правильно, другой же (qterminal) нет. Разумеется, терминалы работают по-разному, вот только зачем им поддержка эмуляции других терминалов, когда она толком не работает

Не знаю, куда писать багрепорт - в qterminal, который в отличие от Eterm, urxvt и xterm не может прожевать спецсимволы, или в neovim, который эти символы генерирует. Пока через alias закостылил команды запуска, но это вряд ли можно назвать решением

mazdai ★★★
() автор топика
Последнее исправление: mazdai (всего исправлений: 1)
Ответ на: комментарий от mazdai

У неовима есть баг про консоль, которая не умеет в какую-то хрень. По всей видимости, кутерминал в нее тоже не умеет. А хтерм, очевидно, умеет. И поскольку в переменной ТЕРМ ты указал, что твой терминал в эту хрень умеет, неовим ее использует. Ты обманул неовим, за что и поплатился. Что тут может быть не ясно?

Можешь сделать фич-реквест в кутерминал, по добавлению этой хрени. Багов тут нет, только дезинформация.

Ivan_qrt ★★★★★
()

Для тех, кто столкнулся с аналогичной проблемой: в качестве workaround для связки QTerminal + Neovim поможет:

echo "export TERM=screen-256color" >> ~/.profile
echo "set guicursor =" >> ~/.config/nvim/init.vim
. ~/.profile

mazdai ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.