improve vim config

This commit is contained in:
nyanloutre 2025-05-02 21:22:25 +02:00
parent d4bc904ac7
commit 9425f55d8f
Signed by: nyanloutre
GPG key ID: 194A92D1103ACB2A

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
@ -8,32 +8,82 @@
enable = true; enable = true;
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
files = { colorschemes.catppuccin.enable = true;
"ftplugin/nix.lua" = { highlight.ExtraWhitespace.bg = "red"; # Highlight extra white spaces
performance = {
byteCompileLua = {
enable = true;
nvimRuntime = true;
configs = true;
plugins = true;
};
};
opts = { opts = {
tabstop = 8; updatetime = 100; # Faster completion
shiftwidth = 4;
softtabstop = 0; # Line numbers
expandtab = true; number = true; # Display the absolute line number of the current line
smarttab = true; hidden = true; # Keep closed buffer open in the background
background = "dark"; mouse = "a"; # Enable mouse control
mouse = ""; mousemodel = "extend"; # Mouse right-click extends the current selection
}; splitbelow = true; # A new window is put below the current one
}; splitright = true; # A new window is put right of the current one
modeline = true; # Tags such as 'vim:ft=sh'
modelines = 100; # Sets the type of modelines
undofile = true; # Automatically save and restore undo history
incsearch = true; # Incremental search: show match for partly typed search command
ignorecase = true; # When the search query is lower-case, match both lower and upper-case patterns
smartcase = true; # Override the 'ignorecase' option if the search pattern contains upper case characters
cursorline = true; # Highlight the screen line of the cursor
cursorcolumn = true; # Highlight the screen column of the cursor
signcolumn = "yes"; # Whether to show the signcolumn
laststatus = 3; # When to use a status line for the last window
fileencoding = "utf-8"; # File-content encoding for the current buffer
termguicolors = true; # Enables 24-bit RGB color in the |TUI|
wrap = false; # Prevent text from wrapping
# Tab options
tabstop = 2; # Number of spaces a <Tab> in the text stands for (local to buffer)
shiftwidth = 2; # Number of spaces used for each step of (auto)indent (local to buffer)
softtabstop = 0; # If non-zero, number of spaces to insert for a <Tab> (local to buffer)
expandtab = true; # Expand <Tab> to spaces in Insert mode (local to buffer)
autoindent = true; # Do clever autoindenting
showmatch = true; # when closing a bracket, briefly flash the matching one
matchtime = 1; # duration of that flashing n deci-seconds
startofline = true; # motions like "G" also move to the first char
report = 9001; # disable "x more/fewer lines" messages
}; };
plugins = { plugins = {
lualine.enable = true; lualine.enable = true;
lsp = { lsp = {
enable = true; enable = true;
inlayHints = true;
servers = { servers = {
nixd.enable = true; nixd.enable = true;
ruff.enable = true; ruff.enable = true;
}; };
}; };
lspkind.enable = true;
lsp-lines.enable = true;
lsp-signature.enable = true;
bufferline.enable = true; bufferline.enable = true;
telescope.enable = true; telescope.enable = true;
which-key.enable = true; which-key.enable = true;
treesitter.enable = true; treesitter = {
enable = true;
settings = {
highlight = {
enable = true;
additional_vim_regex_highlighting = true;
};
indent = {
enable = true;
};
};
};
cmp = { cmp = {
enable = true; enable = true;
autoEnableSources = true; autoEnableSources = true;