{ pkgs, ... }: let vim-stabs = pkgs.vimUtils.buildVimPlugin { name = "vim-stabs"; src = pkgs.fetchFromGitHub { owner = "Thyrum"; repo = "vim-stabs"; rev = "4654d4e000680e1f608b40f155af08873446ed63"; sha256 = "0hi1c5zv38hwxbyrf11fz97r728jgbppz4is7fwzwhfrzhwbw0ga"; }; }; vim-xonsh = pkgs.vimUtils.buildVimPlugin { name = "vim-xonsh"; src = pkgs.fetchFromGitHub { owner = "meatballs"; repo = "vim-xonsh"; rev = "2028aac"; sha256 = "sha256-0+dqtlz8LeyOoSiS12rv8aLdzOMj31PuYAyDYWnpNzw="; }; }; in { home.packages = with pkgs; [ ansible-language-server pyright ]; programs.nixneovim = { enable = true; colorscheme = "gruvbox"; globals = { indent_guides_enable_on_vim_startup = 1; nix_recommended_style = 0; NERDTreeIgnore = [ "\\.pyc$" "\\.pyo$" "\\.o$" "\\.class$" ]; }; options = { background = "dark"; backup = false; copyindent = true; cursorline = true; expandtab = false; hidden = true; hlsearch = true; ignorecase = true; lazyredraw = true; list = true; listchars = "tab:→ ,extends:→,precedes:←,trail:·,eol:¬"; mouse = "a"; number = true; preserveindent = true; relativenumber = true; shiftwidth = 4; showcmd = true; showmatch = true; signcolumn = "yes"; smartcase = true; softtabstop = 4; tabstop = 4; # Setting for CtrlP wildignore = "*.swp,*.pyc,*.class,.tox"; wrap = false; writebackup = false; }; mappings = { normalVisualOp = { "" = ''":BufExplorer"''; "" = ''":NERDTreeToggle"''; "" = ''":Files"''; "" = ''"j"''; "" = ''"k"''; "" = ''"h"''; "" = ''"l"''; }; }; plugins = { airline.enable = true; gitgutter.enable = true; fugitive.enable = true; notify.enable = true; }; extraConfigLua = builtins.readFile ./vim/extra.lua; extraConfigVim = builtins.readFile ./vim/extra.vimrc; extraPlugins = with pkgs.vimPlugins; [ bufexplorer nerdtree nvim-cmp #jedi-vim context-vim direnv-vim fzf-vim vim-flake8 vim-indent-guides vim-rooter vim-xonsh ]; viAlias = true; vimAlias = true; }; }