{ pkgs, ... }: { plugins.sleuth.enable = true; plugins.nvim-surround.enable = true; plugins.flash.enable = true; plugins.blink-pairs = { enable = true; }; plugins.treesitter = { enable = true; highlight.enable = true; indent.enable = true; folding.enable = true; grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ angular bash css html javascript jsdoc json lua make markdown markdown_inline go gomod gotmpl python tsx typescript nix regex toml vim vimdoc xml yaml ]; }; plugins.substitute = { enable = true; luaConfig.post = /* lua */ '' local sub = require("substitute") vim.keymap.set("n", "s", sub.operator, { noremap = true }) vim.keymap.set("n", "ss", sub.line, { noremap = true }) vim.keymap.set("n", "S", sub.eol, { noremap = true }) vim.keymap.set("x", "s", sub.visual, { noremap = true }) ''; }; autoCmd = [ { callback.__raw = "function() vim.highlight.on_yank() end"; event = [ "TextYankPost" ]; } { event = [ "FileType" ]; pattern = "qf"; callback.__raw = /* lua */ '' function() vim.keymap.set("n", "", "", { buffer = true }) end ''; } ]; }