emacs-在macos中解除option+space按键特殊字符问题
如果你幸运或不幸地和我一样,在Emacs中绑定了 M-SPC :
;; 快速插入零宽空格
(define-key global-map (kbd "M-SPC")
(lambda () (interactive) (insert " ")))
同时你还启用了 sis 用来自动切换输入法中英文状态:
(use-package sis
:demand t
:config
(cond ((eq system-type 'darwin)
(sis-ism-lazyman-config "com.apple.keylayout.US" "im.rime.inputmethod.Squirrel.Hans" 'emp)))
;; 隐去其他配置项
)
注意,这里的选项为
'emp,因为我使用了macport的输入法相关patch,推荐LuciusChen/.emacs.d的安装脚本。
而且你还改了按键,将 Option 等同于 Meta 键:
(setq mac-option-modifier 'meta)
那么你会发现,按下 M-SPC 这个组合键之后,输入法会自动切换到英文模式。
根据知乎的相关讨论,是因为MacOS的英文键盘会在 Option+任意按键 的时候插入对应的特殊字符。所以要解决这个问题也很简单,将默认的英文按键更换为一个其他按键就行。这里我们选用Unicode键盘。
在MacBook用unicode输入64卦卦象符号 - 知乎
https://zhuanlan.zhihu.com/p/648611930
进入系统设置->键盘->文字输入->编辑,单击左下角“ +”,滚动到最后“其他”,选择“ Unicode十六进制输入”,然后单击“添加”和“完成”。从菜单栏中的输入法选择中,选择“ Unicode十六进制输入”。
然后对应修改 sis 的配置:
(use-package sis
:demand t
:config
(cond (eq system-type 'darwin)
(sis-ism-lazyman-config "com.apple.keylayout.UnicodeHexInput" "im.rime.inputmethod.Squirrel.Hans" 'emp))
)
这样一来,就不会再因为MacOS中英语键盘默认的特殊符号输入方式干扰到我们插入全角空格了!