local options = { fileencoding = "utf-8", expandtab = false, shiftwidth = 4, tabstop = 4, cinoptions = { "(1s", "m1", }, hlsearch = true, ignorecase = true, smartcase = true, mouse = "a", mousemodel = "extend", splitbelow = true, splitright = true, cursorline = true, sidescrolloff = 8, wrap = false, linebreak = true, -- When using set wrap, do not break in the middle of a word. spell = false, termguicolors = true, swapfile = false, undofile = true, updatetime = 300, -- faster completion (4000ms default) number = true, relativenumber = true, numberwidth = 4, signcolumn = "yes", list = true, listchars = { space = "·", tab = "▷ ", extends = "◣", precedes = "◢", nbsp = "○", }, fillchars = { diff = "╱", eob = " ", fold = " ", foldopen = "", foldsep = " ", foldclose = "", }, } for k, v in pairs(options) do vim.opt[k] = v end -- Disable comment continuations (enter or o/O) vim.cmd("autocmd BufEnter * set formatoptions-=ro") vim.cmd("autocmd BufEnter * setlocal formatoptions-=ro") vim.g.mapleader = " " vim.g.maplocalleader = " " local function keymap(mode, l, r, desc) vim.keymap.set(mode, l, r, { noremap = true, silent = true, desc = desc }) end -- Stay in indent mode keymap("v", "<", "", ">gv") -- Move in insert mode -- keymap("i", "", "") keymap("i", "", "") keymap("i", "", "") keymap("i", "", "") keymap("i", "", "") keymap("c", "", "") keymap("i", "", "") -- Keymap for CTRL-BACKSPACE on some termial emulators. keymap("c", "", "") -- Center screen when navigating search results keymap("n", "n", "nzz") keymap("n", "N", "Nzz") keymap({ "n", "x" }, "y", '"+y', "Yank to system clipboard") keymap({ "n", "x" }, "Y", '"+y$', "Yank line to system clipboard") keymap({ "n", "x" }, "p", '"+p', "Past from system clipboard") keymap({ "n", "x" }, "P", '"+P', "Past line from system clipboard") keymap("n", "", "cnextzz", "Next quickfix") keymap("n", "", "cprevzz", "Prev quickfix") keymap("n", "c", "cclose", "Close quickfix") keymap("t", "", "", "+windows") keymap("t", "", "", "Normal mode") vim.keymap.set({"n", "x"}, "gq", "gw", { desc = "Reformat using textwidth (tw)", noremap = true }) vim.cmd("autocmd FileType qf setl nolist") vim.cmd("syntax on") vim.api.nvim_create_autocmd('TextYankPost', { group = vim.api.nvim_create_augroup("HighlightYank", {}), pattern = '*', callback = function() vim.highlight.on_yank({ higroup = 'Visual', timeout = 200, }) end, })