1
如何在特定的邪恶状态下为模式设置按键绑定?
我有一套键绑定,既用于(Evil)的插入模式,web-mode又php-mode用于插入模式。所以我不能使用set-local-map。因为在正常模式下,相同的键将随后调用其他命令。因此,绑定evil-insert-state-map仅需处于活动状态。 我有以下内容: (eval-after-load 'php-mode '(progn (define-key evil-insert-state-map (kbd "C-<next>") (lambda () (interactive) (insert " = "))) (define-key evil-insert-state-map (kbd "C-<prior>") (lambda () (interactive) (insert "->"))))) (eval-after-load 'web-mode '(progn (define-key evil-insert-state-map (kbd "C-<next>") 'zencoding-expand-yas) (define-key evil-insert-state-map (kbd "C-<prior>") 'zencoding-expand-line))) 因此,每次web-mode或php-mode正在加载时,这些键绑定都会被激活。 问题是:假设我有两个打开的缓冲区,一个在中php-mode,另一个在中web-mode。当web-mode缓冲区是当前缓冲区并且我切换到另一个缓冲区时php-mode,web-mode绑定在php-mode缓冲区内部仍然处于活动状态。 我试图通过使用(add-hook 'web-mode-hook [...])和(add-hook 'php-mode-hook [...])而不是在中设置绑定来解决此问题eval-after-load。但是这种解决方案在这种情况下不起作用。 有什么建议么?我真的很感激。