将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按键,结果全部无效。至此,已经无计可施,期待指点迷津,谢谢
Dieken
2
用 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
不记得我有没有碰到这问题,不过我早就把输入法切换键改成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,感觉也很稳定。
鼠须管 把 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
Dieken
16
Doom 官方推荐 emacs-mac,上面贴链接了。跟 rime 搭配没问题。
karabiner 能设置在某个程序下定义快捷键吗?
可以加条件判断的,比如我设置的单按 Shift
键,在Emacs 激活时是 C-\
, 在其他应用程序中是 别的组合键,用于切换系统的输入法。因为我 Emacs 中是 emacs-rime
, 这样就实现了,在任何地方,单按 Shift
按键都是切换输入法。
这是我的配置,你可以参考一下: