How I Setup Neovim On My Mac To Make it AMAZING in 2024
このサイトで紹介されているNeovimの設定をもとに、コードの各部分をAIが詳しく解説。
そのまとめです。
keymaps.lua
vim.g.mapleader = " "
local keymap = vim.keymap -- for conciseness
keymap.set("i", "jk", "<ESC>", { desc = "Exit insert mode with jk" })
keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
-- increment/decrement numbers
keymap.set("n", "<leader>+", "<C-a>", { desc = "Increment number" }) -- increment
keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" }) -- decrement
-- window management
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" }) -- split window vertically
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" }) -- split window horizontally
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" }) -- make split windows equal width & height
keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" }) -- close current split window
keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" }) -- open new tab
keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" }) -- close current tab
keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" }) -- go to next tab
keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" }) -- go to previous tab
keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" }) -- move current buffer to new tabこのNeovimのLuaによるキーマップ設定は、ユーザーの操作を効率化するためのショートカットを定義しています。
以下、コードの各部分について詳しく解説します。
解説
🔧 1. vim.g.mapleader = " "
これはNeovimのリーダーキーを空白(スペース)に設定しています。
リーダーキーとは、ショートカットの起点となるキーで、他のキーと組み合わせてカスタム操作を呼び出すために使います。
🔑 2. local keymap = vim.keymap
これは vim.keymap を短く書くために keymap という変数に代入しています。
以下で keymap.set(...) を使ってキーマッピングを定義しています。
📝 3. keymap.set("i", "jk", "<ESC>", { desc = "Exit insert mode with jk" })
- モード:
"i"(インサートモード) - キー:
jk - アクション: エスケープキー(ノーマルモードへ)
- 説明:
jkと素早く打つことでインサートモードを抜ける(実際の<ESC>キーを押す代わり)
🔍 4. keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
- モード:
"n"(ノーマルモード) - キー:
<leader>nh→ スペース +nh - アクション: 検索結果のハイライトを消す
:nohlsearch
🔢 5. インクリメント/デクリメント
keymap.set("n", "<leader>+", "<C-a>", { desc = "Increment number" })
keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" })<leader>+: カーソル下の数値を1増やす<leader>-: カーソル下の数値を1減らす
🪟 6. ウィンドウ管理
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" })
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" })
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" })
keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" })<leader>sv: 垂直分割<leader>sh: 水平分割<leader>se: ウィンドウのサイズを揃える<leader>sx: 現在のスプリット(分割ウィンドウ)を閉じる
🗂️ 7. タブ管理
keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" })
keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" })
keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" })
keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" })
keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" })<leader>to: 新しいタブを開く<leader>tx: 現在のタブを閉じる<leader>tn: 次のタブへ移動<leader>tp: 前のタブへ移動<leader>tf: 現在のバッファ(ファイル)を新しいタブで開く
まとめ
この設定は、Neovimの使い勝手を以下のように向上させています:
jkで素早くノーマルモードへ- スペースキーを起点に直感的なショートカット
- ウィンドウ・タブ操作をすばやく実行
- 数値の編集も簡単に
コメント