--options vim.opt.number = true vim.opt.relativenumber = true vim.opt.tabstop = 4 vim.opt.softtabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true vim.opt.smartindent = true vim.opt.wrap = true vim.opt.termguicolors = true vim.opt.signcolumn = "yes" vim.opt.updatetime = 200 vim.opt.clipboard = "unnamedplus" -- search vim.opt.ignorecase = true vim.opt.hlsearch = true vim.opt.incsearch = true -- window splits vim.opt.splitbelow = true vim.opt.splitright = true -- keep the context around the cursor when scrolling vim.opt.scrolloff = 10 -- leader vim.g.mapleader = " " vim.g.maplocalleader = " " -- keymappings local map = vim.keymap.set map("n", "", "nohlsearch") -- window navigation map("n", "", "h") map("n", "", "l") map("n", "", "j") map("n", "", "k") -- move selected lines up/down in visual mode map("v", "J", ":m '>+1gv=gv") map("v", "K", ":m '<-2gv=gv") -- keep cursor centred when jumping map("n", "", "zz") map("n", "", "zz") map("n", "n", "nzzzv") map("n", "N", "Nzzzv") -- quickfix navigation (for build errors) map("n", "qo", "copen") map("n", "qc", "cclose") map("n", "]q", "cnext") map("n", "[q", "cprev")