emacs - 想要在 Emacs 的正常状态下使用空格键后接一个键而不是 C 键

标签 emacs elisp evil-mode

我希望能够按空格键然后另一个键,作为按 Ctrl 和正常状态 evil-mode 下的键的替代方案。

例如,这是我在 .emacs 文件中开始定义的内容:

(define-key evil-normal-state-map " ww" 'evil-window-next)
(define-key evil-normal-state-map " wr" 'evil-window-rotate-downwards)
(define-key evil-normal-state-map " wR" 'evil-window-rotate-upwards)
(define-key evil-normal-state-map " wo" 'delete-other-windows)
(define-key evil-normal-state-map " wn" 'evil-window-new)
(define-key evil-normal-state-map " wl" 'evil-window-right)
(define-key evil-normal-state-map " wh" 'evil-window-left)
(define-key evil-normal-state-map " wj" 'evil-window-down)
(define-key evil-normal-state-map " wk" 'evil-window-up)

据我所知,到目前为止,我似乎只能将按键序列定义为给定的功能,而不是像 Ctrl 这样不能单独使用的东西。是否有一种通用的方法可以做到这一点,以便空格键后跟另一个键相当于 evil-mode 正常状态下的任何C-“那个键”

最佳答案

我对邪恶的了解还不够,无法给你具体的答案,但你可以尝试一下

(define-key function-key-map " " 'event-apply-control-modifier)
(define-key evil-normal-state-map " " nil)

不过function-key-map仅当 SPC 在所有其他映射中“未绑定(bind)”时,绑定(bind)才会生效,因此在 evil-normal-state-map 中将其绑定(bind)为 nil。可能还不够。否则你可以使用 key-translation-map而不是function-key-map ,因此重写将优先于正常的 SPC 绑定(bind),但随后您需要弄清楚如何在启用/离开 Evil 的正常状态时启用/禁用此绑定(bind)。

关于emacs - 想要在 Emacs 的正常状态下使用空格键后接一个键而不是 C 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269202/

相关文章:

emacs - 如何从 Eval : in . dir-local.el 设置缓冲区局部变量?

emacs - 使用 EmacsClient 创建一个带有文本的新缓冲区

emacs - Lisp 中 while/break 的函数式编程替代方案

emacs - 将字体锁定应用于 elisp 中的引号

Emacs - evil-mode 导致 eldoc 模式闪烁

emacs - isearch 中的关键和弦

emacs - 粗体属性不起作用

emacs - 参数内的空格字符 (emacs lisp)

macros - 是否有用于构建列表的现有 lisp 宏?