以前に「オレ的vimプラグイン10選」という記事を書いたのですが、この記事では完全に主観で紹介するvimのプラグインを決めていました。
「世の中のエンジニアのalias設定」を書く際に利用したスクリプトを用いて、客観的なデータからおすすめのプラグインを紹介するのも面白そうだなと思い、調査してみました。
ランキングとプラグインの一言説明を紹介していきます。
更新履歴
- 2019/04/15 公開
- 2020/06/13 再集計しランキングを更新しました
- ランキングを最新版に更新
- 過去に20位圏内だったプラグインの詳細を残した
- 新規にtop100にランクインしたプラグインの説明を追加
関連記事
対象
- GitHub上のdotfilesトピックがついたリポジトリ
- スター数順に上位1000リポジトリ
- 対象ファイルは
*vimrc
とinit.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
でした!
下の画像は:Gblame
でgit blame
の内容を表示している例です。
他にも:Gstatus
でgit 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-deviconsとryanoasis/nerd-fontsも導入しているので、ファイルタイプごとにアイコンが表示されています。
5位 junegunn/fzf.vim
206票(前回:156票、7位)
インクリメンタルサーチツールfzf
を利用した様々な検索を提供するプラグインです。
:GFIles
でgit 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位)
イコールの位置で揃えたりが可能な整形プラグインです。
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位圏外からのランクイン
-
dense-analysis/ale
- 66位、46票
- Organization配下に移動されたため票がわかれてしまっているようです
-
tmux-plugins/vim-tmux-focus-events
- 84位、34票
- vimのterminalとtmuxをいい感じに動作するようにしてくれる
-
arcticicestudio/nord-vim
- 84位、34票
- north-bluishなカラースキーマ
-
junegunn/gv.vim
- 92位、32票
- git commit browser
-
othree/yajs.vim
- 94位、31票
- jelera/vim-javascript-syntaxからforkした新しいキーワードに対応したsyntax highlight
-
roxma/vim-hug-neovim-rpc
- 96位、30票
- vim8でneovim rpcを動かす実験的なプラグイン
-
junegunn/vim-peekaboo
- 96位、30票
- レジスタの一覧を表示し、選択することでペーストができるプラグイン
-
jparise/vim-graphql
- 96位、30票
- graphqlのファイル検出やsyntax highlight、インデントなどをサポートしてくれる
- machakann/vim-highlightedyank
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まとめ
名前はみたことあったけど、意外と人気だったプラグインとかが見つかり、いろいろと試してみたくなってきました。
試したプラグインは少しづつ追記していこうかと思います。