因为’SPC ‘已经有这个功能了, 又要经常切换layout, 所以想绑定为’M-’. 刚开始想的是define-key key-translation-map
, 但是又觉得手动从1写到9有点太蠢了, 又更简单的方法吗?
用 dolist
或者macro
试了一下发现原来
(define-key key-translation-map (kbd "M-1") (kbd "SPC l 1"))
并不能达到预期的效果, 只是弹出layour选择的弹出框而已(相当于"SPC l")
然后我又试了
(define-key key-translation-map (kbd "M") (kbd "SPC l"))
则是没反应
这样应该是不行的,因为 SPC l
会切换到 transient-state
,transient-state
使用不同的 map。
根据楼主的描述,感觉你需要的是找到对应的命令,然后绑定到 global-map
你是指global-set-key
吗? 这个优先级很低, 会被覆盖掉.
另一个lisp语法我不熟, 我写成下面这样是不行的
(global-set-key (kbd "M-1" ) '(spacemacs/layouts-transient-state/body spacemacs/persp-switch-to-1))
(global-set-key (kbd "M-1" ) #'spacemacs/persp-switch-to-1)
呢?
不行的,
一个是优先级的问题, 根本绑定不上, M-1
还是winum-select-window-1
另外就算我绑定到一个没有绑定过的快捷键也不行
(global-set-key (kbd "C-M-l" ) #'spacemacs/persp-switch-to-1)
我可以绑定到 s-1
上:
(global-set-key (kbd "s-1" ) #'spacemacs/persp-switch-to-1)
就是 Win+1
s-n
(n= 1, 2, 3, 4…) 在 spacemacs 中都没有定义,正好可以满足楼主的需求
1 个赞
不要意思, 刚才我以为没有绑定的函数的C-M-l
原来是绑定了函数的.
不过我的win-绑定了跳到panel(或者叫桌面启动栏?)下面相应的应用程序…
但还是很感谢你的帮助.