Хотите использовать пробел, за которым следует клавиша, вместо клавиши C в обычном режиме состояния зла в Emacs

Я хотел бы иметь возможность нажимать пробел, а затем другую клавишу в качестве альтернативы нажатию Ctrl и клавиши в режиме Normal State of Evil.

Например, это то, что я начал определять в своем файле .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. Есть ли общий способ сделать это так, чтобы пробел, за которым следует другая клавиша, был бы эквивалентен любому C-"that key" в режиме Normal State of Evil?


person DJG    schedule 10.01.2013    source источник


Ответы (1)


Я недостаточно знаю о Зле, чтобы дать вам конкретный ответ, но вы можете попробовать

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

Хотя привязка function-key-map сработает только в том случае, если SPC «не привязан» на всех других картах, поэтому привязки его к nil в evil-normal-state-map может быть недостаточно. В противном случае вы можете использовать key-translation-map вместо function-key-map, поэтому переписывание будет иметь приоритет над обычными привязками SPC, но тогда вам нужно будет выяснить, как включить/отключить эту привязку при включении/выходе из нормального состояния Зла.

person Stefan    schedule 22.01.2013
comment
Пробовал, и только key-translation-map помогает, а не function-key-map. Думаю, мне нужно найти способ включить/отключить привязку при входе и выходе из нормального состояния Зла, как вы сказали, чтобы я мог набирать пробел, когда мне нужно. Кроме того, есть ли способ привязаться к function-key-map сначала при инициализации Emacs, чтобы это было сделано до любых других привязок? - person DJG; 24.01.2013