-- SHOULD NOT CONTAIN ANY SETTINGS RELATED TO EXTERNAL PLUGINS -- OR CUSTOM CODE YOU YOURSELF WROTE. local function map(mode, lhs, rhs, opts) local default_opts = { noremap = true } if opts then default_opts = vim.tbl_extend("force", default_opts, opts) end --vim.api.nvim_set_keymap(mode, lhs, rhs, default_opts) vim.keymap.set(mode, lhs, rhs, default_opts) end local opt = vim.opt local g = vim.g g.mapleader = "," -- Move cursor relative to visual line breaks local function silent_map(mode, lhs, rhs) map(mode, lhs, rhs, { silent = true }) end silent_map("v", "", '"+y') silent_map("n", "", ":noh") --After searching, pressing escape stops the highlight --silent_map("n", "", ":bnext") --silent_map("n", "", ":bprevious") map("n", "w", [[:%s/\s\+$//e]]) map("n", "x", ":bp|bd #") map("n", "t", ":tabnew:bp|bd #") -- Move split map("n", "", "") map("n", "", "") map("n", "", "") map("n", "", "") -- Split navigations map("n", "", "") map("n", "", "") map("n", "", "") map("n", "", "") -- Resize split map("n", "-", "-") map("n", "+", "+") map("n", "(", "<") map("n", ")", ">") -- Scroll viewport map("n", "", "") map("n", "", "") map("v", "", "") map("v", "", "") map("i", "", "") map("i", "", "") -- Make visual yanks place the cursor back where started map("v", "y", "ygv") -- Terminal binds --local term_command = "split | set norelativenumber | set nonumber | term" local term_command = "split | term" map("t", "", [[]]) map("n", [[\]], ":" .. term_command .. "") map("n", [[|]], ":v" .. term_command .. "") -- line-break movement --silent_map("n", "", "gk") --silent_map("n", "", "gj") --silent_map("n", "", "g") --silent_map("n", "", "g") -- --silent_map("v", "", "gk") --silent_map("v", "", "gj") --silent_map("v", "", "g") --silent_map("v", "", "g") -- --silent_map("i", "", "gk") --silent_map("i", "", "gj") --silent_map("i", "", "g") --silent_map("i", "", "g") -- half page movement --silent_map("n", "", "M") --silent_map("n", "", "M") --silent_map("v", "", "M") --silent_map("v", "", "M") --silent_map("i", "", "M") --silent_map("i", "", "M") -- half page movement, primeagen version silent_map("n", "", "zz") silent_map("n", "", "zz") silent_map("v", "", "zz") silent_map("v", "", "zz") silent_map("i", "", "zz") silent_map("i", "", "zz") -- dynamic tab silent_map("n", "", ":lua require('dynamic_tab').tab()") silent_map("n", "", ":lua require('dynamic_tab').shift_tab()") opt.autoindent = true opt.autoread = true opt.expandtab = true opt.hlsearch = true opt.ignorecase = true opt.incsearch = true -- Shows the match while typing opt.linebreak = true opt.number = true opt.relativenumber = true opt.ruler = true opt.showcmd = true opt.smartcase = true opt.smartindent = true opt.splitbelow = true opt.splitright = true opt.termguicolors = false opt.title = true opt.undofile = true opt.wildmenu = true opt.encoding = "utf-8" opt.fileformat = "unix" opt.inccommand = "split" -- Get a preview of replacements opt.titlestring = [[NVIM: [%{fnamemodify(getcwd(), ':t')}] %t]] opt.scrolloff = 4 -- Lines of context opt.shiftwidth = 4 opt.synmaxcol = 4000 opt.tabstop = 4 opt.textwidth = 0 opt.foldmethod = "indent" opt.foldlevelstart = 10 opt.mouse = "" vim.cmd([[au BufRead,BufNewFile .env.* set filetype=sh]]) vim.cmd([[au BufRead,BufNewFile Dockerfile.* set filetype=dockerfile]]) --vim.cmd([[au BufRead,BufNewFile *.html set filetype=html]]) vim.filetype.add({ extension = { templ = "templ" } }) -- redo folds on write vim.cmd([[au BufWrite * normal zx]]) -- vscode doesn't like cursorline stuff if not vim.g.vscode then vim.cmd([[hi CursorLine cterm=NONE ctermbg=darkgray ctermfg=white]]) opt.cursorcolumn = true opt.cursorline = true end