読者です 読者をやめる 読者になる 読者になる

$ service ssh0 start

from everything import *

【Vim】よく使うプラグイン【自分のPCで使用しているソフトウェア,設定の紹介 #12】

自分のPCで使用しているソフトウェア,設定の紹介

前回はVimの基本設定について紹介しましたが,今回はVimで使っているプラグインの説明をしていきたいと思います。

Vimプラグインの管理の仕方ですが,前までは何も考えずにNeoBundleを使っていたのですが,最近ではvim-plugを使っています。

b4b4r07さんの影響力っておおきい...

そしてビジュアルって大事ですね。

設定ファイル全体は以下にあげてありますので,詳しく見てみたい方は参照してください。

dotfiles/plug.vim at master · ssh0/dotfiles · GitHub

ざっと数えてみると現在30個ほどのプラグインを使用しているみたいです。

以下ではこの中からよく使っているものに関してまとめてみたいと思います。

surround.vim

昔からあるので,言わずと知れたプラグイン

sで"surround"に関する操作が追加されます。

foo hoge bar_info korekore

とあったとき,bar_infoの上でysiW"と押すことで

foo hoge "bar_info" korekore

のようにしたり,cs"'と押すことで

foo hoge 'bar_info' korekore

のように"'に変えたりと,いろいろ便利です。

tpope/vim-commentary

コメントアウトのトグルを行うコマンドgcを追加します。

gclでその行をコメントアウト。範囲指定してからgcというのもわかりやすくていいですね。

markdownなど,コメントの書式が設定されていないものはcommentstringを自分で設定してやると,より便利です。

例えば

autocmd FileType markdown set commentstring=<\!--\ %s\ -->

Shougo/vimproc

暗黒美無王ことShougoさんの,非同期処理のためのライブラリです。 内部まできちんと見たことがないのでアレですが,thincaさんのvim-quickrunと組み合わせたときにその恩恵を受けていると感じます。

ctrlpvim/ctrlp.vim

ファイルやバッファなどをあいまい検索して開くことのできるプラグインです。

オリジナルはkien/ctrlp.vim: Fuzzy file, buffer, mru, tag, etc finder.ですが,READMEに

This project is unmaintained

You should use this fork instead.

とあるので,メンテナンスされているctrlpvim/ctrlp.vimの方を使っています。

高速にファイル内検索を行えるag(The Silver Searcher)を使うようにし,いくつかキーバインディングを設定しています。

if executable('ag')
  let g:ctrlp_user_command='ag %s -i --nocolor --nogroup -g ""'
endif
nnoremap <Leader>oo :CtrlP<CR>
nnoremap <Leader>om :CtrlPMixed<CR>
nnoremap <Leader>or :CtrlPMRUFiles<CR>vim

ervandew/supertab

補完等をTabキーを押すだけで出来るように。

カーソル前が空白のときには通常のTabを押した時と同じ操作になります。

kshenoy/vim-signature

kshenoy/vim-signatureのREADMEにあるGifで大体分かると思いますが,marksを可視化し行番号の左に表示してくれるプラグインです。

このプラグインのおかげでmarksが活用できるようになりました。

LeafCage/foldCC

LeafCage/foldCC.vim: 折り畳み関数と、現在階層を表示する機構を提供

折り畳み嫌いの男が一夜でFolding freakにまでなった話 - LeafCage備忘録

に開発の経緯やスクリーンショットなどものっているので,参考にしてみてください。

set foldtext=FoldCCtext()

とすることで設定を有効にしています。それ以外の機能は特にいじっていません。

このプラグインのおかげで僕もfoldingしまくり野郎になりました。 コードの構造が視覚的に分かるようになり,ファイルサイズが大きくなるにつれて自分が何やってるかわからなくなるあの現象がかなり抑えられていると思います。

デフォルトのカラースキームでは色が見にくかったけれど,それも自作のカラースキームにしてからは何も問題なくなって最高です。

lilydjwg/colorizer

lilydjwg/colorizer: A Vim plugin to colorize all text in the form #rrggbb or #rgb.

これもREADMEを見て欲しいのですが,設定ファイルで文字色をよく変更する人にとってこのプラグインは控えめにいって福音です。

#666666のような文字列があったら,Vimのなかでハイライトされて表示されるのです。

itchyny/lightline.vim

カスタマイサブルなステータスライン,タブラインを提供します。

lightline.vim作りました - プラグインの直交性について - プログラムモグモグ itchyny/lightline.vim: A light and configurable statusline/tabline for Vim

自分もその見た目のかっこよさからvim-powerlineを使っていたのですが,いろいろ変えたいところがあっても変えられる気がしていなかったところに,このプラグインの存在は大きかったです。

自由度が高い ということはその分設定量が多い,ということにつながってしまうかと思うのですが,作者さんによる設定の仕方に関するブログ記事もあるので,そちらを見ながらちょっとずつ色を変えたりして変更していけばいいと思います。

設定はここに張ると長くなってしまうので,該当行へのリンクだけにしておきます。

thinca/vim-quickrun

thinca/vim-quickrun: Run commands quickly.

こちらも割と有名かと思いますが,任意のコマンドをファイルタイプごとに設定しておくことで,テストの実行,自動コンパイルなどを行わせることができるようになるものです。

これもその自由度ゆえに設定できることが多すぎてはじめは戸惑うかもしれませんが,最初は他の人の設定例を検索してみるなどして見てみて,それから自分なりにアレンジしていけばいいと思います。

シェルスクリプトvim-quickrunさえあれば,組み合わせ次第で何でもできます。

お世話になっているプラグイン筆頭候補です。

plasticboy/vim-markdown

plasticboy/vim-markdown: Markdown Vim Mode

markdown編集用のプラグインです。 適切なハイライトが行えるのでこちらを使っています。

適切なハイライト,というのは"```"で囲ったときに言語を指定できますが,そのときの言語にあわせてシンタックスハイライトを行ったり,$で囲まれたところを数式とみなしてLaTeXの数式と同じようにハイライトしたりできる,ということです。

という組み合わせでも近いことができます(し,こちらのほうがかなり軽いです)が,数式ハイライトができなかったというのもあって,plasticboyさんのプラグインを使っています。

設定は

let g:vim_markdown_math = 1
let g:vim_markdown_frontmatter = 1
let g:vim_markdown_toc_autofit = 1
let g:vim_markdown_folding_style_pythonic = 1

としています。

davidhalter/jedi-vim

davidhalter/jedi-vim: Using the jedi autocompletion library for VIM.

これも言わずとしれたPython向けのプラグインです。

May The Force Be With You.

重かったり,若干意図しない動作があったりしますが,ライブラリの関数などを自動で補完してくれるので,記憶力のない僕はすごく助かっています。

関数呼び出しの際の引数もポップアップで表示されるので,いちいち定義に戻ったりする必要もなくていい感じです。

let g:jedi#popup_on_dot = 1
let g:jedi#popup_select_first = 1

tmhedberg/SimpylFold

tmhedberg/SimpylFold: No-BS Python code folding for Vim

Pythonファイルでのフォールディング規則を定めたプラグインです。 このプラグインで定義されたフォールディングは見やすいので使わせてもらっています。

moznion/hateblo.vim

moznion/hateblo.vim: This plugin provides some functions of Hatena-Blog by using AtomPub API.

はてなブログAPIを用いて投稿等をできるようにしたプラグインです。

:HatebloCreateとコマンドを打つだけで投稿できてしまい,とても良いです。

いつもこのプラグインを使って,Vimから投稿しています。

まとめ

よく使っているVimプラグインをいくつか紹介しました。

自分で書けるならそれが一番かもしれませんが,他の人がつくったものをうまく組み合わせて活用するというのも大事なことかなと思っています。

自分でつくったのは以下のカラースキーム系だけです。(完全に自分用で,gvimは想定していないのであしからず)

作者さんたちに感謝を表明しつつ,今回はこれくらいにしたいと思います。

さて,次回はfirefox,とくにvimperator関連の話ができればいいかなと思います。