1ヶ月くらいでVimを常用エディタにする

# 1ヶ月くらいでVimを常用エディタにする

普段ポインティングデバイスとして親指で扱うトラックボールを使っているのですが、最近親指が痛くなってきたのでなるべくキーボードから手を離さないで使えるエディタとしてVimを使うことにしました。

自分の今までのVimとの付き合い方は`git commit`するときや個人で借りているサーバーに入ってちょっとした設定ファイルを変更するときなど、それくらいしか選択肢がないから仕方なく利用している程度でした。

Vimを普通に使えるように学習しようと思うと、他のエディタと比べて操作が直感的でなく、モチベーションが上がりませんでした。そこで、Vimを使うモチベーションを上げつつ常用エディタにするために自分が行ったことを順に説明しようと思います。

## Vim Bootstrap を使う

Vimを使い始めたとき、普通のエディタとして使うモチベーションが湧かなかった理由の一つが、デフォルトの機能が使いにくかったことです。Vimを便利そうに使っている周りのVimmerのvimrcは数百行にも及んでいて、まずそういうvimrcを書くこと自体が面倒で手を出していませんでした。誰かからvimrcをもらったりgithubに転がっているものを適当に持ってきても良いのですが、その人の色に染まっているので逆に扱いにくいこともあります。

そこで[Vim Bootstrap](http://vim-bootstrap.com/)です。自分の使いたい言語を選択して「Generate!」ボタンを押すだけで、その言語を扱いやすいリッチなvimrcを作ってくれます。

## GUIのVimを使う

次は見た目です。Vimはいつもコンソールから起動していましたが、見た目が簡素すぎてモチベーションが湧きませんでした。そこでGUIのVimを使うことにしました。

自分が使っているのは[MacVim](http://macvim-dev.github.io/macvim/)です。Macの場合、他にも[MacVim-kaoriya](https://github.com/splhack/macvim-kaoriya)という選択肢もあります。Windowsでは[KaoriYa](https://www.kaoriya.net/software/vim/)さんのVimが有名でしょうか。

別のエディタではトラックパッドやマウスホイールでスクロールする癖があったのですが、同じ動作ができるのでストレスなくVimに移行できました。ちなみに最近はGUIを起動するのが面倒でコンソールからVimを起動することも多くなってきています。

## 実践Vimを読む

[実践Vim](https://www.amazon.co.jp/dp/B00HWLJI3U/)がAmazonで評価が高かったので読んでみました。この本の良かったことの一つは、一つ前の操作を繰り返す`.`コマンドがかなり序盤に出てきたことです。テキストを編集するとき、繰り返し同じ動作を行うことは珍しくありません。

これまで、使い慣れたエディタに比べて面倒な側面が多く、コンソール上から起動できること以外にわざわざVimを使うメリットが感じられませんでしたが、他のエディタではなくあえてVimでテキスト編集をしたくなるモチベーションの一つとして`.`コマンドは十分でした。

`.`コマンドを効果的に使うことを意識すると、どこでインサートモードに入るかとか、どの単位で編集するかなどを考えるようになります。そこからVimmerはどういう考え方でテキストを編集しているのか、なぜVimにはこういうコマンドがあるのかということがわかってきた気分になれます。これは結構なブレークスルーです。

自分のおすすめの読み方は、PC版Kindleを画面の半分に置きつつ、もう半分の画面で実際にVimを起動してサンプルを実行する読み方です。実際に動かすことが重要で、Kindle版だとリンクをクリックするとサンプルのURLにアクセスできるのでとても便利です。

読み進めながら覚えたことは普段のテキスト編集でも実践してみます。普段IDEで開発している場合はこの段階でいきなり乗り換えるのは大変なので、設定ファイルやドキュメントの編集などで試してみると良いと思います。

実践Vimを読むと、Qiitaにある初心者向けVim記事の8割くらいは読む必要が無いのではないかと思えます。(この記事も！)

## ひたすらvimrcをいじる

一通り実践Vimを読んだらテキストをひたすら編集します。VimはエディタなのでVim自体を学ぶときには編集するテキストがあったほうが良いです。偶然にも手元にはリッチなvimrcがあるのでこれを編集します。

Vim Bootstrapで作ったvimrcは自分にとって不要な部分や足りない部分があります。まずは一つ一つの設定の意味やプラグインの用途を調べながら不要なものを削ったり足りないものを追加したりします。このときになるべくVimの便利な機能を使うようにして編集します。

これでVimの操作に慣れるうえに設定の意味や構文を覚え、さらに自分のvimrcが使いやすいものになり、良いことばかりです。

## 実践Vimを読む(２回目)

ここまででVimをある程度使えるようになっているので、知識の定着を図ります。流し読みでも良いのでもう一度実践Vimを読んで１回目に理解しにくかったことや忘れてしまっていたことを再確認します。

## Vim界隈の著名な人をフォローする

Vim界にはかなりすごい人がいます（かなり）

有用なことを書いているかもしれないです（たぶん）

## その先へ

あとはIDEの代わりにするのもいいし、メモ帳の代わりにするのもいいと思います。自分の場合、今のところVimの位置付けはIDEと[CotEditor](https://coteditor.com/)の中間です。がっつりプログラミングするときは[PyCharm](https://www.jetbrains.com/pycharm/)や[Gogland](https://www.jetbrains.com/go/)といったIDEを（Vimキーバインドで）使っていて、文章を書くときや軽くスクリプトを修正するときなどにVimを使っています。

## その他 効果があったこと・少なかったこと

Vimを常用エディタにするためにやったことで効果があったこと、少なかったことです

### 効果が少なかったこと

#### 普段使っているエディタをいきなりVimキーバインドにする

使っていれば慣れるだろうと思って普段のエディタをVimキーバインドに変えてみましたが、いつもの動きができなくてストレスが溜まるだけでした。

#### 初心者向け動画サイト

初心者向け動画サイトでVimの動画が上がっていて一通りやりましたが、Vimを使うメリットが感じられず常用エディタとして定着しませんでした。

#### vimtutor

仕方なくVimを使わなければいけないときに、操作を覚えるためには役立ちましたが、常用エディタにするという視点で見るとこれもVimのメリットを感じられず効果がありませんでした。

#### チートシート

普通にテキストを編集しているときにまず見ることがありませんでした。

### 効果があったこと

#### OSのクリップボードを使えるようにする

Vimを使うモチベーションが湧かなかった理由の一つはOSのクリップボードが扱いづらかったことです。これを使えるように設定することで常用エディタとして申しぶんなくなりました。設定はVim Bootstrapですでにしてあるし、実践Vimにも方法が書いてあります。

#### Emacsを使う

一見関係ありませんが、多少Emacsの操作を知っていると`<C-f>`と`<C-b>`、`<C-n>`と`<C-p>`のように対になっているものが覚えやすく、コマンドラインモードやインサートモードでEmacsキーバインディングを使えるようにしておくとカーソルキーに手を動かす必要がなくなるのでモチベーションが維持されます。

#### Karabinerでマウスを動かす

Macの場合、キーボードカスタマイズツールの[Karabiner](https://pqrs.org/osx/karabiner/index.html)を使ってマウス操作をキーボードのhjklで行うように設定できます。これで直感的でないVimのカーソル移動に手を慣らすことができます。ただし、この記事執筆時点で Mac OS Sierra では動作しません。