summaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-06-30 00:23:53 +0200
committerThomas Vanbesien <tvanbesi@proton.me>2026-06-30 00:31:25 +0200
commitd8cb8a58007eb5b023ba4884dd94e38114b98a85 (patch)
treed454c0e0d788efa9bb61b36eaa5b81a7f4fc9b75 /init.lua
parent4264e83d31f84b68764327b9aae959c7c50c4894 (diff)
downloadnvim-config-d8cb8a58007eb5b023ba4884dd94e38114b98a85.tar.gz
nvim-config-d8cb8a58007eb5b023ba4884dd94e38114b98a85.zip
feat(keymap): rework terminal exit and window/tab keymaps
- Make <Esc> the sole way out of terminal mode; add <M-[> to forward a literal <Esc> to the running terminal program - Drop terminal-mode maps that left the mode (<C-6>, <C-\><C-\>, <M-h/j/k/l> window nav) - <M-p> goes to the previous window, <C-w>p to the previous tabpage - <M-n> opens a buffer split, <M-s> a terminal, <M-t> a new tabpage, <M-v> a vertical split - Remove all <Leader>w window mappings
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua41
1 files changed, 10 insertions, 31 deletions
diff --git a/init.lua b/init.lua
index f5a544a..08600a4 100644
--- a/init.lua
+++ b/init.lua
@@ -118,9 +118,11 @@ vim.api.nvim_create_user_command(
-- `:map \ ` to see (most) user set keymaps (those starting with the `<Leader>` key)
-- Miscellaneous
-vim.keymap.set("t", "<C-6>", "<C-\\><C-n><C-^>", { desc = "Alternate buffer" }) -- <C-6> is CTRL+^
vim.keymap.set("n", "<M-z>", "zA", { desc = "Toggle fold (recursively) under cursor" })
-vim.keymap.set("t", "<C-\\><C-\\>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
+vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
+vim.keymap.set("t", "<M-[>", "<Esc>", { desc = "Send <Esc> to the terminal program" })
+vim.keymap.set({ "n", "t" }, "<M-n>", "<Cmd>new<CR>", { desc = "Edit new buffer in split" })
+vim.keymap.set("n", "<M-s>", "<Cmd>terminal<CR>", { desc = "Open terminal in window" })
vim.keymap.set("n", "<Leader>mm", "<Cmd>messages<CR>", { desc = "Show all messages" })
vim.keymap.set("n", "<Leader>mc", "<Cmd>messages clear<CR>", { desc = "Clear all messages" })
vim.keymap.set("n", "<Leader>lh", vim.cmd.LspHintToggle, { desc = "Toggle inlay hints (LSP)" })
@@ -149,37 +151,14 @@ vim.keymap.set("n", "<M-h>", "<C-w>h", { desc = "Move left a window" })
vim.keymap.set("n", "<M-j>", "<C-w>j", { desc = "Move down a window" })
vim.keymap.set("n", "<M-k>", "<C-w>k", { desc = "Move up a window" })
vim.keymap.set("n", "<M-l>", "<C-w>l", { desc = "Move right a window" })
-vim.keymap.set("t", "<M-h>", "<C-\\><C-n><C-w>h", { desc = "Move left a window" })
-vim.keymap.set("t", "<M-j>", "<C-\\><C-n><C-w>j", { desc = "Move down a window" })
-vim.keymap.set("t", "<M-k>", "<C-\\><C-n><C-w>k", { desc = "Move up a window" })
-vim.keymap.set("t", "<M-l>", "<C-\\><C-n><C-w>l", { desc = "Move right a window" })
-vim.keymap.set("n", "<Leader>wc", "<Cmd>close<CR>", { desc = "Close window" })
-vim.keymap.set("n", "<Leader>ws", "<Cmd>split<CR>", { desc = "Split window" })
-vim.keymap.set("n", "<Leader>wv", "<Cmd>vsplit<CR>", { desc = "Split window vertically" })
-vim.keymap.set("n", "<Leader>wh", "<C-w>H", { desc = "Move window far left" })
-vim.keymap.set("n", "<Leader>wj", "<C-w>J", { desc = "Move window far down" })
-vim.keymap.set("n", "<Leader>wk", "<C-w>K", { desc = "Move window far up" })
-vim.keymap.set("n", "<Leader>wl", "<C-w>L", { desc = "Move window far right" })
-vim.keymap.set("n", "<Leader>wr", "<C-W>r", { desc = "Rotate windows down/right" })
-vim.keymap.set("n", "<Leader>wR", "<C-W>R", { desc = "Rotate windows up/left" })
-vim.keymap.set("n", "<Leader>wx", "<C-W>x", { desc = "Exchange window with next one" })
-vim.keymap.set("n", "<Leader>w=", "<C-W>=", { desc = "Equalize windows" })
-vim.keymap.set("n", "<Leader>w+", "<C-W>+", { desc = "Increase window height" })
-vim.keymap.set("n", "<Leader>w-", "<C-W>-", { desc = "Decrease window height" })
-vim.keymap.set("n", "<Leader>w>", "<C-W>>", { desc = "Increase window width" })
-vim.keymap.set("n", "<Leader>w<", "<C-W><", { desc = "Decrease window width" })
-vim.keymap.set("n", "<Leader>w_", "<C-W>_", { desc = "Set window height" })
-vim.keymap.set("n", "<Leader>w|", "<C-W>|", { desc = "Set window width" })
+vim.keymap.set("n", "<M-p>", "<Cmd>wincmd p<CR>", { desc = "Go to previously accessed window" })
+vim.keymap.set("n", "<M-v>", "<Cmd>vsplit<CR>", { desc = "Split window vertically" })
+vim.keymap.set("n", "<M-c>", "<Cmd>close<CR>", { desc = "Close window" })
+vim.keymap.set("n", "<M-o>", "<Cmd>only<CR>", { desc = "Close all other windows" })
-- Tabpages
-vim.keymap.set("n", "<M-t>", "<Cmd>tabnew<CR>", { desc = "Create new tabpage" })
+vim.keymap.set("n", "<M-t>", "<Cmd>tabnew<CR>", { desc = "Open new tabpage" })
vim.keymap.set("n", "<C-w>t", "<Cmd>tabclose<CR>", { desc = "Delete current tabpage" })
-vim.keymap.set(
- { "n", "i", "t" },
- "<M-p>",
- "<Cmd>tabnext #<CR>",
- { desc = "Move to last accessed tab page" }
-)
-vim.keymap.set({ "n", "i", "t" }, "<M-n>", "<Cmd>tabnext<CR>", { desc = "Move to next tab page" })
+vim.keymap.set("n", "<C-w>p", "<Cmd>tabnext #<CR>", { desc = "Go to previously accessed tabpage" })
vim.keymap.set(
{ "n", "i", "t" },
"<M-b>",