🐕

LazyVimのターミナルに枠をつける

2024/03/05に公開

LazyVimはいい感じである。いい感じではあるのだが、残念なことに、ターミナル周りはいい感じではない。いい感じにしたい。する。

いい感じじゃないとは

ターミナルのポップアップには枠がない。それどころか隙間もないので、デフォルトだと以下のように文字列が連結してしまう。google-anyenvなどという興味深い単語の爆誕である。

非常に見づらい。

また個人的にclearのショートカットである<C-l>を多用するのだが、これがターミナルモードでもウィンドウ移動に割り当てられているため、うっかり押してしまうとフォーカスが裏側のウィンドウに行ってしまう。ターミナルに隠されているウィンドウに移動してもうれしいことはないので、これを無効化したい。

いい感じとは

枠を付けて見やすくし、

<C-l>を無効化して使いやすくする。

設定ファイル

~/.config/nvim/lua/config/keymaps.luaに以下の内容を加えると、

local Util = require("lazyvim.util")
local map = vim.keymap.set

-- ターミナルにおいてのC-hjklを無効化する。
vim.cmd([[
  tunmap <C-h>
  tunmap <C-j>
  tunmap <C-k>
  tunmap <C-l>
]])

-- ターミナルにボーダーを追加する。
local lazyterm = function()
  Util.terminal(nil, { cwd = Util.root(), border = "rounded" })
end
map("n", "<leader>ft", lazyterm, { desc = "Terminal (root dir)" })
map("n", "<C-/>", lazyterm, { desc = "Terminal (root dir)" })
map("n", "<C-_>", lazyterm, { desc = "which_key_ignore" })

いい感じになった。

Discussion