Вопрос: как переключаться между методами ввода для разных языков при использовании нестандартной раскладки клавиатуры?
Я должен редактировать текст на двух разных языках. Я хотел бы иметь возможность использовать свои сочетания клавиш на двух языках, кроме, конечно, при вставке текста в буфер. Похоже, я должен быть в состоянии toggle-input-method
( C-\
) и выбрать альтернативный язык.
Пока почти так хорошо.
Вот в чем проблема: я использую английскую раскладку Dvorak, которую я установил на уровне ОС (то есть, с помощью setxkbmap
). Когда я toggle-input-method
, текст, который я вставляю, будет правильным, если у меня будет раскладка QWERTY (стандарт в США), но он будет выдумкой, потому что я на Дворжаке. (FWIW, когда я переключаю свой макет на стандартный США, он работает нормально.)
Итак: как мне сообщить Emacs, что я использую Dvorak, чтобы toggle-input-method
и друзья перевели мои нажатия клавиш на правильные символы на другом языке?
Ответы:
Существует способ изменить определение физического макета для метода ввода путем установки
quail-keyboard-layout-type
. Но похоже, что Дворжака нет среди возможных кандидатовquail-keyboard-layout-alist
в моем Emacs 24.4.Вы можете определить новую физическую раскладку клавиатуры, взглянув на определение
quail-keyboard-layout-alist
in,quail.el
или создать новый метод ввода, определив соответствующие арабские клавиши для раскладки Dvorak.Я не опытный в первом, но я могу засвидетельствовать второй подход легче, чем вы думаете. (Я должен был создать метод ввода Старотурецкого поверх фарси.) Копия
arabic.el
(который находится в моей системе Debian в/usr/share/emacs/24.4/lisp/leim/quail/arabic.el.gz
) в ваш домsite-lisp
и менять ключи в соответствии с вашими предпочтениями. Также не забудьте изменить имена методов ввода и т. Д. Вы только что создали новый дворак-арабский метод ввода.Я могу обновить ответ с более подробной информацией, если что-то кажется сложным.
источник
...-alist
версии.quail-. *-alist
разработку Emacs. Я уверен, что есть другие пользователи Dvorak, которые извлекут выгоду из этого.@EmreSahin поставил меня на правильный путь, чтобы ответить на этот вопрос, поэтому я выкладываю немного деталей на случай, если кто-нибудь еще когда-нибудь столкнется с такой проблемой, как эта.
Как указывает Эмре, нам нужно добавить макет Dvorak
quail-keyboard-layout-alist
. Оказывается,quail
библиотека недостаточно документирована в руководстве , в котором две связанные функции упоминаются при передаче на одном узле.Однако, посмотрев эту ветку справки и, особенно, страницу EmacsWiki на русском языке с Дворжаком (от которого этот ответ извлекает информацию), я думаю, я понял это.
Строка документации для переменной
quail-keyboard-layout
описывает, что нам нужно вставитьquail-keyboard-layout-alist
. Это длинная строка, соответствующая 6 строкам по 15 клавиш в каждой. Каждая строка соответствует несмещенным и сдвинутым значениям каждой клавиши, всего 30 символов в строке. Я менее уверен в следующем пункте, но, похоже, для того, что я назову «полустандартными» клавиатурами с 4 рядами клавиш, первая и шестая строки должны иметь по 30 пробелов.Большое раскрытие:
источник