viper-modeの設定

現在の私の .emacs 中の viper-mode に対する設定。
レベルは3で、
http://www29.atwiki.jp/sicpstudygroup/pages/45.html
からいただいた設定をまるまる貼り付けています。

この設定の出典は、
http://ho-ki-boshi.blogspot.com/2007/11/viper.html
のようです。

5行目の
(define-key viper-insert-global-user-map "\C-c" 'viper-exit-insert-state)
は、出典元にはなく、control-c に ESPキーと同様の機能を与えています。
これは、ちょっと便利です。

なお、出典元のnorさんの記載によると、これら設定を行わないと、
  • gg でバッファの一番上にカーソルが移動しない
  • * で検索が開始できない
  • C-], C-t でタグジャンプできない
  • C-o で前のカーソル位置に戻れない
  • backspace で改行が削除できない
  • C-wC-w でウィンドウが移動できない
  • uの連続でundo連続にならない
  • %%% が定義されていて%の対応括弧への移動が遅い
なのだそうです。
たぶん、私に関係あるのは、gg と backspase, uの3つだけです。
以上は、レベル3でのお話の様ですので、
レベルを1に近づければ、回避されるのかもしれません。

さらに、下記の2行を加えて、
(define-key viper-insert-global-user-map "\C-h" 'backward-delete-char-untabify)
(define-key viper-insert-global-user-map "\C-d" 'delete-char)
control-h が back space と同じに
control-d が delete と同じに働くようにしています。
control-h は、上記の設定が無くても 
back space で働きますが、上記を加えて、
改行が消せるようにしています。
windows で xyzzy を使っていたのと、
同じ挙動をするようにしています。

上記2行については、付け加えをしなくても、
レベルを変えると、きっと、
このような挙動をしてくれる様になるのでしょうが、
いろいろ試すのが面倒なので、レベルを3のまま、
上記を書き加えています。


B! LINE