-- This file lists all the global keymaps local map = vim.keymap.set local g = vim.g -- Change the leader and localleader g.mapleader = ',' g.maplocalleader = ';' -- Make a dot-repeatable keymap local function dr_map(mode, motion, keycodes, opts) local termcodes = vim.api.nvim_replace_termcodes(keycodes, true, true, true) local function dot_repeatable() _G.dot_repeat_callback = vim.api.nvim_feedkeys(termcodes, mode, false) vim.go.operatorfunc = 'v:lua.dot_repeat_callback' return 'g@l' end map(mode, motion, dot_repeatable, opts) end -- Use ctrl-[hjkl] to select the active split! map('n', '', ":wincmd k", { silent = true }) map('n', '', ":wincmd j", { silent = true }) map('n', '', ":wincmd h", { silent = true }) map('n', '', ":wincmd l", { silent = true }) -- Use ,dd for deleting without putting into buffer etc. dr_map('n', 'd', '"_d', { remap = false }) map('v', 'd', '"_d', { remap = false }) dr_map('n', 'D', '"_D', { remap = false }) dr_map('n', 'x', '"_x', { remap = false }) dr_map('n', 'r', '"_viwP', { remap = false }) -- Insert a newline in normal mode by ,o and ,O map('n', 'o', ":call append(line('.'), repeat([''], v:count1))", { remap = false }) map('n', 'O', ":call append(line('.')-1, repeat([''], v:count1))", { remap = false }) -- Use ,u for redo map('n', 'u', "", { remap = false }) -- Browser like keymaps map('n', 'k', "gt", { remap = false }) map('n', 'j', "gT", { remap = false }) map('n', 'w', ":bdelete", { remap = false }) map('n', 'W', ":bdelete!", { remap = false }) map('n', 't', ":tabnew", { remap = false }) map('n', 'q', ":qa", { remap = false }) map('n', 'Q', ":qa!", { remap = false }) map('n', 's', ":w", { remap = false }) map('n', 'S', ":x", { remap = false }) -- Clear search highlight by Esc in normal mode map('n', '', ':noh', { remap = false }) -- Find files using fzf by ,f map('n', 'f', ':Files', { remap = false })