0

<delete>バイパーモードでの前方削除にはキー(Cdだと思います)を使いたいです。

viper-modeを開始する前に、<delete>正しく動作します。viperモードで<delete>は、バッファの最後の行にジャンプします。

(setq viper-ex-style-editing nil) .viperに追加し<backspace>、すべてのモードで動作します。

4

3 に答える 3

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

于 2011-06-01T16:26:21.160 に答える
1

\ キーは 1 回のキー ストロークで Emacs モードに戻るため、.emacs ファイルを変更したりコードを追加したりすることなく、"\<delete>" で目的の操作を実行できます。

于 2012-05-21T22:58:23.530 に答える
0

さて、これがあなたがすることです。

(1) バイパーモードでは、何にバインドさC-h kれているかを調べるために使用します。<delete>他のキーに接続したい場合に備えて。

(2) 他のモードでは、目的C-h kの機能を実行する関数の名前を調べるために使用します。だと思いますdelete-forwardが、私を信用しないでください。確認してください。RMS には、名前を変更する厄介な傾向があります。

(3) viper-mode バッファに戻り、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、命名規則が一貫して守られているわけではないため、それが実際のものであり、他のものではないことを確認してください.

于 2011-06-01T14:08:55.727 に答える