Vim
vimrc
neovim

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

以前に「オレ的vimプラグイン10選」という記事を書いたのですが、この記事では完全に主観で紹介するvimのプラグインを決めていました。

世の中のエンジニアのalias設定」を書く際に利用したスクリプトを用いて、客観的なデータからおすすめのプラグインを紹介するのも面白そうだなと思い、調査してみました。

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


関連記事


対象


  • GitHub上のdotfilesトピックがついたリポジトリ

  • スター数順に上位1000リポジトリ

  • 対象ファイルは*vimrcinit.vim



    • .vimrcnvimrchoge.vimrc等も含む



  • 総ファイル数644ファイル

例によって、このリポジトリを使いました。

reireias/dotseeker


集計スクリプト

もはや呪文の領域ですが、いちおう掲載

grep -r -h -E "^" files --color=none --include="*vimrc" | sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' | grep -v -E "^$" | grep -v -E "^\\\\" > rc.txt

grep -r -h -E "^" files --color=none --include="*init.vim" | sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' | grep -v -E "^$" | grep -v -E "^\\\\" > init.txt
wc -l < *.txt | cat - *.txt | ./comment_remove.py | sed -e 's/[ \t]*$//g' | grep -v -E "^(if|endif|endfunction|autogroup|else|autocmd\!|au\!|augroup|endfor)" | grep -E "^(call|Bundle|Plug)" | grep --color=none -E -o "['\"][^/]*?/[^,]*['\"]" | sed -e 's#https://github.com/##g' | sort | uniq -c | sort -nr | head -n 100


1位 tpope/vim-fugitive

276票

第1位はvimからGit操作を行うことができるvim-fugitiveでした!

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

gblame.png

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

gdiff.png

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


2位 tpope/vim-surround

263票

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


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

surround.gif


3位 airblade/vim-gitgutter

214票

Gitの追加/削除/変更された行を行番号の左に表示してくれます。

gitgutter.png


4位 scrooloose/nerdtree

211票

ファイルツリーを表示することができます。

ツリー上のファイルに対して表示、分割表示、プレビュー等が行えます。

また、gitの追加/更新などの情報も表示されます。

下記画像では、ryanoasis/vim-deviconsryanoasis/nerd-fontsも導入しているので、ファイルタイプごとにアイコンが表示されています。

nerdtree.png


5位 w0rp/ale

168票

非同期でLintツールを実行してくれます。

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

下のgifはeslintの例です。

ale.gif


6位 tpope/vim-repeat

157票

.によるコマンド繰り返し機能をより強力にしてくれるプラグインです。

例えば、2位のvim-surroundが.による繰り返しで利用できるようになります。


7位 junegunn/fzf.vim

156票

インクリメンタルサーチツールfzfを利用した様々な検索を提供するプラグインです。

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

fzf.gif


8位 tpope/vim-commentary

155票

複数行を一気にコメントアウトできるプラグインです。

範囲コメントの無い言語で重宝します。

commentary.gif


9位 vim-airline/vim-airline

146票

ステータスバーをいい感じにカスタマイズできるプラグインです。

04.png


10位 junegunn/fzf

144票

fzfをvimから使えるようにするプラグインです。

7位のfzf.vimの依存プラグインです。


11位以下


11位 fatih/vim-go

128票

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


12位 vim-airline/vim-airline-themes

126票

ステータスバーのカスタマイズ用テーマ集です。

wikiに全テーマのスクリーンショットが掲載してあります。


13位 pangloss/vim-javascript

117票

javascript開発用プラグインです。(インデント、ハイライト)


14位 majutsushi/tagbar

115票

ctagsで生成されたタグをアウトライン風にウィンドウに表示します。

tagbar.png


15位 Shougo/deoplete.nvim

114票

Neovim 0.3以降 or Vim8で動作する高速な補完プラグインです。


16位 sheerun/vim-polyglot

110票

様々な言語のシンタックスやインデントを提供するプラグインです。


17位 mattn/emmet-vim

99票

選択した範囲に対してイイ感じにhtmlタグを設定できるプラグインです。

emmet.gif


18位 junegunn/goyo.vim

93票

余白を追加し、ステータスバー等も隠すプラグインです。

goyo.png


19位 SirVer/ultisnips

93票

スニペットを拡張し、高速に使えるようにするです。


20位 jiangmiao/auto-pairs

90票

対となる括弧を追加/削除してくれるプラグインです。


21位〜100位

21位以下は票数とプラグイン名のみ記載します。

     88 'editorconfig/editorconfig-vim'

87 'godlygeek/tabular'
86 'junegunn/vim-easy-align'
86 'honza/vim-snippets'
85 'ctrlpvim/ctrlp.vim'
84 'scrooloose/nerdcommenter'
83 'tpope/vim-unimpaired'
83 'tpope/vim-endwise'
81 'ervandew/supertab'
78 'itchyny/lightline.vim'
76 'christoomey/vim-tmux-navigator'
73 'easymotion/vim-easymotion'
71 'mxw/vim-jsx'
69 'tpope/vim-eunuch'
67 'Valloric/YouCompleteMe'
66 'terryma/vim-multiple-cursors'
65 'plasticboy/vim-markdown'
64 'scrooloose/syntastic'
64 'elzr/vim-json'
64 'altercation/vim-colors-solarized'
63 'Raimondi/delimitMate'
60 'mbbill/undotree'
59 'tpope/vim-rhubarb'
59 'mhinz/vim-startify'
58 'rust-lang/rust.vim'
57 'tpope/vim-rails'
57 'leafgarland/typescript-vim'
56 'morhetz/gruvbox'
56 'Yggdroot/indentLine'
55 'tpope/vim-abolish'
55 'ap/vim-css-color'
54 'vim-ruby/vim-ruby'
54 'bling/vim-airline'
53 'kana/vim-textobj-user'
53 'hail2u/vim-css3-syntax'
52 'tpope/vim-sensible'
52 'tpope/vim-dispatch'
52 'tomtom/tcomment_vim'
51 'othree/html5.vim'
50 'wellle/targets.vim'
50 'ryanoasis/vim-devicons'
46 'ntpeters/vim-better-whitespace'
46 'cespare/vim-toml'
46 'Shougo/vimproc.vim'
45 'tpope/vim-markdown'
44 'posva/vim-vue'
44 'mileszs/ack.vim'
43 'tpope/vim-sleuth'
43 'nathanaelkane/vim-indent-guides'
43 'VundleVim/Vundle.vim'
42 'kien/ctrlp.vim'
42 'AndrewRadev/splitjoin.vim'
41 'junegunn/limelight.vim'
39 'mhinz/vim-signify'
39 'Xuyuanp/nerdtree-git-plugin'
37 'xolox/vim-misc'
37 'tpope/vim-vinegar'
36 'ekalinin/Dockerfile.vim'
36 'chriskempson/base16-vim'
35 'kchmck/vim-coffee-script'
35 'janko-m/vim-test'
34 'roxma/nvim-yarp'
34 'lervag/vimtex'
34 'davidhalter/jedi-vim'
33 'tpope/vim-git'
33 'autozimu/LanguageClient-neovim'
30 'vim-syntastic/syntastic'
30 'tpope/vim-speeddating'
30 'tpope/vim-haml'
30 'tmux-plugins/vim-tmux'
30 'justinmk/vim-sneak'
29 'rking/ag.vim'
29 'moll/vim-node'
28 'tpope/vim-projectionist'
28 'ternjs/tern_for_vim'
28 'mattn/webapi-vim'
28 'haya14busa/incsearch.vim'
28 'cakebaker/scss-syntax.vim'
27 'michaeljsmith/vim-indent-object'
27 'mattn/gist-vim'


まとめ

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

試したプラグインは少しづつ追記していこうかと思います。