0からvimを学ぶ

vimでrailsを書いて３年くらいになりますが、
会社での覇権を完全にatomに奪われてしまい、
少しでも仲間を増やすために入門に関する情報を書いてみます。

## vimのメリットとは
- cuiツールと相性がいい
- どんな環境でもだいたい入っているし、簡単に導入する方法がある（とくにサーバーでの作業とか）
- 起動がはやいサクサク作業できる（拡張していく際にも起動や動きが重くならないようにするべし）
- 情報が豊富、qiitaにも沢山記事がある
- キーバインドが独特でなれると思考の速度で作業ができる
- vimのキーバインドはいろんなエディタや、開発環境で使えるのでそれを覚えるだけでも生産性UP
- テキストオブジェクトなる概念があり、テキストの編集においてすごく便利
- モードという概念があり、key一つ一つや組み合わせに機能を割り当てられる
- 拡張性が高い

## どんな人が向いているのか(主観)
- とにかくコードが書くのが好きな人:grin:
- コードを早く書きたい:rocket:
- カスタマイズして使うのが好きな人:pick:
- 設定ファイルを眺めるのが好きな変態:page_with_curl:

## どう慣れていくか
### 最小構成でスタートするのがいい

素のvimの機能を使いこなすことから始めよう。
`mac`を使っているなら最小は[macvim](https://github.com/splhack/macvim-kaoriya)でサクッと始めるのもいいのではないでしょうか。

### 基本的なスタンス
一気に全部は身につきません、最初に少しの基本を身につけて少しずつ出来ることを増やしていく感じです。
なれるまでは生産性はガクッと落ちるので、最初から仕事で使おうなどとは考えないほうがいいです。
自己投資だと思って少しずつやっていきましょう、投資した分のリターンは逃げなければ必ず回収できます。
vimの生産性はediterだけでなく、自分の脳味噌に情報をある程度載せることで実現されています。
(業務アプリケーションのショートカットを駆使して使っている経理のおばちゃんなどがvimmerに近い気がします。）
少しずつ、少しずつ自分も拡張していく感じです。

### チートシートを見える所に貼っておきましょう
グーグル画像検索などで沢山でてきます。↓
[![image](https://qiita-image-store.s3.amazonaws.com/0/31015/7ef107ac-1914-ee92-eea8-ae82b304cfe0.png)]
(https://www.google.co.jp/search?tbm=isch&q=vim+cheatsheet)


### チュートリアル
vimに入っている[vimtutor](http://qiita.com/y-temp4/items/3032d22cb5cc6ae3117a)を３回ぐらい通しでやれば大丈夫！！。

### おすすめの本
![image](https://qiita-image-store.s3.amazonaws.com/0/31015/ca293bc0-dc1b-b968-43c4-433ed6bed2bf.png)
[実践Vim　思考のスピードで編集しよう！](https://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5Vim-%E6%80%9D%E8%80%83%E3%81%AE%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E3%81%A7%E7%B7%A8%E9%9B%86%E3%81%97%E3%82%88%E3%81%86%EF%BC%81-%E3%82%A2%E3%82%B9%E3%82%AD%E3%83%BC%E6%9B%B8%E7%B1%8D-%EF%BC%A4%EF%BD%92%EF%BD%85%EF%BD%97-%EF%BC%AE%EF%BD%85%EF%BD%89%EF%BD%8C-ebook/dp/B00HWLJI3U/ref=sr_1_fkmr1_1?ie=UTF8&qid=1480345584&sr=8-1-fkmr1&keywords=%E6%80%9D%E8%80%83%E3%81%AE%E9%80%9F%E5%BA%A6+vim)という本をおすすめ、コア機能を詳しく解説してくれる。７回くらい読もう、そしたら、本当に思考の速度で編集できるようになっているはず。

### こなれてきたら
[![image](https://qiita-image-store.s3.amazonaws.com/0/31015/faf0ba09-f108-dda1-75ee-c6496700feeb.png)](http://www.vimgolf.com/)
[VimGolf](http://www.vimgolf.com/)なるものが世の中にはあって、簡単にいって、お題を最小のtype数でこなす競技みたいなものです。
他の人がどんな風にvimを操作しているのかがScoreのランキングでみれてvim力向上が図れるかもしれない。
これもいきなりやるんでなくて、余裕がでてきたら少しずつ覗いて、知らない機能の発見につながるかもしれない。


### 拡張していく
デフォルトの機能を熟知したら、`vimrc`という設定ファイルとの付き合い方です。
設定項目や`Vim script`という`vimrc`を書くための言語でいろいろと拡張していけます。
定期的に設定ファイルを見直すといいと思います。必ず`git`管理しておくことをおすすめします。
管理方法等は`dotfiles`などで検索するといい記事がでてきます。

最初はとっつきにくいので、Webサイトでポチポチして雛形を作るのがいいと思います。
[Vim Bootstrapでかんたん.vimrc生成](http://qiita.com/mktakuya/items/2f8c939ced3593b46044)

また、vimrc読書会なるサイトがあり定期的に公開vimrcの設定についての議論が乗っているので勉強になります。
[![image](https://qiita-image-store.s3.amazonaws.com/0/31015/1d6967d4-abc9-7795-77c3-10c132315c91.png)](http://vim-jp.org/reading-vimrc/)
自分的には一気にいろいろ試すのではなく、知らない物があったら調べて、少しずつ導入するのがいいと思います。
また、自分のvimrcも定期的に見直す等すると、自分で入れて忘れている機能があったりいろんな発見があります。
結局使わなかった機能などについては削る等して、軽い状態を保つことも大切だと思います。

最新の情報などは[はてなブックマークのテキストエディタ特集](http://b.hatena.ne.jp/entrylist/it/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF)などがいいかなと思います。
他にもいい情報源があれば教えてください。

ある程度拡張していくと、他の環境（サーバー）などと乖離がありすぎて、デフォルトの状態になるべく近づけようとする流れがあるきがしますw

## 日々の改善
日々のこれどうやってやるんだろうという事をメモしておいて、
空き時間にpluginなど、調べて拡張していくといいと思います。
example)
- 同じ階層のファイルに効率良くアクセスしたい
- branchごとにSession(開いているタブなど)を保存しておきたい
- git add、reset をvim上で簡単にやりたい
- atom-iconsみたいな表示にしたい
などなど、大抵の事は実現できます。
使っていると`IDE`化して行く傾向があるきがします。

## まとめ
vimでコード書くのも楽しいし、vimの設定ファイル見てニヤニヤするのも楽しいです。
[VimConf](http://vimconf.vim-jp.org/2016/)なるイベントも年一開催されていて楽しいです。
[neovim](https://neovim.io/)なんてのもあります!!
みんな`vim`使って楽しいプログラミングライフを一緒に送りましょう:grin: