我正在尝试 Emacs 与 Evil 模式。
我想将C-w我自己的全局定义的窗口操作快捷方式用作前缀,而不仅仅是用于 Evil 模式的缓冲区。我的 init.el 中有以下代码
(define-prefix-command 'my-window-map)
(global-set-key (kbd "C-w") 'my-window-map)
(define-key my-window-map (kbd "h") 'windmove-left)
(define-key my-window-map (kbd "j") 'windmove-down)
(define-key my-window-map (kbd "k") 'windmove-up)
(define-key my-window-map (kbd "l") 'windmove-right)
(define-key my-window-map (kbd "v") 'split-window-right)
(define-key my-window-map (kbd "b") 'split-window-below)
(define-key my-window-map (kbd "x") 'delete-window)
(define-key my-window-map (kbd "o") 'delete-other-windows)
如果 Evil 没有加载,这可以工作,但是当我加载 Evil 时,它会覆盖任何冲突的地图(C-w b例如)。
我也可以从evil-maps.el中注释掉 L106-158 和 L236并且我的地图工作,但我宁愿不处理修改 evil-maps.el。
有没有办法阻止 Evil 使用C-w前缀,或者之后取消设置它?