С помощью клавиши Compose (и файлика .XCompose) можно легко ввести символы, которые условно «не прибиты гвоздями на клавиатуре». Это и символы пунктуации вида «ёлочек», — тире (em-dash), – (en-dash) и ☺ смайлика. Греческие символы так же могут быть полезны (αβγδ…), как и расширенные матсимволы (±≥≠≤≈≡∃∧∨¬⇒·×∫∑∞∅∈∉). Само собой нужны шрифты для их отображения, но если они есть хоть в каком-то виде, то это удобнее чем писать словами.
Так же иногда для улучшения понимания текста полезно уметь ставить ударение. Для латиницы это просто, так как достаточно нажать Compose+клавишу апострофа+нужный символ, например, éóá, но что делать в случае кириллицы?
Как правило знак апострофа есть только в латинской раскладке, а в русской раскладке он отсутствует, поэтому предлагаю использовать слэш / (в вашей раскладке он ведь присутствует?) вместо апострофа. В файлик ~/.XCompose достаточно добавить следующие строчки:
# Для постановки ударения для кириллических гласных (за исключением ёЁ)
#используем слэш вместо апострофа
# Строчные гласные
<Multi_key> <slash> <Cyrillic_a> : "а́"
<Multi_key> <slash> <Cyrillic_ie> : "е́"
<Multi_key> <slash> <Cyrillic_i> : "и́"
<Multi_key> <slash> <Cyrillic_o> : "о́"
<Multi_key> <slash> <Cyrillic_u> : "у́"
<Multi_key> <slash> <Cyrillic_yeru> : "ы́"
<Multi_key> <slash> <Cyrillic_e> : "э́"
<Multi_key> <slash> <Cyrillic_yu> : "ю́"
<Multi_key> <slash> <Cyrillic_ya> : "я́"
# Прописные гласные
<Multi_key> <slash> <Cyrillic_A> : "А́"
<Multi_key> <slash> <Cyrillic_IE> : "Е́"
<Multi_key> <slash> <Cyrillic_I> : "И́"
<Multi_key> <slash> <Cyrillic_O> : "О́"
<Multi_key> <slash> <Cyrillic_U> : "У́"
<Multi_key> <slash> <Cyrillic_YERY> : "Ы́"
<Multi_key> <slash> <Cyrillic_E> : "Э́"
<Multi_key> <slash> <Cyrillic_YU> : "Ю́"
<Multi_key> <slash> <Cyrillic_YA> : "Я́"
Если хочется просто добавить символ ударения уже после набора текста, то можно добавить ~/.XCompose следующие комбинации:
# Добавляем ударение. Встаём _после_ ударной гласной
#и жмём Compose + / + a (латиница) или
#Compose + / + ф (русская раскладка)
<Multi_key> <slash> <a> : "́" U0301 # COMBINING ACUTE ACCENT
<Multi_key> <slash> <Cyrillic_ef> : "́" U0301 # COMBINING ACUTE ACCENT
emacs В случае emacs ситуация отличается, так как emacs имеет свою внутреннюю переключалку регистра. От этого есть как плюсы, так и минусы, которые позволяют набирать текст в emacs независимо от того на сколько слетела башня у разработчиков внешних сред в которых emacs умудряется работать. В .emacs следует добавить следующие строки:
;;
;; Чтобы раскладка соответствовала раскладке русских букв на виндовых (а теперь
;; таких большинство) клавиатурах, можно добавить еще следующие строки:
;;
;; redefine some orginal keybindings под MS - можно ли попроще?
;;
;; кнопка \| => \/ при переключения регистра (для моего удобства)
;;
(require 'quail)
(require 'cyrillic)
(quail-define-package
"russian-computer" "Cyrillic" "RU" nil
"ЙЦУКЕH keyboard layout widely used in Russia"
nil t t t t nil nil nil nil nil t)
(quail-define-rules
("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8)
("9" ?9) ("0" ?0) ("-" ?-) ("=" ?=) ("`" ?ё) ("q" ?й) ("w" ?ц) ("e" ?у)
("r" ?к) ("t" ?е) ("y" ?н) ("u" ?г) ("i" ?ш) ("o" ?щ) ("p" ?з) ("[" ?х)
("]" ?ъ) ("a" ?ф) ("s" ?ы) ("d" ?в) ("f" ?а) ("g" ?п) ("h" ?р) ("j" ?о)
("k" ?л) ("l" ?д) (";" ?ж) ("'" ?э) ("\\" ?\\) ("z" ?я) ("x" ?ч) ("c" ?с)
("v" ?м) ("b" ?и) ("n" ?т) ("m" ?ь) ("," ?б) ("." ?ю) ("/" ?.) ("!" ?!)
("@" ?\") ("#" ?№) ("$" ?\;) ("%" ?%) ("^" ?:) ("&" ??) ("*" ?*) ("(" ?\()
(")" ?\)) ("_" ?_) ("+" ?+) ("~" ?~)
("Q" ?Й) ("W" ?Ц) ("E" ?У) ("R" ?К) ("T" ?Е) ("Y" ?Н) ("U" ?Г) ("I" ?Ш)
("O" ?Щ) ("P" ?З) ("{" ?Х) ("}" ?Ъ) ("A" ?Ф) ("S" ?Ы) ("D" ?В) ("F" ?А)
("G" ?П) ("H" ?Р) ("J" ?О) ("K" ?Л) ("L" ?Д) (":" ?Ж) ("\"" ?Э) ("|" ?/)
("Z" ?Я) ("X" ?Ч) ("C" ?С) ("V" ?М) ("B" ?И) ("N" ?Т) ("M" ?Ь) ("<" ?Б)
(">" ?Ю) ("?" ?,)
;; Правила для ударений через = (внутри русского текста = вроде как не встречается)
;; Ввод =+гласная в русском регистре
;; Используем латинские клавиши, которые соответствуют русским гласным в ЙЦУКЕН
("=f" ["а́"]) ("=t" ["е́"]) ("=b" ["и́"]) ("=j" ["о́"]) ("=e" ["у́"])
("=s" ["ы́"]) ("='" ["э́"]) ("=." ["ю́"]) ("=z" ["я́"])
("=F" ["А́"]) ("=T" ["Е́"]) ("=B" ["И́"]) ("=J" ["О́"]) ("=E" ["У́"])
("=S" ["Ы́"]) ("=\"" ["Э́"]) ("=>" ["Ю́"]) ("=Z" ["Я́"]))
(setq quail-keyboard-layout-type 'russian-computer)
Можно заменить = на / (как в случае набора через Compose). Для этого необходимо заменить = на | (в этой раскладке для русского регистра | переопределён в /), но в этом случае будет неадекватный результат при наборе вполне общепринятой буквенной комбинации а/я. А знак равенства вряд ли встречается внутри русского текста.
P.S. Если просто хочется добавить символ ударения (U+0301) средствами emacs, то можно, например, добавить соответствие вида:
("=a" ["́"])
Ниже идёт код, предложенный Google Gemeni для вставки символа ударения по Ctrl-c+a (к сожалению в org-mode на эту комбинацию завязан вызов org-agenda):
;; расстановка ударения
(defun insert-cyrillic-accent-at-point ()
"Ставит ударение над символом под курсором."
(interactive)
(let ((vowels "[аеиоуыэюяАЕИОУЫЭЮЯ]"))
(if (looking-at vowels)
(save-excursion
(insert (decode-char 'ucs #x0301))) ;; Ставим акцент «после»
(message "Под курсором не гласная!"))))
(global-set-key (kbd "C-c a") 'insert-cyrillic-accent-at-point)
Вариант с типографской раскладкой (misc:typo) В типографской раскладке misc:typo знак ударения вводится следующим образом:
- Напечатайте гласную букву (например, о).
- Сразу после неё нажмите комбинацию: Right Alt + a (латинский регистр) или Right Alt + ф (русский регистр)
Символ ударения автоматически «напрыгнет» (да, это ИИ так сказал) на предыдущую букву: о́, а́, ю́, и́. Причём «напрыгивание» происходит в случае абсолютно любых символов, а не только гласных. Полную раскладку «Третьего уровня» misc:typo можно глянуть здесь.
Типографская раскладка включается через xkboptions, например (последние две опции):
setxkbmap "us,ru" -option grp:caps_toggle,compose:menu,grp_led:scroll,lv3:ralt_switch,misc:typo
В случае засилья gnome возможно лучше воспользоваться строкой:
gsettings set org.gnome.desktop.input-sources xkb-options "['grp:caps_toggle','compose:menu','grp_led:scroll','lv3:ralt_switch','misc:typo']"
Либо сделать тоже через gnome-tweaks: «Дополнительные настройки» → «Клавиатура и мышь» → «Дополнительные параметры раскладки» → «Разные параметры совместимости» (Miscellaneous compatibility options) → «Включить дополнительные типографские символы» (Enable extra typographic characters). Следует так же убедиться, что в разделе «Клавиша выбора третьего уровня» выбран Right Alt (или другая удобная вам клавиша).
В KDE через настройки следует выбрать:
- Keyboard → Key Bindings → Key to choose 3ed Level → Right Alt ✔
- Keyboard → Key Bindings → Compatibility Options → Enable extra typographic characters ✔
P.S. Раскладка для дополнительных типографских символов позаимствована из «Типографской раскладки Ильи Бирмана», но с некоторыми изменениями в частности в области постановки ударений. Подробности про «Третий уровень» раскладки можно найти, например, в блоге Ивана Шихалева.
Вариант через xclip Создаём скрипт stress и кладём его куда-нибудь:
echo -en '\u0301' | xclip
P.S. Зачем могут понадобиться последние два варианта? Ввод через Compose предполагает расстановку ударений во время ввода текста, но автоматическая проверка орфографии русского языка, работающая сейчас по умолчанию, не знает что такое символ ударения и все слова с ним подчёркивает красным. Поэтому если нужна орфография, то ударения следует расставлять уже после её проверки. Правильным решением было бы если какая-то добрая и работящая душа создаст новый орфографический словарик, включающий (ну или на первых порах хотя бы игнорирующий) правильные ударения и пропихнёт его во все популярные дистрибутивы.
P.P.S. При написании правил настроек использовалась не только моя биологическая нейронная сеть, но и ИИ, который прилагается к поисковой строке google. Вариант с xclip был предложен
dmitry237






