377
375

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

最近ホットな Vim Plugin 3つ

Last updated at Posted at 2013-11-17

最近ホットな 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
377
375
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
377
375

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?