以前に「オレ的vimプラグイン10選」という記事を書いたのですが、この記事では完全に主観で紹介するvimのプラグインを決めていました。
「世の中のエンジニアのalias設定」を書く際に利用したスクリプトを用いて、客観的なデータからおすすめのプラグインを紹介するのも面白そうだなと思い、調査してみました。
ランキングとプラグインの一言説明を紹介していきます。
関連記事
対象
- GitHub上のdotfilesトピックがついたリポジトリ
- スター数順に上位1000リポジトリ
- 対象ファイルは
*vimrc
とinit.vim
.vimrc
やnvimrc
、hoge.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
でした!
下の画像は:Gblame
でgit blame
の内容を表示している例です。
他にも:Gstatus
でgit status
の結果を表示し、そこからファイルを選択して開く、といった機能もあります。
2位 tpope/vim-surround
263票
括弧やクオート、XMLタグ等を表すテキストオブジェクトを追加することで、「シングルクオートをダブルクオートに変更」や「[Hello]
から括弧を削除」等の操作ができるようになります。
例
cs"' : ダブルクオートをシングルクオートに置換
ds[ : []を削除
3位 airblade/vim-gitgutter
214票
Gitの追加/削除/変更された行を行番号の左に表示してくれます。
4位 scrooloose/nerdtree
211票
ファイルツリーを表示することができます。
ツリー上のファイルに対して表示、分割表示、プレビュー等が行えます。
また、gitの追加/更新などの情報も表示されます。
下記画像では、ryanoasis/vim-deviconsとryanoasis/nerd-fontsも導入しているので、ファイルタイプごとにアイコンが表示されています。
5位 w0rp/ale
168票
非同期でLintツールを実行してくれます。
ちょっと昔はsyntastic
というツールがメジャーでしたが、こちらは同期処理であったため、lintが走っている間はvimの操作が行えませんでした。
下のgifはeslintの例です。
6位 tpope/vim-repeat
157票.
によるコマンド繰り返し機能をより強力にしてくれるプラグインです。
例えば、2位のvim-surroundが.
による繰り返しで利用できるようになります。
7位 junegunn/fzf.vim
156票
インクリメンタルサーチツールfzf
を利用した様々な検索を提供するプラグインです。
:GFIles
でgit ls-files
の結果に対し、インクリメンタルサーチを実施している例です。
8位 tpope/vim-commentary
155票
複数行を一気にコメントアウトできるプラグインです。
範囲コメントの無い言語で重宝します。
9位 vim-airline/vim-airline
146票
ステータスバーをいい感じにカスタマイズできるプラグインです。
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で生成されたタグをアウトライン風にウィンドウに表示します。
15位 Shougo/deoplete.nvim
114票
Neovim 0.3以降 or Vim8で動作する高速な補完プラグインです。
16位 sheerun/vim-polyglot
110票
様々な言語のシンタックスやインデントを提供するプラグインです。
17位 mattn/emmet-vim
99票
選択した範囲に対してイイ感じにhtmlタグを設定できるプラグインです。
18位 junegunn/goyo.vim
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'
まとめ
名前はみたことあったけど、意外と人気だったプラグインとかが見つかり、いろいろと試してみたくなってきました。
試したプラグインは少しづつ追記していこうかと思います。