よく使われているvimのプラグイン top20


以前に「オレ的vimプラグイン10選」という記事を書いたのですが、この記事では完全に主観で紹介するvimのプラグインを決めていました。
世の中のエンジニアのalias設定」を書く際に利用したスクリプトを用いて、客観的なデータからおすすめのプラグインを紹介するのも面白そうだなと思い、調査してみました。

ランキングとプラグインの一言説明を紹介していきます。

更新履歴

  • 2019/04/15 公開
  • 2020/06/13 再集計しランキングを更新しました
    • ランキングを最新版に更新
    • 過去に20位圏内だったプラグインの詳細を残した
    • 新規にtop100にランクインしたプラグインの説明を追加

関連記事

対象

  • GitHub上のdotfilesトピックがついたリポジトリ
  • スター数順に上位1000リポジトリ
  • 対象ファイルは*vimrcinit.vim*.toml

集計にはこのツールを使いました。
reireias/dotseeker

集計スクリプト

ワンライナー教の信者なのでシェル芸してます。

find files -type f | xargs cat | sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' -e '/^$/d' -e '/^["\\]/d' | ag / | sed -e 's/ /\n/g' | ag -o "[a-zA-Z0-9][a-zA-Z0-9_.-]+/[a-zA-Z0-9][a-zA-Z0-9_.-]+" | sort | uniq -c | sort -nr

1位 tpope/vim-fugitive

304票(前回:276票、1位)
第1位はvimからGit操作を行うことができるvim-fugitiveでした!

下の画像は:Gblamegit blameの内容を表示している例です。

こちらは:Gdiffによるgit diffの表示です。

他にも:Gstatusgit statusの結果を表示し、そこからファイルを選択して開く、といった機能もあります。

2位 tpope/vim-surround

269票(前回:263票、2位)
括弧やクオート、XMLタグ等を表すテキストオブジェクトを追加することで、「シングルクオートをダブルクオートに変更」や「[Hello]から括弧を削除」等の操作ができるようになります。

例
cs"' : ダブルクオートをシングルクオートに置換
ds[  : []を削除

3位 airblade/vim-gitgutter

217票(前回:214票、3位)
Gitの追加/削除/変更された行を行番号の左に表示してくれます。

4位 scrooloose/nerdtree

215票(前回:211票、4位)
ファイルツリーを表示することができます。
ツリー上のファイルに対して表示、分割表示、プレビュー等が行えます。
また、gitの追加/更新などの情報も表示されます。
下記画像では、ryanoasis/vim-deviconsryanoasis/nerd-fontsも導入しているので、ファイルタイプごとにアイコンが表示されています。

5位 junegunn/fzf.vim

206票(前回:156票、7位)
インクリメンタルサーチツールfzfを利用した様々な検索を提供するプラグインです。

:GFIlesgit ls-filesの結果に対し、インクリメンタルサーチを実施している例です。

6位 junegunn/fzf

169票(前回:144票、10位)
fzfをvimから使えるようにするプラグインです。
5位のfzf.vimの依存プラグインです。

7位 tpope/vim-repeat

167票(前回:157票、6位)
.によるコマンド繰り返し機能をより強力にしてくれるプラグインです。
例えば、2位のvim-surroundが.による繰り返しで利用できるようになります。

8位 tpope/vim-commentary

164票(前回:155票、8位)
複数行を一気にコメントアウトできるプラグインです。
範囲コメントの無い言語で重宝します。

9位 vim-airline/vim-airline

146票(前回:146票、9位)
ステータスバーをいい感じにカスタマイズできるプラグインです。

10位 vim-airline/vim-airline-themes

132票(前回:126票、12位)
ステータスバーのカスタマイズ用テーマ集です。
wikiに全テーマのスクリーンショットが掲載してあります。

11位以下

11位 w0rp/ale

120票(前回:168票、5位)
非同期でLintツールを実行してくれます。

現在はOrganization配下へ移動されたため、票が別れてしまってランクダウンしていました。
dense-analysis/ale

ちょっと昔はsyntasticというツールがメジャーでしたが、こちらは同期処理であったため、lintが走っている間はvimの操作が行えませんでした。

下のgifはeslintの例です。

12位 sheerun/vim-polyglot

118票(前回:110票、16位)
様々な言語のシンタックスやインデントを提供するプラグインです。

13位 fatih/vim-go

117票(前回:128票、11位)
Go言語の開発用プラグインといったらこれです。(テスト、lint、フォーマッタ等)

14位 pangloss/vim-javascript

114票(前回:117票、13位)
javascript開発用プラグインです。(インデント、ハイライト)

15位 majutsushi/tagbar

110票(前回:115票、14位)
ctagsで生成されたタグをアウトライン風にウィンドウに表示します。

16位 junegunn/goyo.vim

106票(前回:93票、18位)
余白を追加し、ステータスバー等も隠すプラグインです。

17位 itchyny/lightline.vim

99票(前回:78票、30位)
9位のvim-airline同様にステータスバー/タブバーをカスタマイズするプラグインです。
以下に設計思想がかかれています。
lightline.vim作りました - プラグインの直交性について

18位 SirVer/ultisnips

96票(前回:93票、19位)
スニペットを拡張し、高速に使えるようにするです。

19位 neoclide/coc.nvim

95票(前回:圏外)
各種Language Server Protocolを扱うプラグインです。
言語に応じたLanguage Serverを導入することで、型やメンバーの自動補完、変数やメンバーの定義参照、変数やメンバーの利用箇所の検索、コードの自動フォーマット、コードのエラー分析や修正案の提示といった、さまざまな機能を実現できるのがこのLSPの特徴です。

coc.nvimでは下記コマンドで簡単にLanguage Serverの追加が可能です。

# javascript用Language Serverの追加
:CocInstall coc-tsserver

20位タイ junegunn/vim-easy-align

93票(前回:86票、23位)
イコールの位置で揃えたりが可能な整形プラグインです。


READMEより

20位タイ jiangmiao/auto-pairs

93票(前回:90票、20位)
対となる括弧を追加/削除してくれるプラグインです。

20位タイ editorconfig/editorconfig-vim

93票(前回:88票、21位)
.editorconfigファイルに書かれた設定で拡張子毎にインデントや改行等の設定でフォーマットすることができるプラグインです。
チームで開発する際に重宝します。

20位タイ christoomey/vim-tmux-navigator

93票(前回:76票、31位)
tmuxのペインとvimのスプリット間のシームレスな移動キーマップを提供してくれるプラグインです。

前回20位以内

28位 Shougo/deoplete.nvim

87票(前回:114票、15位)
Neovim 0.3以降 or Vim8で動作する高速な補完プラグインです。

24位タイ mattn/emmet-vim

92票(前回:99票、17位)
選択した範囲に対してイイ感じにhtmlタグを設定できるプラグインです。

その他前回100位圏外からのランクイン

24位〜100位


24位〜100位
92 scrooloose/nerdcommenter
92 mattn/emmet-vim
92 honza/vim-snippets
89 tpope/vim-unimpaired
87 Shougo/deoplete.nvim
83 godlygeek/tabular
82 tpope/vim-endwise
80 Yggdroot/indentLine
76 ryanoasis/vim-devicons
73 tpope/vim-rhubarb
73 tpope/vim-eunuch
72 ctrlpvim/ctrlp.vim
71 plasticboy/vim-markdown
71 elzr/vim-json
69 rust-lang/rust.vim
69 mbbill/undotree
67 terryma/vim-multiple-cursors
65 leafgarland/typescript-vim
65 ervandew/supertab
65 easymotion/vim-easymotion
62 tpope/vim-abolish
62 mxw/vim-jsx
60 scrooloose/syntastic
60 ap/vim-css-color
58 altercation/vim-colors-solarized
57 kana/vim-textobj-user
57 bling/vim-airline
56 tpope/vim-rails
56 mhinz/vim-startify
55 cespare/vim-toml
54 mileszs/ack.vim
54 Raimondi/delimitMate
52 vim-ruby/vim-ruby
52 morhetz/gruvbox
52 macros/matchit.vim
51 wellle/targets.vim
50 tpope/vim-markdown
50 junegunn/limelight.vim
49 Xuyuanp/nerdtree-git-plugin
48 tpope/vim-sensible
47 othree/html5.vim
47 nathanaelkane/vim-indent-guides
46 dense-analysis/ale
45 tpope/vim-dispatch
45 tomtom/tcomment_vim
45 ntpeters/vim-better-whitespace
45 VundleVim/Vundle.vim
44 lervag/vimtex
44 hail2u/vim-css3-syntax
43 Valloric/YouCompleteMe
43 AndrewRadev/splitjoin.vim
41 xolox/vim-misc
41 mhinz/vim-signify
41 Shougo/vimproc.vim
39 posva/vim-vue
39 kien/ctrlp.vim
37 tmux-plugins/vim-tmux
36 tpope/vim-vinegar
36 chriskempson/base16-vim
35 tpope/vim-sleuth
34 tmux-plugins/vim-tmux-focus-events
34 mattn/gist-vim
34 janko-m/vim-test
34 arcticicestudio/nord-vim
33 roxma/nvim-yarp
33 mattn/webapi-vim
33 kchmck/vim-coffee-script
33 Shougo/dein.vim
32 junegunn/gv.vim
32 davidhalter/jedi-vim
31 othree/yajs.vim
31 cakebaker/scss-syntax.vim
30 roxma/vim-hug-neovim-rpc
30 junegunn/vim-peekaboo
30 jparise/vim-graphql
29 michaeljsmith/vim-indent-object
29 machakann/vim-highlightedyank

まとめ

名前はみたことあったけど、意外と人気だったプラグインとかが見つかり、いろいろと試してみたくなってきました。
試したプラグインは少しづつ追記していこうかと思います。