我没有经验viper-mode
,但根据我所做的有限测试,以下内容似乎可行:
(add-hook 'viper-load-hook
#'(lambda ()
(define-key viper-insert-basic-map (kbd "C-d") nil)
(define-key viper-insert-basic-map (kbd "C-d C-d") 'kill-line)))
您可以将所需的任何其他定义添加到该挂钩中,以确保在启动时对其进行评估。但是,您需要小心选择的键绑定。C-y
,例如,你特别提到的,通常绑定到yank
,我怀疑这是你可能不想取消绑定的东西。此外,viper-mode
似乎使用了一组非常复杂和精心制作的重叠键映射,因此根据您希望启用的功能,您可能需要指定一个不同的键映射(或者,实际上,要并行使用几个不同的键映射),例如viper-vi-global-user-map
, viper-insert-global-user-map
, 等等。不幸的是,这与我的专业知识程度有关 w/r/t viper-mode
。
编辑:对不起,我想我可能误解了你的要求。如果您想在之外 viper-mode
应用这些键绑定,请使用global-set-key
,即:
(global-unset-key (kbd "C-d"))
(global-set-key (kbd "C-d C-d") 'kill-line)
等等。同样,请注意您设置的绑定。使用describe-key
(默认绑定到C-h k
)检查您希望重新映射的键序列当前绑定到什么。