diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-06-30 00:23:53 +0200 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-06-30 00:31:25 +0200 |
| commit | d8cb8a58007eb5b023ba4884dd94e38114b98a85 (patch) | |
| tree | d454c0e0d788efa9bb61b36eaa5b81a7f4fc9b75 /init.lua | |
| parent | 4264e83d31f84b68764327b9aae959c7c50c4894 (diff) | |
| download | nvim-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.lua | 41 |
1 files changed, 10 insertions, 31 deletions
@@ -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>", |
