はじめに
これは ITソルーション室 Advent Calendar 2024 の12/6の投稿になります! 他の方の記事も上記リンクから読めますのでよろしければ!
前書き
😁 …Neovim 気になりませんか?
🙍 使ってみたいけど、真っ黒い画面で使えるようになるまでにハードルが高そう…
😁…なるほど。私も初めはそう思っていました… そう、Nvchadに出会うまでは…
NvchadはNeovim用のPluginやキーバインド等々全部入りのテンプレートになります。 各種プラグインやキーバインドの設定がある程度設定されているため、セットアップも簡単にNeovimを利用できるようになります。
私が利用している環境は以下の動画のようになります!(Nvchadのテンプレートから少しカスタマイズがされています。)
Nvchadを使ってみる 💻
公式のDocsはこちら
実行環境
- Neovim v0.10.2
- macOS Sequoia v15.1.1
- terminal: kitty v0.37.0
- terminal font: Cica
Nvchadのセットアップ
git clone https://github.com/NvChad/starter ~/.config/nvim && nvim
初回起動の際に自動でNvchadのプラグインがLazy.vimによって自動でインストールされます。
テーマの切り替え
<leader> + th
でテーマスイッチャーからテーマを切り替えることができます。(<leader>
はデフォルトでスペースキーです)
気まぐれにテーマを手軽に切り替えられます🥰
Neovim内ターミナルの使用
<option> + i
でフローティングターミナルの起動
<option> + h
でNeovim下部にターミナルの起動
<leader> + v
で分割ターミナルの起動
ができるようになっています。
個人的にフローティングターミナルがお気に入りで、基本的なターミナルの操作はこのフローティングターミナルで行い、ローカルサーバーの起動などといった作業中に常に起動しておきたいスクリプトはNeovim下部に起動したターミナルで行うというような使い分けをしています❣️
LSP周り
NvchadにはLSP周りの設定もある程度設定されており、mason.nvimを使ってLanguage Server等をインストールすることによって、動画のようにLSPで対応しているような
- 補完
- 定義ジャンプ
- エラーに対する指摘
などかなりリッチな機能を簡単に利用することができます。
Nvim-tree
Nvchadはデフォルトでnvim-treeというNeovim用のファイルエクスプローラーが利用できるようになっています。
Ctrl + n
でnvim-treeのトグルができます。
キーバインドのチートシート
たくさんあるキーバインドがわからない…
Nvchadなら全てのキーバインドを覚える必要はありません。
<leader> + ch
のみ覚えておけばいつでも上記のようなキーバインドに関するチートシートを確認することができます。
なお、このチートシートは自身で設定したキーバインドについても自動で項目に追加してくれます😆
私流Nvchadカスタマイズ 📎
ここからは私が行っているNvchadのカスタマイズを紹介します。
スタートページのカスタマイズ
スタートアイコンやtelescope(Neovimのファジーファインダー)へのショートカット等を表示させています。
キーバインドのカスタマイズ
require "nvchad.mappings"
local map = vim.keymap.set
-- ### Insert Mode
map("i", "jj", "<ESC>")
map(
"i",
"<C-y>",
'copilot#Accept("<CR>")',
{ noremap = true, silent = true, expr = true, script = true, replace_keycodes = false }
)
-- ### Normal Mode
map("n", "<leader>h", "^", { desc = "move beginning of line" })
map("n", "<leader>l", "$", { desc = "move ending of line" })
map("n", "<leader>q", "<cmd>q!<CR>", { desc = "quit" })
map("n", "<C-f>", function()
require("conform").format { lsp_fallback = true }
end, { desc = "formatting" })
map("n", "<leader>t", '<cmd>LazyGit<CR>', { desc = "lazygit" })
-- ### Visual Mode
map("v", "v", "$h", { desc = "行末まで選択" })
-- ### Terminal Mode
map("t", "qq", vim.api.nvim_replace_termcodes("<C-\\><C-N>", true, true, true))
Nvchadのデフォルトのキーバインドでもある程度使用できますが、より利便性を高めるために、キーバインドを設定しています。 全てにキーバインドを設定するのではなく、変えたいところだけ変えられるのはNvchadのようなテンプレートを利用している特権ですね👍
copilot.vimの導入
Githubが提供するGithub CopilotをNeovim内で利用できるプラグインを使用しています。 思考のスピードで実装を提案してくれるので、効率爆上がりで重宝しています🥰
Markdown-Preview.nvimの導入
Neovim上で編集しているMarkdownファイルのプレビューをブラウザ上でリアルタイムにプレビューしてくれるプラグインになります。 実際にこの記事もNeovim × Markdown-Preview.nvimでプレビューをみながら執筆しています。
おわりに…
いかがでしたでしょうか? 実はNvchadのようなNeovimのConfigテンプレートは他にも
などが開発されています。
自分で0から設定を構築するのも楽しいですが、意外とハードルが高かいところもあるので… 素晴らしいテンプレートを活用しながら、Neovimの世界に飛び込んでみるのはいかがでしょうか…