far2l
far2l copied to clipboard
Неправильно отображаются 'й' и 'ё' в именах файлов, созданных не в far2l
Русские имена файлов с буквами 'й' и 'ё' отображаются с отъехавшими надстрочными частями, словно они являются отдельными символами (на картинке "неудачный файл.txt"). Такая проблема не случается с файлами, созданными в самом far2l (на картинке "удачный файл.txt"). Наблюдаю эту проблему уже года 2-3 с разными сборками far2l под Mac OS X c wxWidgets 3.0 - 3.1.

Возможно, баг дублирует https://github.com/elfmz/far2l/issues/213, но на тот явно забили. А возможно - это всем известная проблема, и есть способ её порешать? Спасибо!
Приложил подорожник, должно стать лучше. Но сделать идеально - не в ближайшее время точно, внутренняя логика фара не рассчитана на такое - когда символов два, а выглядят как один
Приложил подорожник, должно стать лучше. Но сделать идеально - не в ближайшее время точно, внутренняя логика фара не рассчитана на такое - когда символов два, а выглядят как один
А как это в виндовом фаре решают?
Но у меня винда не свежая (2008r2 - считай - семерка), может в десятке чтонить с этим сделали интересное. Самое забавное что в notepad поведение как в far2l с подорожником - при удалении backspace'ом вначале у Й превращается в И и только следующий backspace его стирает полностью :)
Ха! А в линуксовой консоли кто-то такое умеет вообще?
при удалении backspace'ом вначале у Й превращается в И и только следующий backspace его стирает полностью
А идеалогически правильно было бы сразу весь символ съедать, типа?
Кстати, тут схожая проблемка есть, возможно, примерно того же генеза #825
проверил в гномотерминале ubuntu16:
в миднайте, под тем же гномотерминалом:
Я в изумлении, если честно. Я ожидал что исконно-линуховые апликухи будут к такому готовы. Ведь с UTF8 просто нельзя быть не готовым к такому.
в 20й убунте получше - смайлик желтый и не наезжает на квадратную скобку, но в миднайте все такой же косяк с й
Я ожидал что исконно-линуховые апликухи будут к такому готовы.
Там страннота с этим сэмплом страннейшая:
- Если его вырезать или скопировать в фаре, то потом не получается в фар же вставить
- Если изнутри фара натравить на этот сэмпл turbo, не получается поставить курсор на правую скобку (а в gnome terminal получается)
Я на mint 20, который эквивалентен 20 убунте
Спасибо за подорожник :-), похоже вскопнули какой-то древний пласт.
С последней сборкой выглядит так:
Обычно для простоты считают 1 уникодный code point == 1 символ, но это часто не работает (из-за этих-самых комбинированных символов, ну ещё и из-за суррогатов).
Разделять текст на настоящие символы сложнее. Если это надо сделать, обычно проходят BreakIterator'ом из ICU.
Представление символов с диакритиками (вроде ё и й) в виде последовательности code point'ов -- это рекомендованный стандартом способ, хотя обычно так никто не делает.
Комбинированные символы (вроде ё и й одним code point'ом) в уникоде в качестве исключения только для тех символов, которые были в старых кодировках. Строку можно перевести в каноническую форму нормалайзером из ICU. В большинстве случаев это поможет, но для символов, для которого комбинированной формы нет (какое-нибудь ы̆ы̆ы̆ы̆) такое не сработает.
Насчёт того, что смайл налазит на следующий символ -- это скорее проблема шрифта, а не рендерера. Если какой-то символ оказывается шире, чем остальные, то либо он налазит на следующий, либо сдвигает оставшуюся строку вправо. По-моему, лучше, чтоб налазил.
И ещё надо не забывать о лигатурах. В некоторых языках символы объединяются в лигатуры. Например, в арабском ويكيبيديا, если повставлять пробелы между буквами, выглядит так: وي ك ي ب ي د ي ا. Ну и у программистов начали появляться шрифты с лигатурами, всякие там JetBrains Mono
(рекомендую). В этом случае если каждый символ отдельно рендерить, то лигатуры сливаться не будут, а если вместе -- то будут. Но тогда больше риск, что в шрифте ширина глифа окажется неправильной и всё съедет.
это скорее проблема шрифта, а не рендерера
Вот редактор фара в его wx-версии и в терминалке гнома. Шрифт один и тот же — Ubuntu Mono.
Ну и у программистов начали появляться шрифты с лигатурами, всякие там JetBrains Mono (рекомендую).
Идея — кайф! Сходил на сайт JB, восхитился, стянул шрифт, выставил в f2l, и словил огромные дыры между буквами.
UPD: Похоже, с дырами рендерится шрифт Ubuntu, а JB Mono просто не выбирается.
Да причины вполне понятны, корень проблем в квадратно-гнездовом представлении винды о консоли, ну и фар его унаследовал. 2 @strim а теперь попробуйте шрифт размером кратным 5. То есть один из 10 15 20 25..
в квадратно-гнездовом представлении винды о консоли
зато в никсах до недавнего времени клипборда в консоли не было и половины кнопок))
В теперь попробуйте шрифт размером кратным 5. То есть один из 10 15 20 25..
А что должно случится? Вроде странностей не наблюдается
Ну и у программистов начали появляться шрифты с лигатурами, всякие там JetBrains Mono (рекомендую).
Идея — кайф! Сходил на сайт JB, восхитился, стянул шрифт, выставил в f2l, и словил огромные дыры между буквами
Странно, у меня с JetBrains Mono никогда такого не было (и в far2l тоже хорошо работает).
После установки там много всяких вариантов в списке было, я выбрал JetBrains Mono Regular
.
А что должно случится? Вроде странностей не наблюдается
это я strim посоветовтаь хотел, не вкопипастил ник просто
После установки там много всяких вариантов в списке было, я выбрал JetBrains Mono Regular.
Хм, со второй попытки включился! Лигатуры работат странно, но работают. Ух, зачем же он только узкий такой. Не очень-то оно читабельность повышает, наоборот, скорее: контраст заглавных и строчных букв как раз для того и придуман, чтоб читабельность повысить.
это скорее проблема шрифта, а не рендерера
Вот редактор фара в его wx-версии и в терминалке гнома. Шрифт один и тот же — Ubuntu Mono.
А теперь попробуйте в рамочку в это поместить, или например в имени файла использовать. То всё что справа, cъедет.
┌───────────────────┐
│ ╔═══╗ Some Text │▒
│ ╚═╦═╝ in the box │▒
╞═╤══╩══╤═══════════╡▒
│ ├──┬──┤ 👁 👁 👁 👁 │▒ <- вот тут тоже съехал
│ └──┴──┘ │▒
└───────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Ну, хм, mcedit, turbo и nano считают смайл шириной в два знакоместа просто. И ничего, интерфейс у turbo не ломается от этого, хотя он тоже из box drawing chars сделан, как и у фара. Ну это если в терминалке гнома.
Браузеры в fixed-width chars режиме тоже смайл на два знакоместа рисуют. И хром и лиса. Ну уж браузеры-то точно должны знать, как обращатья с юникодом правильно?
https://2g0.ru/tmp/demo1.htm
Браузеры в fixed-width chars режиме тоже смайл на два знакоместа рисуют. И хром и лиса. Ну уж браузеры-то точно должны знать, как обращатья с юникодом правильно?
В браузере у меня так, где-то полтора.
В некоторых моноширинных шрифтах смайлы действительно ровно в два раза шире, но это опять же просто автор шрифта так решил, это не хром с фаерфоксом. В разных шрифтах оно по-разному, нельзя заранее сказать как оно будет, или как "надо".
А вот нашлось: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1665140
Со стандарта Unicode 9 (2017 года), смайлы объявили wide, и они действительно должны занимать два знакоместа (как, например, иероглифы). Это облегчает работу с моноширинными интерфейсами, но как видим не все шрифты ещё правильно рендерят смайлы.
Ладно, Ктулху с ней с шириной, вот почему в turbo под far2l курсор на правую квадратную скобку у смайла не поставить? А в гном терминале норм. Ну это-то точно баг.
давайте ширину смайла в соответтвующей теме обсуждать https://github.com/elfmz/far2l/issues/825 , природа багов общая но все же человек мою просьбу выставить кратный 5 шрифт может не заметить
Спасибо за глубокое осмысление и за совет использовать JetBrains Mono!
С этим шрифтом на последней сборке всё стало нормально.
JBшный так и не прижился у меня (больно узкий), но за инфу про прогерские шрифты с лигатурами — Большое Человеческое Спасибо!
Вот ещё несколько таких, для тех, кому JB не зашел. И вот тут ещё есть. https://github.com/tonsky/FiraCode https://github.com/microsoft/cascadia-code https://rubjo.github.io/victor-mono/
О господи, с Microsoft'овского гитхаба подсел на Microsoft'овский шрифт. Какой-то я неправильный линуксоид
Рендерилка f2l, конечно, подглюкивает местами на некоторых конструкциях. На таком, например !== шрифт cascadia
а что у нас здесь осталось не решенным, собственно? я проверил сэмпл, нормально сейчас рисуется. два бекспейса тоже нормально, ведь по факту там два символа наличествует
что требуется доделать с точки зрения UX?
duplicates #1329, #213