<delete>
バイパーモードでの前方削除にはキー(Cdだと思います)を使いたいです。
viper-modeを開始する前に、<delete>
正しく動作します。viperモードで<delete>
は、バッファの最後の行にジャンプします。
(setq viper-ex-style-editing nil)
.viperに追加し<backspace>
、すべてのモードで動作します。
<delete>
バイパーモードでの前方削除にはキー(Cdだと思います)を使いたいです。
viper-modeを開始する前に、<delete>
正しく動作します。viperモードで<delete>
は、バッファの最後の行にジャンプします。
(setq viper-ex-style-editing nil)
.viperに追加し<backspace>
、すべてのモードで動作します。
これを試して:
(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
。
\ キーは 1 回のキー ストロークで Emacs モードに戻るため、.emacs ファイルを変更したりコードを追加したりすることなく、"\<delete>" で目的の操作を実行できます。
さて、これがあなたがすることです。
(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
、命名規則が一貫して守られているわけではないため、それが実際のものであり、他のものではないことを確認してください.