我不跟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)))
您可以添加自己需要的任何其他定義到hook,以保證他們在啓動時進行評估。但是,您需要注意所選的鍵綁定。例如,您特別提到的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
)檢查您希望重新映射的鍵序列當前綁定的內容。
你能澄清你想要什麼實現?你想Ctrl/Alt來充當Caps Lock切換嗎?或者充當班次?或者在光標或緩衝區中的其他位置上/下文本?如果你能提供一個你喜歡的行爲的具體例子,那將是有幫助的。 –
感謝您的快速響應。 例如,在emacs中,當vimpulse未啓用時,我想要 cy作爲複製來殺死ring(作爲vim中的y), cd cd刪除一行(作爲vim中的dd), mg作爲結束的緩衝區(如v中的G)。 以這種方式,我希望鍵在Emacs中打開/關閉vimpulse模式時都很相似。 – Olly