最近ホットな Vim Plugin 3つ

  • 393
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

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

vim-over

vim-overの概要

vim-overは、EmacsのEvilのような一括置換ができるプラグインです。

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

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

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

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

%s/command/testpaste

vim-overのインストール

プラグイン管理をしている場合は、以下のようにします。プラグイン管理というのは、具体的には、VundleNeoBundleを使った方法を言います。

~/.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設定ファイルに以下を追記します。

~/.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は、割と見た目重視だったような気がするのですが、最近、本気で便利になってきました。

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

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

yankround.vim

yankround.vimの概要

副作用の少ないYankRing.vimを目指して作られたプラグインです。

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

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

そこで登場したのが、yankround.vimです。

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

yankround.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の使い方

~/.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で表示し、選択することが出来ます。

airsave.vim

airsave.vimの概要

airsave.vimは、簡単には、オートセーブのプラグインです。

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

airsave.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の使い方

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

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

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

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

~/.vimrc
let g:auto_write = 1