{ configs, pkg, ... }: { programs.nixvim = { enable = true; viAlias = true; vimAlias = true; colorschemes.base16 = { colorscheme = "gruvbox-dark-medium"; enable = true; }; options = { mouse = "a"; lazyredraw = true; termguicolors = true; autoread = true; swapfile = false; history = 500; formatoptions = "rojq"; # dont hard wrap textwidth = 0; wrapmargin = 0; breakindent = true; # highlight after col colorcolumn = "80,100,120"; # add ruler to side of screen number = true; numberwidth = 3; #display cursor cordinates ruler = true; #always leave 5 cells between cursor and side of window scrolloff = 5; # better command line completion wildmenu = true; # ignore case if all lowercase ignorecase = true; smartcase = true; # show unfinished keycombos in statusbar showcmd = true; # regex stuff magic = true; # always show statusline laststatus = 2; # tab stuff tabstop = 4; shiftwidth = 0; autoindent = true; smartindent = true; smarttab = true; # for true tabs, change to false expandtab = true; softtabstop = -1; # highlight search results as you type hlsearch = true; incsearch = true; # folding stuff foldlevelstart = 5; foldmethod = "indent"; foldcolumn = "auto:4"; foldenable = true; # display whitespace as other chars list = true; listchars = { tab = ">-"; eol = "↲"; nbsp = "␣"; trail = "•"; extends = "⟩"; precedes = "⟨"; }; showbreak = "↪"; }; clipboard.providers.xsel.enable = true; globals = { mapleader = ";"; }; keymaps = [ { action = ":setlocal spell!"; key = "cs"; mode = "n"; options = { silent = true; desc = "toggle spell check"; }; } { action = ":bnext"; key = "gf"; mode = "n"; options = { silent = true; desc = "next buffer"; }; } { action = ":bprevious"; key = "gF"; mode = "n"; options = { silent = true; desc = "prev buffer"; }; } { action = "h"; key = ""; mode = "n"; options = { silent = true; desc = "move to right split"; }; } { action = "j"; key = ""; mode = "n"; options = { silent = true; desc = "move to below split"; }; } { action = "k"; key = ""; mode = "n"; options = { silent = true; desc = "move to above split"; }; } { action = "l"; key = ""; mode = "n"; options = { silent = true; desc = "move to left split"; }; } { action = "za"; key = ""; mode = "n"; options = { silent = true; desc = "toggle fold"; }; } { action = ":nohls"; key = "h"; mode = "n"; options = { silent = true; desc = "clear highlighting"; }; } ]; }; imports = [ ./lualine.nix ./nvim-tree.nix ./toggleterm.nix ]; }