97 lines
3.8 KiB
Nix
97 lines
3.8 KiB
Nix
{ config, ... }:
|
|
{
|
|
programs.nixvim = {
|
|
enable = config.nixvim-config.enable;
|
|
|
|
defaultEditor = true;
|
|
|
|
globals = {
|
|
mapleader = " "; # global
|
|
maplocalleader = " "; # per buffer, e.g. can change behavior per filetype
|
|
## To appropriately highlight codefences returned from denols
|
|
markdown_fenced_languages.__raw = ''
|
|
{
|
|
"ts=typescript"
|
|
}
|
|
'';
|
|
};
|
|
|
|
clipboard = {
|
|
register = "unnamedplus";
|
|
};
|
|
|
|
opts = {
|
|
undodir.__raw = "vim.fs.normalize('~/.local/share/nvim/undo/')";
|
|
undofile = true;
|
|
undolevels = 1000; # Increase undo levels
|
|
backup = false; # No file backup
|
|
|
|
number = true; # Show line numbers
|
|
relativenumber = true; # Show relative line numbers
|
|
ruler = true; # displays line, column, and cursor position at bottom
|
|
wrap = false; # don't wrap lines
|
|
signcolumn = "yes"; # always show two column sign column on left
|
|
cursorline = true; # Highlight line cursor sits on
|
|
|
|
## @TODO Review these
|
|
completeopt = "menuone,noselect";
|
|
hidden = true; # Enable modified buffers in background
|
|
inccommand = "nosplit"; # Show effects of a command incrementally
|
|
joinspaces = false; # No double spaces with join after a dot
|
|
scrolloff = 4; # Lines of context
|
|
fileencoding = "utf-8"; # Encode files using UTF-8
|
|
termguicolors = true; # True color support
|
|
background = "dark"; # Always dark background
|
|
wildmenu = true; # Command-line completion mode
|
|
wildmode = "longest,list,full"; # Command-line completion mode
|
|
cmdheight = 2; # Command-line height
|
|
timeoutlen = 500; # to to wait for mapped sequence to complete
|
|
|
|
errorbells = false; # No sound on errors
|
|
visualbell = false;
|
|
mouse = "";
|
|
splitright = true;
|
|
|
|
winaltkeys = "no"; # Disable ALT keys for menu
|
|
|
|
autoindent = true;
|
|
smartindent = true;
|
|
colorcolumn = "121";
|
|
|
|
laststatus = 3;
|
|
|
|
# -----------------------------------------------------
|
|
# Backspace settings
|
|
# indent allow backspacing over autoindent
|
|
# eol allow backspacing over line breaks (join lines)
|
|
# start allow backspacing over the start of insert; CTRL-W and CTRL-U
|
|
# 0 same as ":set backspace=" (Vi compatible)
|
|
# 1 same as ":set backspace=indent,eol"
|
|
# 2 same as ":set backspace=indent,eol,start"
|
|
# -----------------------------------------------------
|
|
|
|
bs = "2";
|
|
|
|
# -----------------------------------------------------
|
|
# Indentation settings
|
|
# -----------------------------------------------------
|
|
|
|
tabstop = 4; # number of spaces a tab counts for
|
|
shiftwidth = 4; # control how many columns text is indented with the reindent operations (<< and >>) and automatic C-style indentation.
|
|
expandtab = true; # Insert spaces when entering <Tab>
|
|
softtabstop = 4; # Number of spaces that a <Tab> counts for while performing editing operations, like inserting a <Tab> or using <BS>. It "feels" like a tab though
|
|
ai = true; # auto indent
|
|
};
|
|
|
|
## ------------------------------------------------
|
|
## Theme
|
|
## ------------------------------------------------
|
|
|
|
colorschemes.tokyonight.enable = true;
|
|
|
|
# colorschemes.gruvbox.enable = true;
|
|
## Or:
|
|
# extraPlugins = [ pkgs.vimPlugins.gruvbox ];
|
|
# colorscheme = "gruvbox";
|
|
};
|
|
}
|