vim.g.mapleader = " " vim.g.maplocalleader = " " vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) vim.opt.autoread = true vim.opt.tabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = false vim.opt.autoindent = true vim.opt.softtabstop = 0 vim.opt.preserveindent = true vim.opt.number = true vim.opt.wrap = false vim.opt.sidescrolloff = 16 vim.opt.list = true vim.opt.listchars = { tab = "┆ ", leadmultispace = "│ ", multispace = "·", extends = "»", precedes = "«", trail = "─", } vim.opt.signcolumn = "yes" vim.opt.hlsearch = false vim.opt.cursorline = true vim.opt.cursorlineopt = "number" vim.opt.shortmess = "aoOstTWIcC" vim.opt.smartcase = true vim.opt.ignorecase = true vim.opt.undofile = true vim.opt.fillchars = { eob = " " } vim.opt.virtualedit = "all" vim.opt.timeout = false vim.opt.showmode = false vim.opt.pumheight = 7 vim.diagnostic.config({ virtual_text = false, underline = false, signs = false }) -- FTPlugin, begone vim.cmd("autocmd BufReadPre,BufNewFile * let b:did_ftplugin = 1") vim.cmd("filetype plugin off") vim.keymap.set("n", "", ":m .+1==") -- move line up(n) vim.keymap.set("n", "", ":m .-2==") -- move line down(n) vim.keymap.set("v", "", ":m '>+1gv=gv") -- move line up(v) vim.keymap.set("v", "", ":m '<-2gv=gv") -- move line down(v) local buffer_action = function(prompt, command) return function() vim.ui.input({ prompt = prompt }, function(input) vim.cmd(command .. input) end) end end vim.keymap.set("n", "bn", buffer_action("New buffer", ":edit ")) vim.keymap.set("n", "bv", buffer_action("Vsplit: ", ":vnew ")) vim.keymap.set("n", "bs", buffer_action("Hsplit: ", ":new ")) vim.keymap.set("n", "br", buffer_action("Rename: ", ":file ")) vim.keymap.set({ "n", "v" }, "", "") vim.keymap.set({ "n", "v" }, "H", "") vim.keymap.set({ "n", "v" }, "", "") vim.keymap.set({ "n", "v" }, "L", "") -- `s` shortcut is occupied by surround plugin vim.keymap.set("n", "", "s") vim.keymap.set("v", "s", "") vim.keymap.set("i", "", "") require("lazy").setup("plugins") vim.fn.digraph_setlist(require("digraphs")) require("marks")