UP | HOME

▼ 本文更新于 [2026-02-04 三 19:27]

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中英语键盘默认的特殊符号输入方式干扰到我们插入全角空格了!

© Published by Emacs 31.0.50 (Org mode 9.8-pre) | RSS English-Index