最近ホットな Vim Plugin ３つ


最近ホットな Vim Plugin を3つ紹介します｡どれもカッコいいプラグインですので､気に入ったら是非使ってみてください｡


##vim-over
###vim-overの概要
[vim-over](https://github.com/osyo-manga/vim-over)は、EmacsのEvilのような一括置換ができるプラグインです。

どういうことかというと､置換する対象文字列がハイライトされ､さらに、その横に変更予定の文字列を表示するという、見た目がすごくカッコいい置換なのです。

Vimでは、`:%s/foo/bar/g`としても、ハイライトされませんし､変更予定の文字列も表示されません。

たしかに､1つずつ確認するには、`:%s/foo/bar/gc`でできますが、どうも味気なく、地味なのです。

しかし、`vim-over`を使うと､そんな地味さも吹っ飛びます｡以下の画像を見てください｡画像では､一括置換を実行していますが、視覚的に分かりやすいし、カッコいい置換になっています。


`%s/command/testpaste`


###vim-overのインストール
プラグイン管理をしている場合は､以下のようにします｡プラグイン管理というのは、具体的には､[Vundle](https://github.com/gmarik/vundle)や[NeoBundle](https://github.com/Shougo/neobundle.vim)を使った方法を言います｡

```~/.vimrc
NeoBundle 'osyo-manga/vim-over'
```

`:so $MYVIMRC | NeoBundleInstall`

プラグイン管理していない場合は､プラグインフォルダに当該プラグインをダウンロードします｡

```
$ mkdir -p ~/.vim/plugin/

$ cd !$ && git clone https://github.com/osyo-manga/vim-over.git
```

###vim-overの使い方

`vim-over`の使い方は簡単です｡基本的には、コマンドが設定されていますので､そちらで起動します｡

```
:OverCommandLine
```

キーマップで起動したい方は､`~/.vimrc`設定ファイルに以下を追記します｡

```vim:~/.vimrc
"" over.vim {{{

" over.vimの起動
nnoremap <silent> <Leader>m :OverCommandLine<CR>

" カーソル下の単語をハイライト付きで置換
nnoremap sub :OverCommandLine<CR>%s/<C-r><C-w>//g<Left><Left>

" コピーした文字列をハイライト付きで置換
nnoremap subp y:OverCommandLine<CR>%s!<C-r>=substitute(@0, '!', '\\!', 'g')<CR>!!gI<Left><Left><Left>

" }}}
```

これで、`,`+`m`を押すと、`vim-over`を起動できるようになりました｡ちなみに、`,`は`<Leader>`を意味します｡キーボードによって異なりますので注意が必要です。

追記です｡ノーマルモードで`sub`を押すと､カーソル下の単語をハイライト付きで置換できます。また、`subp`を押すと､コピーした文字列をハイライト付きで置換できます。

コマンドラインスペースでの操作方法は以下のとおりになっています｡

|キー |効果 |
|-----------|------------|
| < Up > or < C-p > |1つ前のコマンド履歴を挿入 |
|< Down > or < C-n >	 |1つ後のコマンド履歴を挿入 |
| < C-r >< C-f >| カーソル下のファイル名を挿入|
|< C-r >< C-w >|カーソル下の word を挿入|
|< C-r >< C-r >|カーソル下の WORD を挿入|
|< C-r >{0-9a-z"%#:-=.*}|番号/名前付きレジスタの挿入|

初期の`vim-over`は、割と見た目重視だったような気がするのですが､最近､本気で便利になってきました｡

また、コマンドラインのキーマッピングする機能を追加されています。

```vim:~/.vimrc
" OverCommandLineNoremap {lhs} {rhs}
" {lhs} を {rhs} のキーとして割り当てる
" ここで設定する事ができるキーは1文字、
" もしくは修飾キー+1文字のみ割り当てることができます
OverCommandLineNoremap <A-b> <C-b>
OverCommandLineNoremap <A-f> <C-f>
```

##yankround.vim
###yankround.vimの概要
副作用の少ない[YankRing.vim](https://github.com/vim-scripts/YankRing.vim)を目指して作られたプラグインです｡

`YankRing.vim`は他のプラグインや設定と干渉してしまう弊害があるので、好みが分かれるプラグインでした｡

しかし、その機能が魅力的故に、我慢して使っている人も多かったみたいです｡

そこで登場したのが､[yankround.vim](https://github.com/LeafCage/yankround.vim)です。

`YankRing.vim`とほぼ同じようなことが実現できて､かつ、弊害が少ないです｡

###yankround.vimのインストール

```vim:~/.vimrc
NeoBundle 'LeafCage/yankround.vim'
NeoBundle 'kien/ctrlp.vim'
```

`:so $MYVIMRC | NeoBundleInstall`

プラグイン管理していない場合は､プラグインフォルダに当該プラグインをダウンロードします｡

```
$ mkdir -p ~/.vim/plugin/

$ cd !$ && git clone https://github.com/LeafCage/yankround.vim.git
```

###yankround.vimの使い方

```vim:~/.vimrc
" yankround.vim {{{
"" キーマップ
nmap p <Plug>(yankround-p)
nmap P <Plug>(yankround-P)
nmap <C-p> <Plug>(yankround-prev)
nmap <C-n> <Plug>(yankround-next)
"" 履歴取得数
let g:yankround_max_history = 50
""履歴一覧(kien/ctrlp.vim)
nnoremap <silent>g<C-p> :<C-u>CtrlPYankRound<CR>
" }}}
```

基本的には､ペースト直後に`C-n`を押して､履歴を辿れます。

そして、`,`+`g`+`C-p`を押して､履歴一覧を[ctrlp.vim](https://github.com/kien/ctrlp.vim)で表示し､選択することが出来ます｡


##airsave.vim
###airsave.vimの概要
[airsave.vim](https://github.com/syui/airsave.vim)は、簡単には､オートセーブのプラグインです｡

現在行が変更されると、ノーマルモードに移行した時、ファイルが自動で保存されるようになります。

###airsave.vimのインストール

```vim:~/.vimrc
NeoBundle 'syui/airsave.vim'
```

`:so $MYVIMRC | NeoBundleInstall`

プラグイン管理していない場合は､プラグインフォルダに当該プラグインをダウンロードします｡

```
$ mkdir -p ~/.vim/plugin/

$ cd !$ && git clone https://github.com/syui/airsave.vim.git
```

###wauto.vimの使い方

```vim:~/.vimrc
nmap <Leader>s  <Plug>(AutoWriteStart)
nmap <Leader>ss <Plug>(AutoWriteStop)
```

キーでオートセーブの有効無効を切り替えます｡

|キー|効果|
|---|---|
|< Leader >+s|オートセーブを有効にする|
|< Leader >+ss|オートセーブを無効にする|

設定でオートセーブの有効無効を設定します｡

```vim:~/.vimrc
let g:auto_write = 1
```