2013年3月21日木曜日

vimのキーマッピングを学ぶ

ここまでの.vimrcはただ先人たちのモノをコピペする簡単なお仕事だったので、とりあえず少しづつ学習していこうと思います。
キーマッピング
コマンド ノーマルモード 挿入モード コマンドラインモード ビジュアルモード
map/noremap
nmap/nnoremap
imap/inoremap
cmap/cnoremap
vmap/vnoremap
map!/noremap!

mapとnoremap

  • map系
  • キーシーケンスを展開したあと、さらに別のマップを適応しようとする
  • noremap系
  • 一度だけ展開する

Vimのキーマッピング

キーマッピングの設定は各モードごとに独立しています。
上記の様にモードごとに設定します。 例)ノーマルモードで設定したものは、コマンドモードでは適応されないとか。

特殊なキーの指定

方向キーや修飾キー付きのキーなど、特殊なキーをキーマッピングで指定したい場合は、<>記法を使うそうです。
mapのオプション
オプション 説明
<silent> コマンドラインへの表示を抑制。キーマッピングからコマンドを実行する場合に指定
<unique> すでにキーマッピングが存在する場合、エラーにします。通常は上書きされる
<buffer> バッファローカルなキーマッピングを定義
<expr> マップ先の文字列をVim式とみなして、評価した結果を文字列のマップ先とする
ここで、IDEの機能でよくある括弧の自動挿入の機能を実現してみます。
したのようにしてみました。
今回は、挿入モードの時の設定なので、inoremapと使います。(一度しか展開されないやつですね。)
それぞれの括弧を入力したら、遂になる括弧の閉じる方を自動的に挿入して、で←を押して括弧のなかに移動しています。
長々と書いて来ましたが、今回はこのへんで失礼します。

最後までお読み頂きありがとうございました。

0 件のコメント:

コメントを投稿