Lazyvimのキーマップカスタマイズ
Lazyvimではある程度デフォルトでキーマップが設定されています。
デフォルトで使用しているキーでは足りない場合キーを追加することができます。
自分の使用しているmacではcontrol+←↓→↑が使えません。
Lazyvimのデフォルトではウィンドウズのリサイズが割当られています。
マウスを使ってウィンドウの境界を引っ張れば解決しそうですが、使用できないキーがあるのは不便です。
そこで今回は何も割り当てられていない近くにあったaltキーにお願いします。
PC何使っているの?
❯ uname -a
Darwin appurunoMac-mini.local 23.6.0 Darwin Kernel Version 23.6.0: Thu Sep 12 23:34:49 PDT 2024; root:xnu-10063.141.1.701.1~1/RELEASE_ARM64_T8103 arm64
appurunoMac-mini
os 23.6.0 Sonoma
RELEASE_ARM64_T8103
m1 mac miniですね。
appurunoMacという書き方、突然はなしかけられて翻訳ミスしたみたいで可愛いですね。
しばらく経ったらAppleMac-miniに変えられていました。
以降記事の中で
nvim/
と記載する場合以下のフォルダー以下を指します。
windows:C:\Users\user\AppData\Local\nvim\
linux:/home/user/.config/nvim
設定内容
/nvim/lua/keymap.lua
local map = vim.keymap.set
local uname = vim.uv.os_uname()
print(uname.sysname)
-- macos用の設定
if uname.sysname == "Darwin" then
-- Resize window using <ctrl> arrow keys
map("n", "<M-Up>", "<cmd>resize +2<cr>", { desc = "Increase Window Height" })
map("n", "<M-Down>", "<cmd>resize -2<cr>", { desc = "Decrease Window Height" })
map("n", "<M-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease Window Width" })
map("n", "<M-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase Window Width" })
end
自分の環境では、windows、ubuntu等あるのでもしかしたらlua/setup/mac.lua
,lua/setup/wsl.lua
等のファイルを作成して色々と初期化設定をするかもしれませんが一旦keymap.lua
に作成します。
Lazyvimではキーをセットする際safe_keymap_setが用意されています。safe_keymap_setはvim.keymap.setのwrapperした関数です。
safe_keymap_setをユーザが使うことは非推奨のようです。vim.keymap.setを使用します。
vim.uv.os_uname()
でkernelの名前を確認してdarwin
だったらmacの処理を行います。
:h nvim_set_keymap
と調べてみます。
nvim_set_keymap({mode}, {lhs}, {rhs}, {opts})
normal modeのときにだけ動いてほしいので"n"とモードに書いておきます。 insert modeやvisual modeの時は不要
:h <M-
と確認するとキーマップが分かります。
alt-key or meta-key
と自分の環境で書かれています。少しhelpの上に移動してUp,Down,Left,Right
があります。
続けてコマンドと、説明を書いておきます。
まとめ
自分の環境に合わせてkeymapを変更してみました。
自分のubuntu環境やwsl環境もまだ少し使いづらいキーがあるので修正したいと思います。
ご自身の環境に合わせて使ってみてください。
Discussion
以下のコメントにあるようにユーザーが
LazyVim.safe_keymap_set
を使うのは非推奨だと思います本当だvim.keymap.set使うようにしときますね。