mac下鼠须管的快捷键被拦截

将emacs for mac更换为emacs-plus,并且安装了doom,发现emacs将大多数快捷键拦截了,没有定义的则提示C-` is undefined,只有按键有command的可以生效。所以,鼠须管的默认快捷键 Control+grave失效了。

emacs doom配置了: (:if IS-MAC macos) ; improve compatibility with macOS

鼠须管下配置了: switcher: caption: 〔方案選單〕 hotkeys: - Control+grave - Meta+grave - Super+grave - Hyper+grave - Control+Shift+grave - Control+F4

我尝试增加meta、super、hyper指代command按键,结果全部无效。至此,已经无计可施,期待指点迷津,谢谢

用 emacs-mac,不要用 emacs-plus。

brew tap railwaycat/emacsmacport
brew install emacs-mac --with-modules
ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications/Emacs.app

他不是 emacs-rime 是 鼠须管 啊

不记得我有没有碰到这问题,不过我早就把输入法切换键改成Ctrl+SPC 了

抱歉抱歉,看错了😂

试了下,只能随便敲什么字母让输入法出来然后再按设定好的快捷键了

我这边不行的,鼠须管调用出来之后,鼠须管提供的快捷键(设置用)不起作用。

不过,也奇怪,系统自带的 contrl+spc切换输入法,在emacs下虽然没有command键,但仍然有效。

比较了网上的论点,各说纷纭,好像都有好处。

我用过emacs-mac 26,现在装的emacs-plus27,感觉后者速度更快。

切换键Ctrl+SPC 有效,切换后输入法的快捷键(用于设置详细)失效。也奇怪,切换输入法的ctrl 在emacs下竟然有效的。

Karabiner 可以解决几乎一切在 Mac 上的按键冲突烦恼。

我用 Karabiner 交换系统的command和ctrl。这次的问题应该出在 emacs-plus 上。

交换按键,在 Mac 的键盘界面就能设置了。

安装 GNU 官方的版本试试看,我用的是直接编译的主分支 29.0.50,感觉也很稳定。

是的,karabiner 还设置了其他几处。

这个emacs-plus挺快的,不换不行吗?

鼠须管 把 Ctrl-grave 对应的功能绑定到其他键上,然后在 Emacs 开启的状态下 通过 karabiner 映射将 Ctrl-grave 绑定到相应的按键上应该就可以了。

确认了一下,我这边可以(我记得一直可以的,虽然我现在在用 emacs-head 没用 emacs-plus 了)

GNU Emacs 28.0.60 (build 1, x86_64-apple-darwin21.1.0, NS appkit-2113.00 Version 12.0.1 (Build 21A559)) of 2021-10-29

Doom 官方推荐 emacs-mac,上面贴链接了。跟 rime 搭配没问题。

karabiner 能设置在某个程序下定义快捷键吗?

可以加条件判断的,比如我设置的单按 Shift 键,在Emacs 激活时是 C-\, 在其他应用程序中是 别的组合键,用于切换系统的输入法。因为我 Emacs 中是 emacs-rime , 这样就实现了,在任何地方,单按 Shift 按键都是切换输入法。

这是我的配置,你可以参考一下:

https://github.com/Eason0210/karabiner-config

好厉害,还能这样用。谢谢