-- Minimal server editor config -- Launch with: NVIM_APPNAME=nvim-server nvim -------------------- Options -------------------- vim.g.mapleader = "," vim.opt.number = true vim.opt.cursorline = true vim.opt.expandtab = true vim.opt.tabstop = 4 vim.opt.shiftwidth = 4 vim.opt.softtabstop = 4 vim.opt.autoindent = true vim.opt.smartindent = true vim.opt.hlsearch = true vim.opt.incsearch = true vim.opt.ignorecase = true vim.opt.smartcase = true vim.opt.splitright = true vim.opt.splitbelow = true vim.opt.termguicolors = true vim.opt.scrolloff = 8 vim.opt.signcolumn = "no" vim.opt.updatetime = 250 vim.opt.undofile = true vim.opt.clipboard = "unnamedplus" -------------------- Keymaps -------------------- vim.keymap.set("n", "i", ":nohlsi", { silent = true }) vim.keymap.set("n", "", ":w", { silent = true }) -- Window navigation vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") vim.keymap.set("n", "", "l") vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") vim.keymap.set("n", "", "l") -- Tab management vim.keymap.set("n", "to", ":tabonly", { silent = true }) vim.keymap.set("n", "o", ":only", { silent = true }) vim.keymap.set("n", "", ":tabn", { silent = true }) vim.keymap.set("n", "", ":tabp", { silent = true }) -------------------- Netrw (built-in file browser) -------------------- vim.g.netrw_banner = 0 vim.g.netrw_liststyle = 3 vim.keymap.set("n", "", ":Explore", { silent = true }) -------------------- Statusline (built-in) -------------------- vim.opt.statusline = " %f %m%r%= %y %l:%c %p%% " -------------------- Bootstrap lazy.nvim -------------------- local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if vim.fn.isdirectory(lazypath) == 0 then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ { "4ree/viml-surround", event = "VeryLazy" }, { "numToStr/Comment.nvim", event = "VeryLazy", opts = {} }, { "junegunn/fzf.vim", dependencies = { "junegunn/fzf" }, keys = { { "f", "Files", desc = "Find files" }, { "b", "Buffers", desc = "Buffers" }, { "r", "Rg", desc = "Ripgrep" }, { "g", "GFiles", desc = "Git files" }, }, }, }) -------------------- Grep (use ripgrep if available) -------------------- if vim.fn.executable("rg") == 1 then vim.opt.grepprg = "rg --vimgrep --smart-case" vim.opt.grepformat = "%f:%l:%c:%m" end