🌔
LunarVimのterminal modeでctrl-hしたい
背景
つい最近、社内で開発環境の話をしました。同僚🎧にNeoVimを使っている方がいて、やはりカッコ良すぎたのでNeoVimを始めてみることにしました。
この手のものは一から設定しだすと沼るので、LunarVimを使って始めてみることにしました。
LunarVimにはNeoVimのIDEライクな設定がデフォルトでごっそり入っています。
いざ使い始めるとterminalのショートカットがうまく使えなくて困ったのでどう対処したかをここに残しておきます。
もう少し具体的に言うと、ctrl-h
でdeleteしたり、ctrl-l
クリアしたりがうまく動きませんでした。他のショートカットに割り当てられてました。
terminalでctrl-hやctrl-lのショートカットを使う
結論
以下の設定によりうまくいってなかった。
~/.local/share/lunarvim/lvim/lua/lvim/keymappings.lua
term_mode = {
-- Terminal window navigation
["<C-h>"] = "<C-\\><C-N><C-w>h",
["<C-j>"] = "<C-\\><C-N><C-w>j",
["<C-k>"] = "<C-\\><C-N><C-w>k",
["<C-l>"] = "<C-\\><C-N><C-w>l",
},
config.lua
に以下設定をすることで、ctrl-h
やctrl-l
が使えるようになりました。
config.lua
vim.keymap.del("t", "<C-h>")
vim.keymap.del("t", "<C-j>")
vim.keymap.del("t", "<C-k>")
vim.keymap.del("t", "<C-l>")
これはやったけど関係なかった
まず初期設定だと、ctrl-h/j/k/l
はwindowの移動に割り当てられています。ここが原因かと思い、公式を参考に以下の設定をしました。
config.lua
lvim.keys.normal_mode["<C-h>"] = false
lvim.keys.normal_mode["<C-j>"] = false
lvim.keys.normal_mode["<C-k>"] = false
lvim.keys.normal_mode["<C-l>"] = false
移動はしなくなったのですが、まだうまく動きませんでした。(ノーマルモードに変わるショートカットになった?)
追記
同僚🎧に教えてもらいました。
config.lua
lvim.keys.term_mode["<C-h>"] = false
lvim.keys.term_mode["<C-j>"] = false
lvim.keys.term_mode["<C-k>"] = false
lvim.keys.term_mode["<C-l>"] = false
lunarvimの場合、term_mode
でターミナルモードを指定して、false
にすればよかったです。
自分は下部にターミナルを出すことが多く縦方向のウィンドウ移動は残しておきたかったので、最終的に以下の設定にしました。
config.lua
lvim.keys.term_mode["<C-h>"] = false
-lvim.keys.term_mode["<C-j>"] = false
-lvim.keys.term_mode["<C-k>"] = false
lvim.keys.term_mode["<C-l>"] = false
感想
設定難しいけど、かっこいいから使いこなしていきたい。
🎧感謝
Discussion