-- define common options local opts = { noremap = true, -- non-recursive silent = true, -- do not show message } -- set leader key vim.g.mapleader = "'" ----------------- -- Normal mode -- ----------------- -- Hint: set `:h vim.map.set()` -- Better window navigation vim.keymap.set('n', '<C-h>', '<C-w>h', opts) vim.keymap.set('n', '<C-j>', '<C-w>j', opts) vim.keymap.set('n', '<C-k>', '<C-w>k', opts) vim.keymap.set('n', '<C-l>', '<C-w>l', opts) -- Resize with arrows vim.keymap.set('n', '<C-Up>', ':resize -2<CR>', opts) vim.keymap.set('n', '<C-Down>', ':resize +2<CR>', opts) vim.keymap.set('n', '<C-Left>', ':vertical resize -2<CR>', opts) vim.keymap.set('n', '<C-Right>', ':vertical resize +2<CR>', opts) vim.keymap.set('n', '<leader>wh :vertical resize', '-1<CR>') vim.keymap.set('n', '<leader>wj :resize', '-1<CR>') vim.keymap.set('n', '<leader>wk :resize', '+1<CR>') vim.keymap.set('n', '<leader>wl :vertical resize', '+1<CR>') -- NerdTREE vim.keymap.set('n', '<leader>tt', ':NERDTreeToggle<CR>') -- files -- these may go away soon vim.keymap.set('n', '<leader>xx', ':q<CR>') vim.keymap.set('n', '<leader>x!', ':q!<CR>') -- Close with leader vim.keymap.set('n', '<leader>ww', ':w<CR>', opts) vim.keymap.set('n', '<leader>qq', ':q<CR>', opts) vim.keymap.set('n', '<leader>wq', ':wq<CR>', opts) vim.keymap.set('n', '<leader>q!', ':q!<CR>', opts) vim.keymap.set('n', '<leader>wq', ':wq<CR>') vim.keymap.set('n', '<leader>ee :e', '') -- Tabs with leader vim.keymap.set('n', '<leader>th', ':tabprevious<CR>', opts) vim.keymap.set('n', '<leader>tl', ':tabnext<CR>', opts) vim.keymap.set('n', '<leader>tk', ':tabnew<CR>', opts) vim.keymap.set('n', '<leader>tj', ':tabclose<CR>', opts) -- Write with sudo vim.keymap.set('n', 'ZW', ':w !pkexec tee % >/dev/null', opts) -- clear search highlights vim.keymap.set('n', '<leader>/', ':noh<CR>') -- toggles vim.keymap.set('n', '<leader>tn :set', 'number!<CR>') vim.keymap.set('n', '<leader>tr :set', 'relativenumber!<CR>') -- write as root vim.keymap.set('n', 'ZW', ':w !pkexec tee % >/dev/null') -- config vim.keymap.set('n', '<leader>en', ':e ~/.config/nvim/init.lua<CR>') vim.keymap.set('n', '<leader>ec', ':source %<CR>') vim.keymap.set('n', '<leader>er', ':source ~/.config/nvim/init.lua<CR>') -- Goyo vim.keymap.set('n', '<leader>G', ':Goyo<CR>') -- fugitive vim.keymap.set('n', '<leader>gp :G', 'pull<CR>') vim.keymap.set('n', '<leader>gd :G diff', '%<CR>') ----------------- -- Visual mode -- ----------------- -- Hint: start visual mode with the same area as the previous area and the same mode --vim.keymap.set('v', '<', '<gv', opts) --vim.keymap.set('v', '>', '>gv', opts) -- windows vim.keymap.set('v', '<C-h>', '<C-w>h') vim.keymap.set('v', '<C-j>', '<C-w>j') vim.keymap.set('v', '<C-k>', '<C-w>k') vim.keymap.set('v', '<C-l>', '<C-w>l') -------------- -- TERMINAL -- -------------- -- escape for term windows vim.keymap.set('t', '<Esc>', '<C-\\><C-n>')