Когда языковая раскладка меняется на язык справа налево; в некоторых стандартных местах редактирования (например , в адресной строке Google Chrome), символы нравится <
, {
и [
автоматически становятся >
, }
и ]
только за счет изменения макета языка.
Есть ли способ предотвратить это и сделать эти символы стабильными?
keyboard-layout
input-language
rtl
нано - сливай меня
источник
источник
Ответы:
Я не понял, что вы имеете в виду в первый раз, потому что я познакомился с этим. Я думаю, что все будет хорошо, если вы можете ожидать результатов.
Такое поведение является стандартом двунаправленного алгоритма Unicode . Таким образом, доминирующее направление BiDi взято из первого сильного символа в абзаце.
Так что я думаю, что это происходит в этом случае:
Первое направление с пустым текстовым полем берется из конфигурации локали / языка. Как вы сказали, арабский язык - это язык RTL. Итак, курсор справа.
Ввод,
<
но он показал как>
. Это нейтральный символ, поэтому не влияет на направление. Почему это перевернуто? Краткий ответ: стандарт Unicode, :) в любом случае, примите это. Ну, его имя меньше знака , так что ... В RTL / арабском, формула начинается с правой стороны, она должна быть перевернута. Что ты думаешь ... нет? !!!Введите латинский символ
g
. Это сильный символ L (слева), поэтому этот абзац определяется как LTR.Забой для удаления
g
. Но обратите внимание, где курсор.Теперь, например
[
, он был ошибочно назван левой квадратной скобкой . Это должно быть что-то вроде открытой квадратной скобки (это нейтральный биди и перевёрнутый в RTL)Все разработчики стараются следовать стандартам. Так что теперь они заставят текстовое поле быть RTL или LTR, Auto является лучшим для большинства пользователей.
Поэтому для вас лучшее, что я могу предложить, - это использовать Unicode BiDi Control Char.
В пустой адресной строке, Ctrl+ Shift+ u,
u
появляется небольшая подчеркнутая строка,200f
затем введитеEnterСмотри
<
не переворачивался как LTR.Ctrl+ Shift+ uспецифичен для GTK / Gnome. В KDE отсутствует такая опция, и, похоже, она не исправлена, поскольку в этом отчете об ошибке упоминается конфликт между KDE / Qt / Xorg. Нужен способ вставки произвольных символов Юникода в Kubuntu .
Поскольку это всего лишь несколько символов, вы можете переназначить ненужные ключи или отобразить неиспользуемые ключи. Например, я использую американский английский (международные мертвые ключи AltGr)
Откройте его
xkb
файл макета для редактирования:Найдите определение группы с тем же именем:
Давайте посмотрим в качестве примера
r
(легко запомнить): AltGr+ r→ RLM, Shift+ AltGr+ r→ LRM. Вместоë
&Ë
. Заменить:С:
Обновление xkb
Переключитесь на другой макет, затем вернитесь, он будет активен немедленно.
Ноты:
Используйте тот же метод, чтобы добавить их в арабский макет, если вы хотите использовать его из обоих макетов.
Вы можете использовать
U+061C arabic letter mark (ALM)
вместо RLM, поскольку вы являетесь арабским пользователем.xkb
поддерживает другой формат ввода кода Unicode,0x100200f
экв.U200F
(т.е. в0x100
качестве префикса)Чтобы избежать перезаписи модифицированной карты ключей
xkb-data
обновлениями, лучше всего создать новую пользовательскую карту XKB. См. Как добавить новую раскладку клавиатуры (Определение пользовательской раскладки клавиатуры) или Какие шаги необходимы для создания новой раскладки клавиатуры в Ubuntu?Можно добавить все другие управляющие символы Unicode. Некоторые приложения уже имеют опцию во всплывающем меню многострочного текстового поля ввода. Пример Poedit:
Приятно читать для дальнейшего понимания:
Ссылки:
Как ввести любой Unicode, недоступный на клавиатуре, см. Невозможно ввести «ć» на венгерском макете
Howto: пользовательские определения раскладки клавиатуры
0x100
Префикс)источник
0x100200F
этого, я не знаю, так ли это, какU200F
.