2011-06-01 56 views
0

我想用<delete>鍵(C-d,我認爲)在毒蛇模式向前刪除。毒蛇模式改變<delete>關鍵

開始viper模式之前,<delete>正常工作。在毒蛇模式下,<delete>跳轉到緩衝區的最後一行。

我已經加入到(setq viper-ex-style-editing nil)和.viper作品<backspace>在所有模式。

+0

所以......你的問題是否解決? – 2011-06-01 15:25:46

+0

不,不幸的不是。 – 2011-06-01 15:49:33

+0

由於您使用的是毒蛇模式,我們需要更多信息。你想要在插入模式下綁定嗎?或命令模式?都?你是什​​麼水平的毒蛇使用者(1-5)? – 2011-06-01 16:09:38

回答

2

試試這個:

(define-key viper-vi-basic-map "\C-d" 'viper-delete-char) 
(define-key viper-insert-basic-map "\C-d" 'viper-delete-char) 

現在,使用viper-delete-char命令與viper一致。如果您需要常規的emacs刪除行爲,請改爲使用delete-char

viper使用一羣不同的鍵盤佈局的實現,並找出修改哪些是棘手的。最簡單的方法(通常)是查看源代碼。所以你可以從M-x find-library viper開始。 注意:大多數鍵盤映射實際上在庫viper-cmd中定義。

+0

謝謝,那個伎倆。 – 2011-06-01 16:28:50

0

好的,這是你做的。

(1)在毒蛇模式中,使用C-h k找出<delete>必然。以防萬一你想將它連接到其他某個鍵。

(2)在其他一些模式中,使用C-h k找出函數的名稱是你想要做什麼。我認爲這是delete-forward,但不要相信我,檢查。 RMS有一種惱人的重命名事物的傾向。

(3)早在毒蛇模式緩衝區使用M-x local-set-key設置爲你想要的。嘗試一下。

(4)如果你感到快樂將此代碼添加到您的.emacs

(defun fix-del-key-in-viper-mode() 
    (define-key viper-mode-map "<delete>" your-desired-function)) 
(add-hook viper-mode-hooks fix-del-key-in-viper-mode) 

警告,你可能要招惹這一點,因爲我沒有測試它。特別要確保它確實是viper-mode-map而不是別的,因爲命名conventino沒有被一貫遵循。

+0

'C-h'不能在v蛇模式下工作。任何想法爲什麼? – 2011-06-01 14:50:23

+0

確認,我不能在v蛇模式下設置。我可以將其他鍵(如)設置爲'delete-char'並且它們可以工作。 拒絕變更。 – 2011-06-01 14:56:01

1

\鍵將切換回emacs模式爲單次擊鍵,所以你可以做你用「\ <刪除>」求而不做任何改變或添加任何代碼到你的.emacs文件。