🐡

使っているvimプラグインの棚卸し(2023冬)

2023/12/11に公開

この記事はVim Advent Calendar 2023 シリーズ2の11日目の記事です。


私のdotfilesの12/10時点でインストールされているプラグインについて棚卸しをしようと思います。

使っているのはnvimでHEADを手元でビルドしています。

執筆時点のrevisionは1054525です。

プラグイン一覧

取得は以下。

:echomsg dein#get()->values()->map({->v:val.repo})

プラグイン総数はdein#get()->values()->map({->v:val.repo})->len() = 125でした。

そのうち2つはプラグインの設定を参考にするため、cloneしているリポジトリだったので正味123個が対象です。

(参考にさせてもらっています。ありがとうございます。)

棚卸し

それぞれのプラグインについて、簡単な説明と使い道、所感を書きます。

  • https://github.com/vim-denops/denops.vim
    • denoでvimのプラグインを書くためのエコシステム
    • 外部依存なしでいい感じの環境を作るのは難しそうだったのでdenopsに依存してそれ以外の依存を減らすような方針でvimの運用をしている
    • 自分でプラグインを書くときも型がついてとてもべんり
      • 生体のメモリが少ないのかVim scriptだとなんの型が入っているのかがわからなくなることが多いので辛さがある
  • https://github.com/tani/vim-artemis
    • vimとnvimのapi差分を吸収するluaのプラグイン
    • Vim scriptのddu#start()をluaでddu.start()と書くことができてべんり
  • https://github.com/Shougo/ddc.vim
    • 闇の自動補完プラグイン
    • 自分でsourcefilterなどを書いてカスタマイズできることが強み
      • 逆に、zero configでは動かないので設定を書くのが楽しくないと扱うのはむずかしい
  • https://github.com/Shougo/ddc-source-nvim-lsp
    • ddcでnvim-lspからのデータをsourceとして扱うためのプラグイン
    • 現代のcodingにlspは必須
  • https://github.com/LumaKernel/ddc-file
    • ddcでファイルのパスをsourceとして扱うためのプラグイン
    • markdownや手動補完(<C-x><C-f>)で使っている
  • https://github.com/Shougo/ddc-filter-converter_truncate_abbr
    • ddcで長い候補を切り詰めるfilter
    • file sourceなんかは長くなりがちなのでべんり
  • https://github.com/Shougo/ddc-ui-pum
    • ddcで候補をfuzzy finderっぽく扱うためのui
    • 絞込まで使ってるけど手元のpreviewの設定がちゃんとできてないのでなんとかしないといけない
  • https://github.com/shun/ddc-vim-lsp
    • ddcでvim-lspからの情報をsourceとして扱うためのプラグイン
    • nvim-lspを使ってるので使っていない
  • https://github.com/Shougo/ddc-source-line
    • ddcでカレントのファイルの行をsourceとして扱うためのプラグイン
    • <C-x><C-l>で使っている
  • https://github.com/Shougo/ddc-rg
    • ripgrepの結果をddcのsourceとして扱うためのプラグイン
    • lspが効かないリポジトリだとだいじ
  • https://github.com/matsui54/ddc-buffer
    • bufferの内容をddcのsourceとして扱うためのプラグイン
    • バッファ内補完はべんり
  • https://github.com/tani/ddc-fuzzy
    • ddcであいまい検索でのmatch、sortをするためのプラグイン
    • 部分文字列だと痒いところに届かなかったりするのでべんり
  • https://github.com/Shougo/ddc-around
    • ddcで周辺文字列からの候補をsourceとして扱うためのプラグイン
    • 変数名とかは周辺文字列で取ってくることが多い
  • https://github.com/uga-rosa/ddc-previewer-floating
    • ddcで選択状態になっている候補のpreviewをするためのプラグイン
    • 関数のシグネチャが出せたりしてべんり
  • https://github.com/matsui54/denops-popup-preview.vim
    • ddcで選択状態になっている候補のpreviewをするプラグイン
    • ddc-previewer-floatingで置き換えられるはず
      • 念のため残している状態
  • https://github.com/Shougo/ddc-converter_remove_overlap
    • ddcの複数sourceで重複している候補をまとめるプラグイン
    • aroundとかrgとかbufferのsourceが同じ候補を取ってくるので必要
  • https://github.com/uga-rosa/ddc-source-vsnip
    • ddcでvsnipのスニペットの候補をsourceとして扱うためのプラグイン
    • スニペットの候補を出さないようにしているので現状使っていない
  • https://github.com/delphinus/ddc-tmux
    • ddcでtmuxのペインから文字列を取得してsourceとして扱うためのプラグイン
    • ペイン1でvimを動かしてペイン2で別ファイルをcatしている、みたいなときに補完ができる
    • weztermに乗り換えたのでtmuxが手元で動いていないので使っていない
  • https://github.com/Shougo/neco-vim
    • ddcでVim scriptの関数などの候補を出すために入れているプラグイン
    • vim-scriptのlsがとてもむずかしいので必要らしい
  • https://github.com/Shougo/pum.vim
    • ddcでpopup menuを扱うためのプラグイン
    • 本来はddcに関係なくpopup menuを置き換えるプラグインだけど他は使っていないのでddc専用状態
  • https://github.com/Shougo/ddu.vim
    • 闇のプラグインその2
    • 何らかの手段をもって候補を集めて何らかの方法で選んで何らかのactionをするという難易度の高いプラグイン
      • fzfやtelescopeとかよりも抽象度が1こ上にあるようなイメージを持っている
  • https://github.com/shun/ddu-source-rg
    • dduのrgでマッチしたファイル名を取得してsourceとして扱うためのプラグイン
    • lspが聞いていないプロジェクトで擬似的に定義ジャンプなどをするときに使っている
  • https://github.com/Omochice/ddu-source-anyjump
    • dduで https://github.com/pechorin/any-jump.vim の結果をsourceとして扱うためのプラグイン
    • 自作
      • lspに依存しないで定義ジャンプ、使用箇所へのジャンプをするために作った
      • やっていることは1つ上のrgとほぼ同じ
      • cwordとかを取ってクエリ文字列を作ってrgしているだけ
  • https://github.com/uga-rosa/ddu-source-lsp
    • dduでlspのaction(formatとかimport)とかを扱うためのプラグイン
    • lsp、色々できるのでもっとちゃんと扱えれば便利そう
  • https://github.com/kuuote/ddu-source-mr
    • dduで最近書き込んだファイルなどをsourceとして扱うためのプラグイン
    • ファイルを見るためだけに開いたやつは除外したいときがそこそこあるので便利
  • https://github.com/liquidz/ddu-source-custom-list
    • 独自の文字配列をdduのsourceとして扱うためのプラグイン
    • 実質sonictemplateをdduで扱うためのプラグインとして扱っている
      • これ、ちゃんとddu-source-sonictemplateとして切り出せば不要になりそう
  • https://github.com/Shougo/ddu-kind-file
    • dduでファイルを扱うときにopenなどのactionを定義してくれているプラグイン
    • fuzzy finderっぽいことをしようとすると必須
  • https://github.com/Shougo/ddu-filter-matcher_substring
    • dduでmatchをするときに部分文字列で検索をするためのプラグイン
    • 入れてはいるものの有効にはなってい
  • https://github.com/Shougo/ddu-ui-ff
    • dduの表示をffっぽい感じにするプラグイン
    • 手元の設定がfloating previewの設定に追従できていないのでちゃんとpreviewできていないので修正の必要がある
  • https://github.com/Shougo/ddu-source-file_rec
    • dduで特定ディレクトリの子以下のファイルパスを再帰的に取得してsourceとして扱うためのプラグイン
    • file_externalを使っているので現状は使う設定になっていない
  • https://github.com/matsui54/ddu-source-file_external
    • dduで外部コマンドを使ってファイル一覧を取得してsourceとして扱うためのプラグイン
    • .gitとかnode_modulesを弾いて取得(fd)ができるのでべんり
  • https://github.com/Shougo/ddu-filter-converter_display_word
    • ddcでマッチ文字列と表示文字列を変換するためのプラグイン
    • source-rgで取得したものにapplyしていい感じに表示するために使っている
  • https://github.com/shun/ddu-source-buffer
    • dduでバッファリストをsourceとして扱うためのプラグイン
    • バッファの切り替えはこれを使っている
      • これを使う前提でバッファ名はほぼ覚えないでvimを使っている
  • https://github.com/Omochice/ddu-source-redmine
    • dduでredmineのチケット、プロジェクトをsourceとして扱うためのプラグイン
    • 自作
      • まだチケットの編集しか作っていない
      • experimental
  • https://github.com/Shougo/ddu-source-action
    • dduでsourceのactionをsourceとして扱うためのプラグイン
    • 例えばfileのkindのsourceにはopenやrmが生えているが、これをsourceとして扱って選択できる
      • actionすべてをマップする必要がないのでべんり
  • https://github.com/yuki-yano/ddu-filter-fzf
    • dduでfzfを使ってマッチをするためのプラグイン
    • cliだとfzfを使っているのでアルゴリズムが一緒だとなにかと楽
  • https://github.com/mattn/vim-sonictemplate
    • vimで事前定義したテンプレートを呼び出してバッファに書き込むためのプラグイン
    • ciテンプレートやテストテンプレートなどを定義して呼び出すのに使っている
  • https://github.com/hrsh7th/vim-vsnip
    • vimでvscode形式のスニペットを扱うためのプラグイン
    • denippet https://zenn.dev/uga_rosa/articles/494805861d774a が出たので乗り換えを検討中
      • jsonで定義するのはやはりつらい部分がある
        • vscodeがjsonなのでコピペで移行できるのでべんりだった
  • https://github.com/mattn/emmet-vim
    • vimでemmetの展開をするためのプラグイン
    • emmetでどれだけ時間を節約できているかちゃんとわかっていないがクエリセレクタと同じような構文でhtmlが書けるのでべんり
  • https://github.com/Omochice/toy-postfix.vim
    • postfixをするためのプラグイン
    • 自作
      • sonictemplateでpostfixはできるが<C-j>にスニペットの展開とemmetの展開とpostfixの展開をいい感じに押し込むためにpostfix#is_expandable()みたいな関数が欲しかったので作った
      • いまいちちゃんと動いていないので直さないといけない
  • https://github.com/prabirshrestha/vim-lsp
    • vimでlanguage serverと通信をするためのプラグイン
    • nvimだとビルトインのクライアントがある
    • 緊急用に設定を残している状態
  • https://github.com/mattn/vim-lsp-settings
    • vim-lspで扱うlanguage serverのインストール管理をするプラグイン
    • vim-lspと同様、緊急用に設定を残している状態
  • https://github.com/neovim/nvim-lspconfig
    • nvim-lspで扱うlanguage serverの設定集
    • 一部設定をoverrideして使っている
  • https://github.com/williamboman/mason.nvim
    • nvim-lspで扱うlanguage serverのインストール管理をするためのプラグイン
    • ローカルにインストールしているdenoとmasonのdenoでバージョンが違ってmason側が優先して使われてしまうことによる問題を踏んだのでできれば剥がしたい
      • インストール管理を任せられるのは便利だけど自分でインストールしたものが交じると面倒になる印象
  • https://github.com/williamboman/mason-lspconfig.nvim
    • masonとlspconfigのbridgeをするプラグイン
    • ちゃんと理解していない
    • lspconfigの設定をoverrideしてmasonで入れたlanguage serverに向ける、という認識
  • https://github.com/liuchengxu/vista.vim
    • lspからの情報を表示するプラグイン
    • ファイル内にあるシンボルの一覧などを表示できるのでコードの外観をみるのにべんり
  • https://github.com/nvim-treesitter/nvim-treesitter
    • nvimでtreesitterを使って構文木をこねるためのプラグイン
    • 最近helpファイルのハイライトが壊れる事件があったのでどうしようかという気持ち
      • ハイライト処理以外にも使っているので全部消すのはつらい
  • https://github.com/nvim-treesitter/playground
    • nvimでtreesitterの構文木がどんな状態かをみるためのプラグイン
    • 構文木を見て遊ぶために使っている
  • https://github.com/Omochice/nvim-tree-docs
    • treesitterの構文木から関数などのドキュメントを生成するためのプラグイン
    • 壊れていたからPRしたら全然マージされないので手元のforkを使っている
    • fennelで書かれていて個人的には読解がたいへん
      • ドキュメント生成のテンプレートとかをいじりたいがコードを読み解くのに時間がかかるのでなんとかしたい
  • https://github.com/nvim-treesitter/nvim-treesitter-textobjects
    • treesitterで解析した構文木をtextobjとして扱うためのプラグイン
    • 例えばiFで関数内をtextobjとして扱う、みたいな設定をしている
  • https://github.com/nvim-treesitter/nvim-treesitter-context
    • treesitterの構文木から、カーソル位置のコンテキストを表示するプラグイン
    • 表示形式がいまいち好みではないので変更したい
      • 複数行で表示してくるがfunctionA > fnctionBみたいな表示をさせたい
        • できればlspに依存しないで表示させたいのでtreesitterがいいと思っている
  • https://github.com/mattn/vim-treesitter
    • vimでtreesitterを使ったハイライトをするためのプラグイン
    • あくまでpocの認識
      • textobjとか作れるのかな?
  • https://github.com/Omochice/tataku.vim
    • 何かしらの取得した文字列を何かしらの処理をして何かしらに書き出すためのプラグイン
    • 自作
      • dduっぽいなにかになってしまっているがイメージとしてはシェルのsome-collector | some-processor | some-emitter
      • 実質翻訳専用の状態になっている
      • ちゃんと書けばopenAIのAPIをこねこねしてなにかできるのではと思っていたりする
      • 各子プラグインにちゃんとドキュメントをかけていない
  • https://github.com/Omochice/tataku-processor-google_translate
    • tatakuでgoogle翻訳を扱うためのプラグイン
    • 自作
  • https://github.com/Omochice/tataku-processor-split_by_displaywidth
    • tatakuで表示文字列長を基準に分割するためのプラグイン
    • 自作
      • floating windowで折り返しの表現をするために作った
  • https://github.com/Omochice/tataku-collector-current_line
    • tatakuで現在行を収集するためのプラグイン
    • 自作
  • https://github.com/Omochice/tataku-emitter-nvim_floatwin
    • tatakuでnvimのfloating windowに出力するためのプラグイン
    • 自作
  • https://github.com/Omochice/tataku-processor-intl_segmenter
    • tatakuで文字列を文脈にあわせた分割をするためのプラグイン
    • 自作
      • 翻訳結果をいい感じに分割して出力したかったので作った
  • https://github.com/lambdalisue/fern.vim
    • ファイラー
    • 依存がないのでべんり
    • ツリーがあってファイルが消せるのがほしい機能だったので若干持て余し気味
      • 複数ファイルのりネームはmmvを使ってるが置き換えれたりするんだろうか?
  • https://github.com/lambdalisue/nerdfont.vim
    • nerdfontをいい感じに扱うためのプラグイン
    • 視覚的にわかりやすくなるのでは?と思っている
  • https://github.com/lambdalisue/fern-renderer-nerdfont.vim
    • fernでnerdfontをファイルのprefixにつけるためのプラグイン
    • 視覚的にわかりやすくなるのでは?と思っている
  • https://github.com/lambdalisue/fern-hijack.vim
    • fernでデフォルトのファイラを乗っ取るためのプラグイン
    • そもそもnvimのビルドをしたタイミングでnetrwPlugin.vimは消しているので乗っ取らないと:e .が動かない
  • https://github.com/kana/vim-operator-user
    • vimのoperatorを拡張するためのプラグイン
  • https://github.com/yuki-yano/vim-operator-replace
    • "レジスタにある文字列で置き換える"オペレータを提供するプラグイン
    • 普通にputするとput先の文字列がレジスタと入れ替わってしまうので特定の文字列を何回もputする場合には便利
  • https://github.com/kana/vim-textobj-user
    • vimのtextobjを拡張するためのプラグイン
    • 個人的にoperatorとtextobjはvimがvimである根幹の1つだと思っている
  • https://github.com/Omochice/vim-textobj-bettertag
    • vimのitのtextobjを複数行のときにいい感じにするプラグイン
    • 自作
      <div>
          foo
      </div>
      
      • みたいなhtmlがあったときにitfooだけを取得したかった(前の行の\nはいらない)ので作った
  • https://github.com/kana/vim-textobj-line
    • 現在の行をtextobjとして扱うためのプラグイン
    • il, alにマッピングしていて、tatakuの翻訳と合わせてtrilみたいなことはしょっちゅうやっている
  • https://github.com/thinca/vim-textobj-between
    • 特定の文字に挟まれている部分をtextobjとして扱うプラグイン
    • <space>などに囲まれている空間を扱いたいタイミングが以外とある
  • https://github.com/Omochice/vim-textobj-codeblock
    • markdownのcodeblockをtextobjとして扱うためのプラグイン
    • 自作
      • parteditと組み合わせてコードブロックを別バッファで編集したかった
  • https://github.com/kana/vim-textobj-fold
    • 折りたたみ部分をtextobjとして扱うためのプラグイン
    • treesitter-textobjectsと合わせて関数を折りたたんでdして関数の並びを眺めて移動とかをやったりする
  • https://github.com/kana/vim-textobj-indent
    • インデントされている部分をtextobjとして扱うためのプラグイン
    • インデント単位で折りたたみをしたいことがままあるのでべんり
  • https://github.com/thinca/vim-partedit
    • 選択部分を別バッファで編集するためのプラグイン
    • 別バッファになるのでmarkdownのcodeblockみたいなものを切り出してlanguage serverをかけて編集できる
      • context_filetypeでも同じことはできるがバッファ切ったほうが安全なイメージがある
  • https://github.com/Omochice/vim-operator-partedit
    • vimのoperatorとしてparteditを使うためのプラグイン
    • 自作
      • filetypeを設定した状態でmarkdownのコードブロックを開きたかったので作った
  • https://github.com/Shougo/context_filetype.vim
    • カーソル位置のコンテキストでファイルタイプをいい感じに切り替えるプラグイン
    • language serverの補完などを切り替えられる
    • filetypeの特定、とても大変そうという気持ちがある
  • https://github.com/thinca/vim-quickrun
    • カレントバッファを実行するためのプラグイン
    • makeとかを仕込んでlatexファイルでquickrunしてpdfにビルドする、みたいな使い方もできる
    • ディレクトリ構成がガッチリ決まっているならテストファイルならそのファイルを実行、普通のソースファイルなら対応するテストファイルを実行するみたいなこともできるはず
  • https://github.com/lambdalisue/vim-quickrun-neovim-job
    • quickrunの実行をneovimのjobにするプラグイン
    • 非同期で動作させて本体を軽くしたい
  • https://github.com/pappasam/vim-filetype-formatter
    • ファイルタイプで実行するformatterを切り替えるためのプラグイン
    • 複数のlanguage serverを動かしたときにうまくformatterをかけられなかったので入れたもの
      • この設定がちゃんとできれば不要なのではと思っていたりする
  • https://github.com/ntpeters/vim-better-whitespace
    • 行末の不要な空白文字などを除去するプラグイン
    • formatterがかかっていなかったりすると空白文字がいっぱい入ってたりしてとても気が滅入るので入れている
  • https://github.com/uga-rosa/ccc.nvim
    • vimでカラーコードをいい感じに扱うためのプラグイン
    • カラーコードっぽい文字列があったりするとハイライトをつけてくれる
    • 行末の空白文字にハイライトを当てるために使っている
  • https://github.com/ap/vim-css-color
    • vimでcssのカラーコードを当てるためのプラグイン
    • ccc.nvimはnvim用なのでvim用にバックアップとして記載
  • https://github.com/uga-rosa/contextment.vim
    • コメントアウトをするためのプラグイン
    • https://github.com/tyru/caw.vim などが有名どころではあるが、コメントアウトに求めるものがそこまで多くなかったのでminimalなものを使っている
  • https://github.com/cohama/lexima.vim
    • 構文の状態を見てinsert-modeの入力を書き換えるプラグイン
    • "を入力したときに""へ変換してくれたりする
    • 空気のような存在感
      • 素のvimを使ったときに"しか入力されなくてとてもストレスが貯まるので必須級
        • あまりに辛かったのでミニマルなものをvimrc.coreに入れている
  • https://github.com/Shougo/dein.vim
  • https://github.com/gamoutatsumi/dps-ghosttext.vim
    • ghosttextを使ってブラウザで開いているページのtextareaなどをvimで編集するためのプラグイン
    • textareaでvimバインドが使えないのでとてもストレスが貯まるため導入
    • ドメインとfiletypeを紐つける処理が若干ユースケースと合わないので直したい
  • https://github.com/tyru/capture.vim
    • echoなどのmessageで出てこない出力をキャプチャするためのプラグイン
    • マッピングやautocmdの設定を出力して中身を眺めるのに使う
  • https://github.com/markonm/traces.vim
    • substituteをするときにプレビューを表示するプラグイン
    • nvimだとオプションのinccommandで表示できるがいまいち見た目がしっくり来なかったのでこっちを使っている
  • https://github.com/sainnhe/sonokai
    • カラースキーム
    • 個人的にコントラストが強めなカラースキームが好みなのでメインになっている
  • https://github.com/catppuccin/vim
    • カラースキーム
    • 気分を変えるときに設定したりする
    • コントラストはsonokaiほど強くない
  • https://github.com/vim-jp/vital.vim
    • vimの便利関数が入っているライブラリ
    • 手元でサンプルプラグインを作るとき用に入れている
  • https://github.com/easymotion/vim-easymotion
    • vimでカーソルの移動をシュッとやるためのプラグイン
    • 同じ行のカーソル左右、上下行の移動だけ有効化している
      • 同じことができるプラグインはほかにもあるはず
    • マークを出しているときにバッファを書き換えている都合上、lspが怒ってくるので別のものに乗り換えたい
  • https://github.com/itchyny/lightline.vim
    • ステータスラインをカスタマイズするためのプラグイン
    • そこまでステータスラインに求めるものが多くなかったのでほぼデフォルトで使っている
    • funcrefをcomponentへ渡せるようにしたくて中身を呼んだが時間が足りなくて解読できなかった
  • https://github.com/itchyny/vim-gitbranch
    • gitのbranch情報を取得する関数を提供するプラグイン
    • lightlineにbranch名を出すために使っている
  • https://github.com/lambdalisue/gin.vim
    • vimからgitをいい感じに扱うためのプラグイン
    • addとかcommitとかはlazygitからやっているのでgin-action-patchをするために入れている状態
  • https://github.com/rhysd/git-messenger.vim
    • カーソル行のgit blameを見るプラグイン
    • virtual textなどで表示されると気が散るのでマッピングからblameを見るために使っている
  • https://github.com/lewis6991/gitsigns.nvim
    • バッファのsigncolumnにgitの情報(変更があるかどうかなど)を表示するプラグイン
    • addとかもできるらしいが使っていない
  • https://github.com/Omochice/yank-remote-url.vim
    • カーソル行のgithub/gitlabなどのwebでのurlをyankするためのプラグイン
    • 自作
      • githubに対応しているものは多いがself-hostedなgitlabに対応しているものがなかったので作成
  • https://github.com/machakann/vim-sandwich
    • ""で囲む、などの処理をいい感じに扱うためのプラグイン
    • saiwみたいなコマンドは多用している
      • むしろ、これを使わずに囲むの相当難しいのでは?と思っている
  • https://github.com/folke/noice.nvim
    • nvimのコマンドラインやpopup menuを置き換えるプラグイン
    • nvimの見た目を変える系プラグイン1
    • バッファの下だと目線を移動させて見る必要があるが、これを入れると視点の移動が少なくなるので便利
  • https://github.com/rcarriga/nvim-notify
    • nvimのechomsgを置き換えるプラグイン
    • nvimの見た目を変える系プラグイン2
    • noiceでコマンドラインを非表示にしているのでこれで置き換えないと最下部がちらついてしまう
  • https://github.com/MunifTanjim/nui.nvim
    • nvimでfloating windowをいい感じに作成するためのプラグイン
    • nvimの見た目を変える系プラグイン3
    • noiceの依存で入れているはず、あまり使っていないので外せるなら外してもよさそう
  • https://github.com/pechorin/any-jump.vim
    • lspに依存しない定義ジャンプを提供するプラグイン
    • lspの解析がない分、若干精度は落ちるがlspが動かないようなリポジトリでも動く
    • ddu-source-anyjumpに移行済み
      • ddu-source-anyjumpとの動作比較用に残している
  • https://github.com/simeji/winresizer
    • windowのリサイズを簡単に扱うためのプラグイン
    • タイリング型のwmを使っているとターミナルの横にブラウザが開かれたりしてwindowの分割サイズが乱れがちなので入れている
  • https://github.com/voldikss/vim-floaterm
    • foatingなterminal windowを開くためのプラグイン
    • lazygitをnvim上から開くために使っている
  • https://github.com/vim-jp/vimdoc-ja
    • vimのhelpに日本語ファイルを追加するプラグイン
    • 使っているのはnvimだが、Vim scriptの関数などはある程度同じAPIになっているのでjaで確認することが多い
  • https://github.com/haya14busa/vim-asterisk
    • *のコマンドを便利にするプラグイン
    • *をしたときにカーソル位置を固定するために使っている
  • https://github.com/thinca/vim-qfreplace
    • quickfixのリストを一括でリプレイスするプラグイン
    • いまいちちゃんと扱えていない
      • cgnしてしまうことが多い
  • https://github.com/vim-scripts/fish.vim
    • fishのシンタックスなどを追加するプラグイン
    • あまり便利関数を勝手に生やされるのも嬉しくないので軽めのものを使っている
  • https://github.com/lambdalisue/suda.vim
    • ファイルへの書き込み時に権限がなかったらsudoで書き直すためのプラグイン
    • visudoをしたくないので使っている
  • https://github.com/lambdalisue/mr.vim
    • 最近開いた/書き込んだファイルを記録するプラグイン
    • ddu-source-mrの依存として入れている
  • https://github.com/Omochice/dps-codic-vim
    • vimでcodicの名前提案APIを叩くプラグイン
    • 自作
      • 変数名をいい感じに考えるのが面倒だったので作成
      • codic側が最近更新されていないように見えるので若干不安
      • そのうちtatakuのmoduleにしたい
  • https://github.com/Omochice/dps-paiza-io-vim
    • vimでpaiza-ioのAPIを使って現在のファイルを実行するプラグイン
    • 自作
      • quickrunみたいなものを作ってみたかった
      • 最近触っていないので動くかどうか未知数
  • https://github.com/y0za/vim-reading-vimrc
    • vimrc読書会の読書対象のファイルをvimから見るプラグイン
    • vimrcはvimから見たいので使っている
    • 行番号付きのコメントなどを簡単に生成できるのでべんり
  • https://github.com/4513ECHO/denops-gitter.vim
    • vimrc読書会で使っているチャットルームのAPIをvimから叩くプラグイン
    • depricated
      • https://github.com/4513ECHO/parade.vim に移行する必要がある
      • 土曜23時の読書会にあまり最近参加ができていない
        • どうにもあの時間は眠くなってしまうので
  • https://github.com/previm/previm
    • markdownファイルをpreviewするためのプラグイン
    • APIの置き換え移行の追従作業ができていないので設定が古い状態になってしまっている
  • https://github.com/mattn/vim-maketable
    • markdownのファイルでcsvな文字列をtableに書き換えるプラグイン
    • markdownのtableは正直書きにくいのでこれを使って生成している
  • https://github.com/hrsh7th/vim-searchx
    • /の拡張をしてジャンプができるようにするプラグイン
    • これとeasymotionで大体の移動はできる
  • https://github.com/kana/vim-repeat
    • プラグインが提供するオペレータをdot-repeatableにするプラグイン
    • おそらくvim-operator-userの依存で入っている状態
    • パッと見、どの依存か分からなかったのでちゃんと確認する必要がある
  • https://github.com/machakann/vim-vimhelplint
    • vimのヘルプファイルのlintをするためのプラグイン
    • 最近は直接vimdocを書くことが少なくなったので(podiumをつかってpodから生成しているので)あまり使っていない
    • 1行の文字数などのlintをしてくれるのでべんり
  • https://github.com/heavenshell/vim-pydocstring
    • pythonの関数などのdocstringを生成するためのプラグイン
    • 最近pythonを書いていないのであまり使えていない
    • もしかしたらtree-docsで置き換えられる?
  • https://github.com/tyru/open-browser.vim
    • カーソルの下のurlを開くオペレータを提供するプラグイン
    • typescriptのlanguage serverに関数の説明を吐かせるとmdnのurlを吐いたりするのでそれを開くのに使う
  • https://github.com/tweekmonster/helpful.vim
    • 特定の機能がnvimのどのバージョンで入ったか表示するプラグイン
    • 手元で動かない機能のbisectなどに使ったりする
  • https://github.com/lambdalisue/seethrough.vim
    • vimの背景色を透明にするプラグイン
    • 自分で設定すると特定環境などでうまくいかなかったりするのでプラグインに委託している
  • https://github.com/mattn/vim-findroot
    • vim内でcdしたときにプロジェクトのrootを探すプラグイン
    • .gitをマーカーにして検索させることが多い
    • ファイラーなどでrootを開くのが楽になる
    • 自分が今どこの階層にあるファイルを開いているか考える必要がなくなるので便利

以上 123個のプラグインでした。

作って公開していただいている作者さん、ありがとうございます。

Discussion