gpt4 book ai didi

emacs - 让 Emacs 忽略系统键盘布局

转载 作者:行者123 更新时间:2023-12-01 22:32:17 25 4
gpt4 key购买 nike

在 Emacs 中输入内容时,我使用其内部键盘布局开关。

有时,当我使用其他应用程序时,我会切换系统键盘布局。

如果 Emacs 的内部和系统布局都不是英文,它们就会相互干扰,无法工作。例如,我有两种方法可以输入某个字母,但无法输入逗号字符。

我想让 Emacs 忽略系统键盘布局。可能吗?

编辑:
我的操作系统是 Linux Mint 10 (64位)
我使用 Emacs 24

最佳答案

您能告诉我您的操作系统中使用什么键盘布局以及您在 Emacs 中使用什么输入法吗?目前您的帖子中没有足够的信息。例如,我的问题是,我使用 Colemak 和俄语打字机作为操作系统布局,并使用俄语打字机作为辅助 Emacs 输入法。 Colemak(OS)-Russian(Emacs) 的组合搞乱了我的输入,因为 Emacs 的输入法是从 OS 接收到的英文字符到某些俄语字符的映射,而 Emacs 中的所有输入法都是基于 QWERTY 的映射。例如,本应为“йцукен”的内容被打印为“йцазпо”。我通过运行以下代码解决了这个问题:

(require 'quail)

(quail-define-package
"colemak-russian" "Russian" "ru" nil
"Russian-typewriter keyboard layout assuming that your default
keyboard layout is Colemak"
nil t t t t nil nil nil nil nil t)

(quail-define-rules
("1" ?№) ("2" ?-) ("3" ?/) ("4" ?\") ("5" ?:) ("6" ?,) ("7" ?.) ("8" ?_) ("9" ??)
("0" ?%) ("-" ?!) ("=" ?\;) ("q" ?й) ("w" ?ц) ("f" ?у) ("p" ?к) ("g" ?е) ("j" ?н)("l" ?г)
("u" ?ш) ("y" ?щ) (";" ?з) ("[" ?х) ("]" ?ъ) ("\\" ?\)) ("a" ?ф) ("r" ?ы) ("s" ?в)
("t" ?а) ("d" ?п) ("h" ?р) ("n" ?о) ("e" ?л) ("i" ?д) ("o" ?ж) ("'" ?э) ("z" ?я) ("x" ?ч)
("c" ?с) ("v" ?м) ("b" ?и) ("k" ?т) ("m" ?ь) ("," ?б) ("." ?ю) ("/" ?ё) ("~" ?+) ("!" ?1)
("@" ?2) ("#" ?3) ("$" ?4) ("%" ?5) ("^" ?6) ("&" ?7) ("*" ?8) ("\(" ?9) ("\)" ?0) ("_" ?=)
("+" ?\\) ("Q" ?Й) ("W" ?Ц) ("F" ?У) ("P" ?К) ("G" ?Е) ("J" ?Н) ("L" ?Г) ("U" ?Ш) ("Y" ?Щ)
(":" ?З) ("{" ?Х) ("}" ?Ъ) ("|"?\() ("A" ?Ф) ("R" ?Ы) ("S" ?В) ("T" ?А) ("D" ?П) ("H" ?Р)
("N" ?О) ("E" ?Л) ("I" ?Д) ("O" ?Ж) ("\"" ?Э) ("Z" ?Я) ("V" ?Ч) ("X" ?С) ("C" ?М) ("B" ?И)
("K" ?Т) ("M"?Ь) ("<" ?Б) (">" ?Ю) ("?" ?Ё))

然后使用colemak-Russian而不是Russian-typewriter。您可以更改与您的布局相对应的关联对。

编辑:当然,这不是最正确的解决方案。如Maksim值得注意的是,两种语言共有的字符即使不应该被翻译也会被翻译。例如,我将系统布局设置为 Colemak,将 Emacs 输入法设置为“colemak- Russian” - 那么我就不能使用逗号,它会变成“б”。

要使 Emacs 忽略系统布局,您可以将其与第三方软件集成,如 xxkb , SCIMIBus 。当你说俄语时,你可以试试这个 tutorial .

我个人使用hacky workaround翻译组合键内的俄语字符并完全忽略 Emacs 输入法。

关于emacs - 让 Emacs 忽略系统键盘布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com