Vim Settings - onigomex/dotfiles GitHub Wiki

Neovim Plugins

  • colorscheme
    • nordtheme/vim
  • filer
    • lambdalisue/fern.vim
    • lambdalisue/vim-fern-hijack
  • fzf
    • ibhagwan/fzf-lua
    • nvim-tree/nvim-web-devicons
  • session
    • rmagatti/auto-session
  • terminal
    • akinsho/toggleterm.nvim
  • ui
    • simeji/winresizer
    • smoka7/hop.nvim
    • kylechui/nvim-surround
    • windwp/nvim-autopairs
    • lewis6991/gitsigns.nvim
    • nvim-lualine/lualine.nvim
    • nvim-tree/nvim-web-devicons
    • folke/todo-comments.nvim
    • nvim-lua/plenary.nvim
    • echasnovski/mini.indentscope
    • b0o/incline.nvim
  • utils
    • echasnovski/mini.splitjoin
    • subnut/nvim-ghost.nvim
  • lsp
    • neovim/nvim-lspconfig
    • williamboman/mason.nvim
    • williamboman/mason-lspconfig.nvim
    • hrsh7th/cmp-nvim-lsp
    • nvimtools/none-ls.nvim
    • ray-x/lsp_signature.nvim
    • RRethy/vim-illuminate
    • hrsh7th/nvim-cmp
    • hrsh7th/cmp-path
    • hrsh7th/vim-vsnip
    • hrsh7th/cmp-vsnip
    • rafamadriz/friendly-snippets
    • windwp/nvim-autopairs
    • folke/trouble.nvim

nordtheme/vim

  • カラースキーマ

lambdalisue/fern.vim

  • ファイラー

lambdalisue/vim-fern-hijack

  • vim .e . コマンド時に fern を開いてくれる(netrw ではなく)。

ibhagwan/fzf-lua

  • Improved fzf.vim written in lua
  • これがあれば、telescope.nvim はいらん

nvim-tree/nvim-web-devicons

  • ステータスラインやファイルツリー上でロゴを表示するためのプラグイン

rmagatti/auto-session

  • セッションを保存して次に開いた時に復元する

simeji/winresizer

  • 画面リサイズを hjkl キーで行える。

neovim/nvim-lspconfig

  • 各 LSP の設定をいい感じにしてくれたり、使いやすくしてくれるプラグイン。builtin LSP 生だと全部自前で設定する必要があるため。
    • vim.lsp API 呼出のラッピング
    • utility command の提供 (e.g. LspInfo, LspStart, LspLog)
    • サーバーの種類ごとのデフォルト設定の提供(上書き可)

williamboman/mason.nvim

  • LS, debugger, formatter, linter 等のインストーラー、PATH も通してくれる(手動でインストールするのは大変なので)。

williamboman/mason-lspconfig.nvim

  • mason.nvim(インストール) と nvim-lspconfig(設定)の橋渡し役で、インストールした LS の設定を自動セットアップする。

nvimtools/none-ls.nvim

  • LSP の規格に合わない Linter, Formatter を LSP like に動かせるツール。様々な Linter/Formatter 用に予め設定が用意されている。
  • アーカイブされた null-ls.nvim の代替手段で、nvim コミュニティにより作られた。

nvim-lua/plenary.nvim

  • Neovim Lua の便利関数集(非同期処理を実装するための関数群など)
  • nvimtools/none-ls.nvim, folke/todo-comments.nvim が依存しているためインストールする必要がある。

hrsh7th/nvim-cmp

  • 補完エンジン本体。LSP だけだと補完は効かないのでこれを入れる。補完を動かすには別途各種補完ソースが必要になる。

hrsh7th/cmp-nvim-lsp

  • LSP が提案する補完候補をソースにする。lspconfig の capabilities をこれで上書きするとことで使えるようになる。

hrsh7th/cmp-path

  • path を補完ソースにする。

hrsh7th/vim-vsnip

  • スニペットエンジン本体。スニペットを動かすには別途スニペットソースが必要になる。

hrsh7th/cmp-vsnip

  • スニペットを nvim-cmp の補完ソースに設定することで補完が効くようになる(スニペットエンジン本体も別途必要)。

rafamadriz/friendly-snippets

  • 便利なスニペットコレクション。vim-vsnip とともに使用する。

ray-x/lsp_signature.nvim

  • 挿入モード時に関数引数のヘルプを入力に合わせながら表示する。

RRethy/vim-illuminate

  • 同じ変数をハイライトする。

akinsho/toggleterm.nvim

  • ターミナルを自分好みに表示させる。
  • tig をフロートウィンドウで表示させるために使用している。

smoka7/hop.nvim

  • easy-motion の nvim/lua 版。
  • vimium の f 相当のことがやりたかったので入れている。
  • 本家 hadronized/hop.nvim を引き継いだ fork 版。

kylechui/nvim-surround

  • 文字列を任意の char で囲みやすくする。

windwp/nvim-autopairs

  • 括弧などを入力すると自動で閉じ括弧まで入力してくれる。
  • lsp オートコンプリートの項目を選択し、enter 押下時に括弧を自動挿入させるためにも活用している(デフォルトでは自動挿入されないため)。

lewis6991/gitsigns.nvim

  • git status をエディタのサイドバーに表示してくれる(追加・変更・削除を色別で)。

nvim-lualine/lualine.nvim

  • ステータスラインをいじりやすくする。デフォルトで git branch, diagnostics 結果など表示してくれる。

nvim-tree/nvim-web-devicons

  • アイコン表示。nvim-lualine が依存している。

folke/todo-comments.nvim

  • TODO, HACK, BUG などをハイライトしてくれる。

echasnovski/mini.indentscope

  • インデントスコープ(括弧等の対応範囲)を表示してくれる。

b0o/incline.nvim

  • laststatus=3 を設定し、ステータスラインを1つにまとめた場合に、各画面にファイル名を表示してくれる。

echasnovski/mini.splitjoin

  • 括弧内の文字列を改行成形してくれる。逆もできる(1行にまとめる)。

folke/trouble.nvim

  • diagnostics 診断結果や、TODO などをまとめて表示することができる。主に後者を一括で確認するために使用している。

subnut/nvim-ghost.nvim

  • ブラウザの textarea と手元の vim を同期させ、vim で文字入力することができる。

LSP 補足

  • Neovim では、builtin LSP でプラグインなしでも LSP は使える。
  • しかし、LS のインストールや、それらの設定、クライアント側からの使い勝手の設定などを自前で整えるのは手間なのでプラグインを使用し楽をする。
  • LSP でやりたいこと: エラー検出、定義ジャンプ・情報表示、補完、変数名リネーム

Refs