使用功能键作为“粘性”修改键


10

有没有一种方法可以将功能键(例如<f8>)用作某种超级键按下事件,然后再将下一个击键(例如f)插入,作为s-s?换句话说,这类似于粘性修改键,但仅适用于emacs,而不是os本身。

我了解键和弦模式以及您可以使用这样的组合键(global-set-key (kbd "<f8> b t") 'undo)来保存键盘快捷键的事实。但是我想要一种可以与我现有的超级键绑定一起使用的东西,并且不需要我将来将所有东西都绑定两次(即,一个绑定用于超级键,一个绑定用于功能键)。

Answers:


14

如果您的工作流程是:

  1. 按下并释放 F8
  2. 按下并松开s,期望它触发对s-s
  3. s除非F8再次按下,否则您随后按下的任何键都没有修饰键

然后,此功能存在于Emacs本身中。它C-x @ s默认情况下是绑定的(显然仅打算用于非常偶然的情况)。该命令是event-apply-super-modifier(对于存在类似的功能controlshiftmetaalthyper)。默认绑定位于中function-key-map,该绑定被全局或局部键盘图中的绑定覆盖。key-translation-map如果要使apply-modifier的含义优先,则可以改用。

(define-key function-key-map [f8] 'event-apply-super-modifier)

爱Emacs的更多理由!
A. Blizzard
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.