diff --git a/nvim/init.lua b/nvim/init.lua index 26f32c6..0dd8f9d 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -87,12 +87,28 @@ vim.opt.wildmenu = true vim.opt.wildmode = "list:longest" -- ── Keymaps ─────────────────────────────────────────────────────────────────── --- window navigation +-- window navigation (normal mode) vim.keymap.set("n", "", "w") vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") +-- window navigation from terminal-insert mode (exit insert, then move) +vim.keymap.set("t", "", "h", { silent = true }) +vim.keymap.set("t", "", "j", { silent = true }) +vim.keymap.set("t", "", "k", { silent = true }) +vim.keymap.set("t", "", "w", { silent = true }) + +-- auto-enter insert mode when focusing a terminal buffer (skip floaterm) +vim.api.nvim_create_autocmd("BufEnter", { + pattern = "term://*", + callback = function() + if vim.bo.filetype ~= "floaterm" then + vim.cmd("startinsert") + end + end, +}) + -- calendar.vim steals for month nav; restore window movement vim.api.nvim_create_autocmd("FileType", { pattern = "calendar",