nvimでオススメのプラグイン

nvimでオススメのプラグイン

最近vimからneovimに乗り換え気味なのですが、その原因となっているプラグインを紹介します。

基本的にnvimでしか出来ないものは無いのですが、自分で作らなくても仕組みを用意してくれているものがたくさんあるので今回はそのあたりを紹介したいと思います。

特に有名なtelescopeやtreesitter等の全員が使ってそうなものは紹介しません。(主観)

また、色系のものは除外しています。

1. mbbill/undotree

github.com

vimにはundoやredo機能がありますが、それを管理しやすくするツールです。

nvimでファイルを色々編集して終了したあとでも再度開けばundo可能です。

また、可視化も優秀で操作も直感的なのでオススメです。(キャプチャが微妙)

undotree

特に特別な設定はしていませんがToggleを設定しておくと使いやすいです

vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)

2. NeogitOrg/neogit

github.com

git管理が超かんたんになる神ツールです。

nvimから抜けたりターミナルを開いて操作しなくてもぱぱっと確認しながらpushまで出来てしまいます。

ついでにDiffを見たりLogを見たりもできてとても凄いです。

neogit

3. sindrets/diffview.nvim

github.com

こちらもgit系のツールです。

変更点をツリーの一覧でかんたんに確認できて素晴らしい。

一覧で見る機能はtelescopeのgit_statusでも実現できますが、編集できるのがいいです。

diffview

4. akinsho/toggleterm.nvim

github.com

今回紹介するプラグインの中でも群を抜いて一番おすすめしたいものです。

これはもはやnvimという枠を超えたツールだと言えます。(過言)

このツールはtui系ツールと連携させると化学反応が起きます。

例えばdockerを扱えるtuiを例に見てみます。

このようにtuiをnvimのプラグインかのように起動できてしまいます。神。

ただし注意点としてnvimを通す分動作がモッサリします。便利なので目を瞑っています。

toggleterm x docui

今回の例とさせていただいたtuiです。すごい。(あとbrewのほう使えるようにしてほしいです)

github.com

設定例です

local Terminal = require("toggleterm.terminal").Terminal
local docui = Terminal:new({
    cmd = "docui",
    direction = "float",
    hidden = true
})

function _docui_toggle()
    docui:toggle()
end
vim.api.nvim_set_keymap("n", "<leader>do", "<cmd>lua _docui_toggle()<CR>", { noremap = true, silent = true })

おわりに

nvimへの乗り換えが現実味を帯びてきました。