トイレに行くのも面倒な男のvimプラグイン一覧


> プラグイン管理は、Vundleを利用してる。
> dotfilesの管理方法は[こちらを参照](http://qiita.com/kinef/items/7ac05edbc4ed7656ad79)
> 使用言語は、PHP/Perlで開発環境はCentOSであることがおおいかな
> 好きな映画はパーフェクトセンス
> 嫌いなものは自分

```
Bundle 'gmarik/vundle'
Bundle 'Shougo/neocomplcache'
Bundle 'Shougo/neosnippet'
Bundle 'Shougo/unite.vim'
Bundle 'thinca/vim-ref'
Bundle 'thinca/vim-quickrun'
Bundle 'perl.vim'
Bundle 'Shougo/vimproc'
Bundle 'Shougo/vimshell'
Bundle 'Shougo/vimfiler'
Bundle 'Shougo/unite-ssh'
Bundle 'savevers.vim'
Bundle 'surround.vim'
Bundle 'yanktmp.vim'
Bundle 'tpope/vim-fugitive'
Bundle 'gitv'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'sjl/gundo.vim'
Bundle 'h1mesuke/unite-outline'
Bundle 'fuenor/qfixhowm'
Bundle 'vim-perl/vim-perl'
Bundle 'sgur/unite-qf'
Bundle 'vim-scripts/Align'
```

## インストールしているプラグインについて

### Vundle

説明するまでもなくプラグイン管理。
いまはgithubとかあるおかげで、本当に楽ですね。
なんか良さそうと思ったらとりあえずいれてます。

### neocomplcache

補完候補を自動でポップアップ表示してくれる。
これのおかげでタイプミスなどはだいぶ減った気がする。
後述のuniteと合わせて必須

設定方法は適当にどこかからコピペしてる。
また、PHPとPerlの標準関数については.dictファイルを
作成してそこからとっている。

### neosnippet

Ctrl+k でスニペットを用意してくれる。
あんまり活用できてないけど、便利
自分でスニペットの登録も可能。

### unite

これも必須。様々なソースファイルを自由に検索できる。
自分が主にソースとしているのは、

1. ファイル
2. 最近編集したファイル
3. 現在のバッファ
4. grep
5. 関数

といったかんじ。基本的なファイルを開いたり探したりといったことは
uniteで行っている。

### vim-quickrun

現在のファイルを実行して quickfix に表示してくれる。
例えばワンライナーより少し複雑だが、簡単な Perl スクリプトを
つくって実行といったかんじ。ワンライナーで書くより
遥かに楽。

### vimproc

これは一部プラグインを実行するのに必須。
使い方はみればわかるとおもうけど
インストール後に環境に合わせて make する必要がある。

### vimshell

uniteインターフェースでシェルを使える。
簡単な検索やシェルコマンドを行いたいときはこちらで。
個人的にはターミナルプレクサの別ペインで行ってしまうのであまり活躍してないけど。

### savevers

ファイル編集履歴を自動的にナンバリングして記録してくれる。
またその差分も確認できる。たまに使う。
ただ余計な履歴バッファががっつりできてしまうのでちょっと面倒

### 	surround

これはショートカットでデリートや選択が可能。
最初おぼえるのが少し面倒だけど、これ覚えると色々便利。
さいきん自分はやらないけど、マークアップの際とかはすごく便利なはず。

使う為にはまず[テキストオブジェクト](http://www.soum.co.jp/misc/v/vim-no-susume/8.html)を覚えましょう

### yanktmp

複数のvimを立ち上げている際にレジスタを共有できる。

### SrcExpl

> 使ってない。

### taglist

> 使ってない

### vim-fugitive

gitをvim上で行ってくれる。
挙動が不安なのであまり使っていなかったけど
最近はこまめにコミットしようという考えから使い始めた。

習慣化するとよいと思う。

### gitv

gitのログをキレイにツリー形式でみせてくれる。
使いこなしたら便利かもしれないけど、あんまり
他の人をコミットを追ったりとかがないので必要にかられていない。

### vim-easymotion

これはすごく便利。
キーバインドを指定して、カーソルを移動したい行に
アルファベットをわりふってくれる。
そのアルファベットを押せばカーソルが移動する。
いちいち「j」とか「k」連打したり、「f」で検索したりする必要が減る。

### gundo

UNDO履歴を管理してくれる。
バージョン管理のように、枝分かれした歴史にも
戻ることができるので神。しかもみやすい。

ただリモート上で使う為には、pythonへのパスを通して
コンパイルされていないと駄目なので厄介。
職業プログラマーとかはリモートで作業することも多いと思うので注意。
一応ソースからpythonコンパイルの方法はまとめてある。
[vim7.3(+python2.4)をソースからインストール](http://qiita.com/kinef/items/bac09fe6717ed16d7fad)

### unite-outline

あんまり使ってないんだけど、関数一覧とかを表示してくれる。
IDEとかでよくあるツリーを作ってくれるかんじ。
ただvimは検索機能が便利なので、ここから選んだりするよりも、タイプした方が基本的にははやいとおもう。一覧でみるという意味ではよいかもしれないけど。
ソース解析とかにはよいかもしれない。

### qfixhowm

これは手のこんだメモプラグイン
独自のマークアップで、柔軟に色々なメモができる。
個人的には、現場でおきた調査結果などをまとめている。
シンタックスなども調整可能なのでありがたい。
また検索やgrep機能もすぐれているため、メモの内容自体を
github等で管理して共有化すると資産が蓄積されてよい。
以前はそういうメモにEvernoteを利用していたが、エディタがゴミなのでこちらに移行。

### unite-qf

なんだっけこれ

### Align

選択範囲を指定の文字をキーに整形してくれる。
例えば、CSVファイルなんかをキレイに整形できる。
仕事柄、CSV, TSVファイルなどを扱うことが多いので意外とよい。
他の人に見せるときに整形する際や、コードで配列の
= や => などを整形するにも役立つ。

### unite-colorscheme

シームレスにカラースキームをプレビューできるので楽しい。

### vimfiler

uniteが入っていれば自動で使えるが、最強のファイル操作プラグインだと思う。
ファイルやディレクトリの作成・検索・デリート・リネーム・コピー
すべて簡単にできてしまう。つまりファイル操作関連はほぼすべてできる。

新しくクラスモジュールを作ったり、スクリプトを作ったりということに悩む必要はない。名前変更も簡単にできるから気軽につくれる。

## キーバインドについて

*個人的設定*

```
# ;; でインサートモードを脱出
inoremap <silent> ;; <ESC>

# <Space>T で、ワンライナー用スクリプトを開く。
# 作成したモデルを試したいときなどは、
# Perlテンプレートを利用したスクリプトが生成されるので
# ここで作成して、quickrunで実行という単体テストを簡単に実現できるようにしている。
let $MEMO = $HOME
let $ym  = strftime('%Y%m')
let $d   = strftime('%d')
map <Space>T :e $MEMO/$ym/$d.pl<CR>
```

*プラグイン設定*

```
# Gundoの起動
nmap U :<C-u>GundoToggle<CR>

# diffを別ペインで表示する
cnoremap vdiff :vertical diffsplit 

# easy-motionのprefixキーバインドを <SPACE>eにする。
let g:EasyMotion_leader_key = '<SPACE>e'

# vimfilerの移動。ホームディレクトリをひらく。
nnoremap <SPACE>E :VimFiler -split -simple -no-quit<Cr>

# vimfilerの起動(現在開いているファイルディレクトリを開く)
nnoremap <SPACE>F :VimFilerBufferDir -split -simple -no-quit<Cr>
```

*unite, neocomplcache設定*

```
どこかから適当に拝借したやつ。
```

疲れたからおしまい。