nixos/home-manager/features/vim.nix
2024-03-31 02:55:55 -04:00

70 lines
1.6 KiB
Nix

{ inputs, pkgs, ... }: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
];
programs.nixvim = {
enable = true;
opts = {
number = true;
};
colorschemes.tokyonight.enable = true;
autoCmd = [
{ event = "VimEnter"; command = "Neotree"; }
];
keymaps = [
# Simple save Ctrl + S
{ action = "<cmd>w<CR>"; key = "<C-s>"; options.silent = true; }
# Vsplit
{ action = "<cmd>vsplit<CR>"; key = "<D-l>"; options.silent = true; }
# [H]split
{ action = "<cmd>split<CR>"; key = "<D-k>"; options.silent = true; }
# Toggleterm Ctrl + `
{ action = "<cmd>ToggleTerm<CR>"; key = "<C-`>"; options.silent = true; }
];
plugins = {
neo-tree = {
enable = true;
closeIfLastWindow = true;
buffers.followCurrentFile.leaveDirsOpen = true;
};
lightline.enable = true;
toggleterm.enable = true;
rainbow-delimiters.enable = true;
treesitter.enable = true;
barbar.enable = true;
gitgutter.enable = true;
persistence.enable = true;
cmp.enable = true;
cmp-nvim-lsp.enable = true;
cmp_luasnip.enable = true;
luasnip.enable = true;
lsp = {
enable = true;
servers = {
nil_ls.enable = true;
rust-analyzer.enable = true;
rust-analyzer.installRustc = false; # use rustc in nix shells, maybe?
rust-analyzer.installCargo = false;
tsserver.enable = true;
htmx.enable = true;
html.enable = true;
};
};
};
extraPlugins = with pkgs.vimPlugins; [
vim-sleuth
];
};
}