我想要取得这样的效果,F12进入 hydra
,利用 hydra
选单做一些事情,然后 F12 退出。
也就是 用相同的按键进入和退出 hydra
,请问这可以办到吗?
之所以这样问,是因为我设定 F12 调出 hydra,并且将系统的 Caps 按键映射为 F12。如果进入和退出是同一个按键的话,就不需要另外去关闭 Caps 的 LED 灯。
(defhydra your-hydra (...)
("<f12>" nil) ;; quit
)
我试过这样做,但是不行,因为会再次调用 hydra。:foreign-keys
选项貌似也没有我需要的:
:foreign-keys
It decides what to do when a key is pressed that doesn’t belong to any head:
It can take the following values:
:foreign-keys
nil (the default) means that the hydra state will stop and the foreign key will do whatever it was supposed to do if there was no hydra state.:foreign-keys
warn will not stop the hydra state, but instead will issue a warning without running the foreign key.:foreign-keys
run will not stop the hydra state, and try to run the foreign key.
你如果没有设置 ("<f12>" nil)
,按 F12 应该提示 <f12> is undefined
。你可以用 hydra 官方提供的 hydra-zoom
试试。
你如果没有设置
("<f12>" nil)
,按 F12 应该提示 is undefined。
###错误:
F12 是全局按键,属于 :foreign-keys
。对于 :foreign-keys
,hydra 的默认行为就是关闭 hydra,执行这个 key 上所绑定的命令,这里即 (再次)调用 hydra
谢谢 @twlz0ne 我看了一下,hydra-zoom
是 wiki 上的一个例子?没有看出和我的问题有什么联系?当然也可以用 key-chord
, 但是那样就打败了我用 Caps 的本意了。
Update:
在 hydra buffer 会优先调用 hydra map 的F12 上绑定的命令,global map 的 F12 上绑定的命令并不会被调用。感谢 @twlz0ne
当然没有什么直接的关联,只是你又不贴代码,又要和我争辩。所以就让你在一个简单的例子上去验证。
能不能这样,省去g/l操作 (defhyadra hydra-zoom() “zoom” (“f12” nil) (if !当前是否开启了这个模式(从下面那个bar列表里 或者minor mode里) text-scale-increase text-scale-decrease)) (global-set-ket xxx’xxx)
没看懂。你是想要动态菜单,还是按 f12 执行一个 if
判断?如果是后者,普通函数不就可以吗,没必要 hydra
。
我没有遇到问题,也不用hydra。 只是看你的gif图片的时候 输入了两个按键,突发奇想,用一个按键可不可以,即可进又可退。
确实是一个按键。gif的左下角是按键。进入和退出都是F12
他可能是被 “in” “out” 这两个描述给误导了,以为是进入/退出
请问你用的哪款录屏软件,还可以添加注释?
您录制的视频都放哪里了??
我的系统是 macOS,录 gif 用的是 licecap,左下角 f12 按键提示是 Key Castr,字幕是在网上随便找的一个在线编辑器加的。