Pages

Monday, January 9, 2012

今年こそ始める!何度も挫折した人のためのモダンVim再入門

Vimは非常にパワフルなエディタですが、その敷居の高さも有名です。
Vimの魅力やIDEとの違いは、以下の記事がとてもわかりやすいです。

Vimと包丁

私も何度か利用しようと試みては失敗し、、を繰り返してきましたが、今年こそはVimを使いこなそうと、設定の棚卸を含めて導入時のメモを整理しました。
ご参考になれば。

目次
  • やる気を高める
  • インストールして手になじませる
  • カスタマイズして自分色に染める
  • プラグインを導入して便利な機能を使う(Vundle)
  • 私の設定
  • あとがき


やる気を高める

Vimは学習コストの高いツールです。
そのため、ツールの恩恵を受けられるようになる前に挫折してしまう場合が多々あります。

そんな時こそスクリーンキャストです。

実際にVimを使えるようになるとどんな感じでコーディングできるようになるかを、予め知っておくことで、つらい時期を乗り越えましょう。

以下のスクリーンキャストがわかりやすいです。


コーディングを3倍速くする! Vim入門/比留間 和也(カヤック) from CSS Nite on Vimeo.

また、Railsプログラマ向けのスクリーンキャストはこちら


他にもこんなのもあります。

25 Vim Tutorials, Screencasts, and Resources
Vimプラグインを紹介しているスクリーンキャストを集めてみた

やる気、高まりましたか?
使いこなせるようになるまでは大変ですが、使いこなすとスクリーンキャストのようにサクサクコーディング出来るようになるので、頑張りましょう。


インストールから手になじませるまで

まずはVimをインストールします。

Mac : macvim

Windows : 

Linux :
環境にあわせて適当に

そのあとはしばらくひたすらチュートリアルを繰り返し、操作を手になじませてください。
まずは標準のチュートリアルを完璧に覚えましょう。


他にも様々なチュートリアルがあるので、物足りない場合は試してみてください。

Learn Vim Progressively
Vimエディタ・スターターマニュアル

カスタマイズして自分色に染める

Vimの真骨頂、カスタマイズです。
ホームフォルダ配下に存在する.vimrcファイルや.gvimrcファイルを編集することで、Vimの見た目や挙動を自分にあうようにカスタマイズすることができます。

カスタマイズ項目はかなりたくさんあるので、すぐに使いたい人はとりあえず以下のサイトの.vimrcの内容をコピーして利用しましょう。よく利用される機能や設定が盛り込まれています。

初心者にオススメな.vimrcのサンプル


もっと詳細にカスタマイズしたい場合は、以下のサイトが参考になります。
Vimの全オプション
vimrc基礎文法最速マスター

また、多くの人が.vimrcを公開しているので、他の人の設定も参考になります。

Vim初心者的導入メモ 2/3 「vimrc設定」編
vimrc一覧
Vimのステータスラインをより有効に活用する設定法


プラグインを導入して便利な機能を使う(Vundle)

Vimはプラグインを利用することで便利な機能を簡単に利用することができます。
プラグイン管理にはvundleというプラグイン管理ツールが便利です。

導入は簡単で、ターミナルで以下のコマンドを実行してください。
% git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
また、.vimrcに以下内容を記述してください。

 set nocompatible               " be iMproved
 filetype off                   " required!
 set rtp+=~/.vim/bundle/vundle/
 call vundle#rc()
 " let Vundle manage Vundle
 " required!
 Bundle 'gmarik/vundle'
 " My Bundles here:
 "
 " original repos on github
 Bundle 'tpope/vim-fugitive'
 Bundle 'Lokaltog/vim-easymotion'
 Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
 Bundle 'tpope/vim-rails.git'
 " vim-scripts repos
 Bundle 'L9'
 Bundle 'FuzzyFinder'
 " non github repos
 Bundle 'git://git.wincent.com/command-t.git'
 " ...
 filetype plugin indent on     " required!
 "
 " Brief help
 " :BundleList          - list configured bundles
 " :BundleInstall(!)    - install(update) bundles
 " :BundleSearch(!) foo - search(or refresh cache first) for foo
 " :BundleClean(!)      - confirm(or auto-approve) removal of unused bundles
 "
 " see :h vundle for more details or wiki for FAQ
 " NOTE: comments after Bundle command are not allowed..

プラグインの導入方法は以下の手順になります。

  1. Vim Scriptsや:BundleSearchプラグインを探す
  2. .vimrcにプラグインを追記する
  3. :BundleInstallでインストールする

See also:
Hack #215: Vundle で plugin をモダンに管理する
すぐに出来る!! vundleでモダンなvim環境を作ろう


私が導入している便利なプラグインを幾つかご紹介します。

Railscast.vim
みんな大好きTextMateライクなカラースキーマが利用できるようになります。
railscasts : Railscasts TextMate theme for Vim (GUI Only)

EasyMotion
カーソル移動が簡単になります
Vim Essential Plugin: EasyMotion
カーソル移動せずに任意の場所へキー入力で移動する

Fugitive.vim
Gitをvimから操作できるようになります。
Fugitive.vim - a complement to command line git

Surround.vim
シングルクォートやカッコなど処理を簡単にします。
川o・-・)<2nd life - vim の text-object をより便利に使えるプラグイン - surround.vim

NERD Commenter
コメント操作が簡単になります。
VimのヤバすぎコメントプラグインNERD_comments.vim

NERD Tree
ツリー表示できるファイルエクスプローラーです
The NERD tree : A tree explorer plugin for navigating the filesystem

mru.vim
最近開いたファイルの履歴管理ができます
mru.vim : 開いたファイルの履歴を管理して、最近開いたファイルに簡単にアクセスできるようにするプラグイン

FuzzyFinder
ファイル選択、フォルダ選択などを曖昧検索できるようになります。
FuzzyFinderの「FufFile **/」が最強:利用頻度1日数十回

AutoClose
カッコやクォーテーションを自動的に閉じてくれます。
AutoClose : Inserts matching bracket, paren, brace or quote


私の設定

私の現在の.vimrcと.gvimrcです。


スクリーンショットはこんな感じです。

あとがき

今回は私がVim再入門のために実施した内容を記事にしました。

実は、昨年の年始にEmacs再入門記事を書いており(RailsプログラマのためのEmacs再入門)ずっとEmacsを使ってました。しばらく使っていて手にも馴染んだのですが、Vimを試したこところ昨年末から切り替えています。

切り替えた理由はいくつかあるんですが、主な理由は以下のとおりです。
  • Rails用のプラグインが、EmacsのrinariよりVimのrails.vimのほうが活発に開発されていそう
  • vundleで簡単にプラグイン管理ができる
  • 操作を覚えるのがVimのほうが肌に合ってる。EmacsはCtrlキー押させすぎ。。
  • モード切替や設定ファイルの書き方など、Vimのほうがわかりやすい気がする
  • なんとなくまわりの状況を見ててVimのほうが勢いがある気がする
rails.vimとvundle以外は感覚的なものなので当てになりませんが。。

おそらくどちらかにしかできないことは少ないと思うので、EmacsとVim使ってみて自分にあった方を使うのがよいかと。

Vim本は以下がとても参考になりました。

No comments:

Post a Comment