【一人 vimrc advent calendar 2017】Windows ライクなキーマッピングを使う【5日目】

一人 vimrc advent calendar 2017 5日目の記事になります。
今回は Windows ライクなキーマッピングのお話。

Vim でも Windows ライクなキーマッピングを行いたい

さてさて、Windows ユーザが Vim を使うとお馴染みの

  • Ctrl + x:切り取り
  • Ctrl + c:コピー
  • Ctrl + v:貼り付け
  • Ctrl + z:アンドゥ
  • Ctrl + s:保存
  • Ctrl + a:全選択
  • etc...

みたいなショートカットを使いたくなりますよね。
わたしもそうでした。
このような Windows ライクなショートカットを Vim で使用したい場合 mswin.vim というスクリプトファイルが利用できます。

mswin.vim を使う

mswin.vimVim のランタイムに付属されているので以下のように読み込むことですぐに使うことができます。

source $VIMRUNTIME/mswin.vim

これにより

  • Ctrl + x:切り取り
  • Ctrl + c:コピー
  • Ctrl + v:貼り付け
  • Ctrl + z:アンドゥ
  • Ctrl + s:保存
  • Ctrl + a:全選択
  • etc...

のような機能がノーマルモードやインサートモード、ビジュアルモード、コマンドラインモードなどで利用することができます。
詳細は :help mswin.vim:e $VIMRUNTIME/mswin.vim などして直接スクリプトファイルを見てみるとよいでしょう。

mswin.vim を調整する

やってね!!これで Vim でも Windows のショートカットを使えるようになったよ!!!
とはいえ、Vim<C-v>(ブロック選択) や <C-c>(処理の中断)、<C-a>(文字のインクリメント)、<C-x>(文字のデクリメント) などを潰してしまうのはちょっとつらいです。
そこで以下のように『ノーマルモードでは元のキーマッピングを使うよう』に調整してみましょう。

source $VIMRUNTIME/mswin.vim

" ノーマルモードでは元のキーマッピングを利用する
nnoremap <C-x> <C-x>
nnoremap <C-v> <C-v>
nnoremap <C-a> <C-a>
nnoremap <C-c> <C-c>

" この辺りは便利そうなので残して置いたり
" nnoremap <C-z> <C-z>
" nnoremap <C-s> <C-s>

他にも『元の Vim のキーマッピングを使いたい!』みたいなのがあれば上記のように設定を追加していくとよいでしょう。

まとめ

  • VimWindows ライクなショートカットを使いたい場合は mswin.vim が利用できる
  • mswin.vim では重要なキーマッピングが潰されるので使用する場合は調整する必要がある

Vim なら Vim のショートカット(キーマッピング)を使うべきだ』という人もいるかと思いますが、最初から全ての Vim のキーマッピングを覚えるのはとても大変です。
なので Vim を使い始めた方や Vim の操作に慣れない方は、まずはこのような便利スクリプトを利用して徐々に慣れていくとよいのではないでしょうか。
Vim の操作がわからなくてストレスがたまるよりも、このように自分の使い勝手のよい設定を行い『ストレスフリーな環境を構築していくこと』が Vim を使用する第一歩でもあると思います。
まあ、とはいえ <C-v><C-c> などの重要なキーマッピングを潰してしまうのも事実なのでその辺りは細かく調整していく必要はあるとは思います。
そんな感じで『Vim を使い始めたけど操作が難しい…』という方は mswin.vim を利用してみるのはどうでしょか。