我正在尝试在spacemacs中使切换插入/普通模式无效。 我已经用下面的代码成功实现了这一点。但是我的Macbook Pro 2018 13'上的Caps-lock旁边的LED灯停止工作。所以我试图用脚本来切换大写锁定。
我正在使用karabiner元素将大写锁定重新映射到f13。当emacs记录f13时,它将状态更改为邪恶正常状态或邪恶插入状态。
问题开始了,当我想添加另一个要在按下f13 aka caps-lock ist时运行的命令。其(shell-command "/Users/atrumoram/setleds +caps")
。这会打开或关闭大写锁定灯。我试图创建自己的函数defun
。但是我真的无法使其协同工作。最后,我想要这样的东西。
这是使用Capslock邪恶地切换插入/普通模式的代码
(define-key evil-insert-state-map (kbd "<f13>") 'evil-normal-state)
(define-key evil-normal-state-map (kbd "<f13>") 'evil-insert-state)
最后,我想拥有这样的东西。
(define-key evil-insert-state-map (kbd "<f13>") 'evil-normal-state (shell-command "/Users/atrumoram/setleds +caps"))
(define-key evil-normal-state-map (kbd "<f13>") 'evil-insert-state (shell-command "/Users/atrumoram/setleds -caps"))
有人可以通过某种方式帮助我吗?期待您的想法。
答案 0 :(得分:2)
一个键一次只能绑定到一个功能,因此,为了在您按下该键时发生两件事,您需要创建一个功能,使其“交互”,并将其绑定到您所需要的键上。想要。
此功能执行两个操作,一个接一个:
(defun my-evil-normal-state-and-set-caps-led ()
(interactive)
(evil-normal-state)
(shell-command "/Users/atrumoram/setleds +caps"))
由于已将其声明为interactive
函数,因此可以使用M-x my-evil-normal-state-and-set-caps-led
对其进行测试。
那只是一个问题:
(define-key evil-insert-state-map (kbd "<f13>") 'my-evil-normal-state-and-set-caps-led)
反之亦然,切换到插入状态。