Чому gnome-terminal відображає символ утечі Unicode?


2

Більш конкретно, у Vim, якщо я натискаю клавішу Escape двічі (і за інших обставин теж), я отримую цей символ:

http://www.fileformat.info/info/unicode/char/1b/index.htm

Його можна повторити, ввівши ехо, потім Ctrl-V, а потім увімкнути

Ось як це виглядає:

кінцевий вихід

Я спробував змінити шрифт і налаштування TERM, жодне з яких не змінило значення. Жоден інший термінал, який я намагався (xterm, urxvt, що консоль KDE), не має такої поведінки.

Що я хотів би знати, чи це помилка чи певна поведінка, і чи є якісь обхідні шляхи


У відповідній примітці для всіх, у кого виникає однакова проблема з Vim, причиною є visualbellналаштування. Розміщення set novisualbellв vimrc, схоже, це
впорядковує

Це відома помилка vte (gnome-terminal): bugzilla.gnome.org/show_bug.cgi?id=403130 .
Егмонт

Відповіді:


2

Це призначена поведінка. Жоден шрифт не забезпечує гліф для цієї кодової точки, тому двигун шрифту генерує гліф "кодова точка в коробці" за замовчуванням.


1
Отже, цільова поведінка всіх інших термінальних додатків полягає в її придушенні?
Benwh

1
Вони використовують інший движок шрифту.
Ігнасіо Васкес-Абрамс

1
@benwh: Я не впевнений, чи існує навіть "призначена поведінка" для цього конкретного персонажа. ESCє першим байтом усіх "послідовностей втечі", які керують поведінкою терміналу (переміщення курсору, встановлення кольорів тощо) - так технічно, коли програма видає голо ESC, термінал розглядає її як недійсну послідовність виходу і може вибрати, щоб надрукувати її або викинути його.
grawity

1
звідки всі інші емулятори терміналів знають, що з цим робити?
Квінн Вілсон

@QuinnWilson: Вони ні. Вони просто нічого не показують, оскільки це поведінка їхніх шрифтових механізмів.
Ігнасіо Васкес-Абрамс

0

Я зіткнувся з подібною проблемою, тому що я змінив свій .vimrc деякий час в минулому, щоб добре грати з MINTTY. Як не дивно, ці зміни зазвичай не є проблематичними в gnome-терміналі, але вони є, якщо вони працюють на ARM.

У моєму випадку, коментуючи цей розділ мого .vimrc виправив його:

let &t_ti.="\e[1 q"                                                                                                   
let &t_SI.="\e[5 q"                                                                                                   
let &t_EI.="\e[1 q"                                                                                                   
let &t_te.="\e[0 q"                   

Якщо ви змінили ці значення, ви можете спробувати видалити ці зміни

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.