1
Files
flake-nixinator/home/modules/neovim/vim_opts.nix

66 lines
2.0 KiB
Nix

_: {
showmode = false; # Status line already shows this
backspace = ["indent" "eol" "start"];
termguicolors = true; # Required by multiple plugins
hidden = true; # Don't unload buffers immediately (required for terminal persistence)
mouse = "a";
completeopt = ["menuone" "noselect" "noinsert"];
timeoutlen = 50; # Controls which-key delay
pumheight = 0;
formatexpr = "v:lua.require('conform').formatexpr()";
laststatus = 3; # Global statusline
winblend = 30; # Floating popup transparency
sessionoptions = ["buffers" "curdir" "folds" "globals" "help" "skiprtp" "tabpages" "winsize"]; # What should be saved when creating a session
showtabline = 2; # Disable tabline with 0, show for > 1 with 1, always show with 2
conceallevel = 2;
# Cursor
ruler = true; # Show cursor position in status line
number = true;
relativenumber = true;
signcolumn = "yes"; # Always show to reduce window jumping
cursorline = true;
scrolloff = 10;
# Folding
foldcolumn = "0";
foldlevel = 99;
foldlevelstart = 99;
foldenable = true;
# foldmethod = "expr";
# foldexpr = "nvim_treesitter#foldexpr()";
# Files
encoding = "utf-8";
fileencoding = "utf-8";
# swapfile = true;
# backup = false;
undofile = true;
undodir = "/home/christoph/.vim/undo";
undolevels = 10000;
# autochdir = true;
confirm = true;
# Search
incsearch = true; # Already highlight results while typing
hlsearch = true;
ignorecase = true;
smartcase = true;
grepprg = "rg --vimgrep";
grepformat = "%f:%l:%c:%m";
# Indentation
autoindent = false; # Use previous line indentation level - Might mess up comment indentation
smartindent = false; # Like autoindent but recognizes some C syntax - Might mess up comment indentation
cindent = true;
cinkeys = "0{,0},0),0],:,!^F,o,O,e"; # Fix comment (#) indentation and intellitab (somehow)
smarttab = true;
expandtab = true;
shiftwidth = 4;
tabstop = 4;
softtabstop = 4;
splitbelow = true;
splitright = true;
}