{
"nodes": {
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1751685974,
+ "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
+ "ref": "refs/heads/main",
+ "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
+ "revCount": 92,
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nvf",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1769996383,
+ "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
"hjem": {
"inputs": {
"nix-darwin": "nix-darwin",
"type": "github"
}
},
+ "mnw": {
+ "locked": {
+ "lastModified": 1777828893,
+ "narHash": "sha256-gVWVnmyNr74BVKfhMMZDWkhx2699dhmZ2g0W8TTHtkk=",
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "rev": "c1c0b544bfabe6669b5a6a0383ccb475fe60258b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "type": "github"
+ }
+ },
"my-dmenu": {
"inputs": {
"nixpkgs": [
"type": "github"
}
},
+ "ndg": {
+ "inputs": {
+ "nixpkgs": [
+ "nvf",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1776882296,
+ "narHash": "sha256-DWZozXwMsgvUqfVlL1mQ8dOxW7GJ/8CdyaDN+1niZRg=",
+ "owner": "feel-co",
+ "repo": "ndg",
+ "rev": "ab7d78d4884b3a34968cf9fa3d16c0c1246d5c6e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "feel-co",
+ "ref": "refs/tags/v2.6.0",
+ "repo": "ndg",
+ "type": "github"
+ }
+ },
"nix-darwin": {
"inputs": {
"nixpkgs": [
"type": "github"
}
},
+ "nvf": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "flake-parts": "flake-parts",
+ "mnw": "mnw",
+ "ndg": "ndg",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1778963095,
+ "narHash": "sha256-x1rkZ2QL7stCTq/IjIBK9JuvfMPz6nyhaFKhvLXfjks=",
+ "owner": "notashelf",
+ "repo": "nvf",
+ "rev": "49bb322eba1a6c1ad201d15eefde5469c53b08d7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "notashelf",
+ "repo": "nvf",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"hjem": "hjem",
"my-slstatus": "my-slstatus",
"my-st": "my-st",
"my-surf": "my-surf",
- "nixpkgs": "nixpkgs"
+ "nixpkgs": "nixpkgs",
+ "nvf": "nvf"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
}
}
},
url = "github:Skullheadx/dmenu";
inputs.nixpkgs.follows = "nixpkgs";
};
+ nvf = {
+ url = "github:notashelf/nvf";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs =
my-dwm,
my-st,
my-dmenu,
+ nvf,
}@inputs:
+ let
+ system = "x86_64-linux";
+ pkgs = nixpkgs.legacyPackages.${system};
+ customNeovim = nvf.lib.neovimConfiguration {
+ inherit pkgs;
+ modules = [ ./nvf/nvf.nix ];
+ };
+ in
{
nixosConfigurations.nepsis = nixpkgs.lib.nixosSystem {
- specialArgs = { inherit inputs; };
+ specialArgs = { inherit inputs customNeovim; };
modules = [
hjem.nixosModules.default
./configuration.nix
./overlays.nix
];
};
+
+ packages.${system}.my-neovim = customNeovim.neovim;
};
}
--- /dev/null
+{ ... }:
+[
+ # Top Pickers & Explorer
+ {
+ key = "<leader><space>";
+ mode = "n";
+ silent = true;
+ desc = "Smart Find Files";
+ action = "<cmd>lua Snacks.picker.smart()<CR>";
+ }
+ {
+ key = "<leader>f\/";
+ mode = "n";
+ silent = true;
+ desc = "Grep";
+ action = "<cmd>lua Snacks.picker.grep()<CR>";
+ }
+ {
+ key = "<leader>:";
+ mode = "n";
+ silent = true;
+ desc = "Command History";
+ action = "<cmd>lua Snacks.picker.command_history()<CR>";
+ }
+ {
+ key = "<leader>e";
+ mode = "n";
+ silent = true;
+ desc = "File Explorer";
+ action = "<cmd>lua Snacks.explorer()<CR>";
+ }
+
+ # Find
+ {
+ key = "<leader>fb";
+ mode = "n";
+ silent = true;
+ desc = "Buffers";
+ action = "<cmd>lua Snacks.picker.buffers()<CR>";
+ }
+ {
+ key = "<leader>fc";
+ mode = "n";
+ silent = true;
+ desc = "Find Config File";
+ action = "<cmd>lua Snacks.picker.files({ cwd = vim.fn.stdpath('config') })<CR>";
+ }
+ {
+ key = "<leader>ff";
+ mode = "n";
+ silent = true;
+ desc = "Find Files";
+ action = "<cmd>lua Snacks.picker.files()<CR>";
+ }
+ {
+ key = "<leader>fg";
+ mode = "n";
+ silent = true;
+ desc = "Find Git Files";
+ action = "<cmd>lua Snacks.picker.git_files()<CR>";
+ }
+ {
+ key = "<leader>fp";
+ mode = "n";
+ silent = true;
+ desc = "Projects";
+ action = "<cmd>lua Snacks.picker.projects()<CR>";
+ }
+ {
+ key = "<leader>fr";
+ mode = "n";
+ silent = true;
+ desc = "Recent";
+ action = "<cmd>lua Snacks.picker.recent()<CR>";
+ }
+
+ # Git
+ {
+ key = "<leader>gb";
+ mode = "n";
+ silent = true;
+ desc = "Git Branches";
+ action = "<cmd>lua Snacks.picker.git_branches()<CR>";
+ }
+ {
+ key = "<leader>gl";
+ mode = "n";
+ silent = true;
+ desc = "Git Log";
+ action = "<cmd>lua Snacks.picker.git_log()<CR>";
+ }
+ {
+ key = "<leader>gL";
+ mode = "n";
+ silent = true;
+ desc = "Git Log Line";
+ action = "<cmd>lua Snacks.picker.git_log_line()<CR>";
+ }
+ {
+ key = "<leader>gs";
+ mode = "n";
+ silent = true;
+ desc = "Git Status";
+ action = "<cmd>lua Snacks.picker.git_status()<CR>";
+ }
+ {
+ key = "<leader>gS";
+ mode = "n";
+ silent = true;
+ desc = "Git Stash";
+ action = "<cmd>lua Snacks.picker.git_stash()<CR>";
+ }
+ {
+ key = "<leader>gd";
+ mode = "n";
+ silent = true;
+ desc = "Git Diff (Hunks)";
+ action = "<cmd>lua Snacks.picker.git_diff()<CR>";
+ }
+ {
+ key = "<leader>gf";
+ mode = "n";
+ silent = true;
+ desc = "Git Log File";
+ action = "<cmd>lua Snacks.picker.git_log_file()<CR>";
+ }
+
+ # GitHub
+ {
+ key = "<leader>gi";
+ mode = "n";
+ silent = true;
+ desc = "GitHub Issues (open)";
+ action = "<cmd>lua Snacks.picker.gh_issue()<CR>";
+ }
+ {
+ key = "<leader>gI";
+ mode = "n";
+ silent = true;
+ desc = "GitHub Issues (all)";
+ action = "<cmd>lua Snacks.picker.gh_issue({ state = 'all' })<CR>";
+ }
+ {
+ key = "<leader>gp";
+ mode = "n";
+ silent = true;
+ desc = "GitHub Pull Requests (open)";
+ action = "<cmd>lua Snacks.picker.gh_pr()<CR>";
+ }
+ {
+ key = "<leader>gP";
+ mode = "n";
+ silent = true;
+ desc = "GitHub Pull Requests (all)";
+ action = "<cmd>lua Snacks.picker.gh_pr({ state = 'all' })<CR>";
+ }
+
+ # Grep
+ {
+ key = "<leader>sb";
+ mode = "n";
+ silent = true;
+ desc = "Buffer Lines";
+ action = "<cmd>lua Snacks.picker.lines()<CR>";
+ }
+ {
+ key = "<leader>sB";
+ mode = "n";
+ silent = true;
+ desc = "Grep Open Buffers";
+ action = "<cmd>lua Snacks.picker.grep_buffers()<CR>";
+ }
+ {
+ key = "<leader>fg";
+ mode = "n";
+ silent = true;
+ desc = "Grep";
+ action = "<cmd>lua Snacks.picker.grep()<CR>";
+ }
+ {
+ key = "<leader>fw";
+ mode = [
+ "n"
+ "x"
+ ];
+ silent = true;
+ desc = "Visual selection or word";
+ action = "<cmd>lua Snacks.picker.grep_word()<CR>";
+ }
+
+ # Search
+ {
+ key = "<leader>s\"";
+ mode = "n";
+ silent = true;
+ desc = "Registers";
+ action = "<cmd>lua Snacks.picker.registers()<CR>";
+ }
+ {
+ key = "<leader>sa";
+ mode = "n";
+ silent = true;
+ desc = "Autocmds";
+ action = "<cmd>lua Snacks.picker.autocmds()<CR>";
+ }
+ {
+ key = "<leader>sc";
+ mode = "n";
+ silent = true;
+ desc = "Command History";
+ action = "<cmd>lua Snacks.picker.command_history()<CR>";
+ }
+ {
+ key = "<leader>sC";
+ mode = "n";
+ silent = true;
+ desc = "Commands";
+ action = "<cmd>lua Snacks.picker.commands()<CR>";
+ }
+ {
+ key = "<leader>sd";
+ mode = "n";
+ silent = true;
+ desc = "Diagnostics";
+ action = "<cmd>lua Snacks.picker.diagnostics()<CR>";
+ }
+ {
+ key = "<leader>sD";
+ mode = "n";
+ silent = true;
+ desc = "Buffer Diagnostics";
+ action = "<cmd>lua Snacks.picker.diagnostics_buffer()<CR>";
+ }
+ {
+ key = "<leader>sh";
+ mode = "n";
+ silent = true;
+ desc = "Help Pages";
+ action = "<cmd>lua Snacks.picker.help()<CR>";
+ }
+ {
+ key = "<leader>sH";
+ mode = "n";
+ silent = true;
+ desc = "Highlights";
+ action = "<cmd>lua Snacks.picker.highlights()<CR>";
+ }
+ {
+ key = "<leader>si";
+ mode = "n";
+ silent = true;
+ desc = "Icons";
+ action = "<cmd>lua Snacks.picker.icons()<CR>";
+ }
+ {
+ key = "<leader>sj";
+ mode = "n";
+ silent = true;
+ desc = "Jumps";
+ action = "<cmd>lua Snacks.picker.jumps()<CR>";
+ }
+ {
+ key = "<leader>sk";
+ mode = "n";
+ silent = true;
+ desc = "Keymaps";
+ action = "<cmd>lua Snacks.picker.keymaps()<CR>";
+ }
+ {
+ key = "<leader>sl";
+ mode = "n";
+ silent = true;
+ desc = "Location List";
+ action = "<cmd>lua Snacks.picker.loclist()<CR>";
+ }
+ {
+ key = "<leader>sm";
+ mode = "n";
+ silent = true;
+ desc = "Marks";
+ action = "<cmd>lua Snacks.picker.marks()<CR>";
+ }
+ {
+ key = "<leader>sM";
+ mode = "n";
+ silent = true;
+ desc = "Man Pages";
+ action = "<cmd>lua Snacks.picker.man()<CR>";
+ }
+ {
+ key = "<leader>sq";
+ mode = "n";
+ silent = true;
+ desc = "Quickfix List";
+ action = "<cmd>lua Snacks.picker.qflist()<CR>";
+ }
+ {
+ key = "<leader>f<CR>";
+ mode = "n";
+ silent = true;
+ desc = "Resume";
+ action = "<cmd>lua Snacks.picker.resume()<CR>";
+ }
+ {
+ key = "<leader>su";
+ mode = "n";
+ silent = true;
+ desc = "Undo History";
+ action = "<cmd>lua Snacks.picker.undo()<CR>";
+ }
+
+ # LSP
+ {
+ key = "gd";
+ mode = "n";
+ silent = true;
+ desc = "Goto Definition";
+ action = "<cmd>lua Snacks.picker.lsp_definitions()<CR>";
+ }
+ {
+ key = "gD";
+ mode = "n";
+ silent = true;
+ desc = "Goto Declaration";
+ action = "<cmd>lua Snacks.picker.lsp_declarations()<CR>";
+ }
+ {
+ key = "gr";
+ mode = "n";
+ silent = true;
+ nowait = true;
+ desc = "References";
+ action = "<cmd>lua Snacks.picker.lsp_references()<CR>";
+ }
+ {
+ key = "gI";
+ mode = "n";
+ silent = true;
+ desc = "Goto Implementation";
+ action = "<cmd>lua Snacks.picker.lsp_implementations()<CR>";
+ }
+ {
+ key = "gy";
+ mode = "n";
+ silent = true;
+ desc = "Goto Type Definition";
+ action = "<cmd>lua Snacks.picker.lsp_type_definitions()<CR>";
+ }
+ {
+ key = "<leader>ls";
+ mode = "n";
+ silent = true;
+ desc = "LSP Symbols";
+ action = "<cmd>lua Snacks.picker.lsp_symbols()<CR>";
+ }
+ {
+ key = "<leader>lS";
+ mode = "n";
+ silent = true;
+ desc = "LSP Workspace Symbols";
+ action = "<cmd>lua Snacks.picker.lsp_workspace_symbols()<CR>";
+ }
+
+ # Other
+ {
+ key = "<leader>z";
+ mode = "n";
+ silent = true;
+ desc = "Toggle Zen Mode";
+ action = "<cmd>lua Snacks.zen()<CR>";
+ }
+ {
+ key = "<leader>ss";
+ mode = "n";
+ silent = true;
+ desc = "Toggle Scratch Buffer";
+ action = "<cmd>lua Snacks.scratch()<CR>";
+ }
+ {
+ key = "<leader>sf";
+ mode = "n";
+ silent = true;
+ desc = "Select Scratch Buffer";
+ action = "<cmd>lua Snacks.scratch.select()<CR>";
+ }
+ {
+ key = "<leader>bc";
+ mode = "n";
+ silent = true;
+ desc = "Delete Buffer";
+ action = "<cmd>lua Snacks.bufdelete()<CR>";
+ }
+ {
+ key = "<leader>br";
+ mode = "n";
+ silent = true;
+ desc = "Rename File";
+ action = "<cmd>lua Snacks.rename.rename_file()<CR>";
+ }
+ {
+ key = "<leader>gB";
+ mode = [
+ "n"
+ "v"
+ ];
+ silent = true;
+ desc = "Git Browse";
+ action = "<cmd>lua Snacks.gitbrowse()<CR>";
+ }
+ {
+ key = "<leader>gg";
+ mode = "n";
+ silent = true;
+ desc = "Lazygit";
+ action = "<cmd>lua Snacks.lazygit()<CR>";
+ }
+ {
+ key = ",t";
+ mode = "n";
+ silent = true;
+ desc = "Toggle Terminal";
+ action = "<cmd>lua Snacks.terminal()<CR>";
+ }
+ {
+ key = ",t";
+ mode = "t";
+ silent = true;
+ desc = "which_key_ignore";
+ action = "<cmd>lua Snacks.terminal()<CR>";
+ }
+
+ {
+ key = "w";
+ mode = [
+ "n"
+ "o"
+ "x"
+ ];
+ action = "<cmd>lua require('spider').motion('w')<CR>";
+ }
+ {
+ key = "e";
+ mode = [
+ "n"
+ "o"
+ "x"
+ ];
+ action = "<cmd>lua require('spider').motion('e')<CR>";
+ }
+ {
+ key = "b";
+ mode = [
+ "n"
+ "o"
+ "x"
+ ];
+ action = "<cmd>lua require('spider').motion('b')<CR>";
+ }
+ {
+ key = "ge";
+ mode = [
+ "n"
+ "o"
+ "x"
+ ];
+ action = "<cmd>lua require('spider').motion('ge')<CR>";
+ }
+]
--- /dev/null
+{ pkgs, ... }:
+{
+ config.vim = {
+ # core
+ syntaxHighlighting = true;
+ binds.whichKey.enable = true;
+
+ # ui
+ theme = {
+ enable = true;
+ name = "tokyonight";
+ style = "storm";
+ transparent = true;
+ };
+
+ statusline.lualine.enable = true;
+ ui = {
+ noice.enable = true;
+ illuminate.enable = true;
+ nvim-highlight-colors.enable = true;
+ borders = {
+ enable = true;
+ globalStyle = "rounded";
+ };
+ };
+ mini.icons.enable = true;
+
+ visuals = {
+ nvim-web-devicons.enable = true;
+ rainbow-delimiters.enable = true;
+ tiny-devicons-auto-colors.enable = true;
+ indent-blankline.enable = true;
+ highlight-undo.enable = true;
+ };
+ dashboard.alpha = {
+ enable = true;
+ theme = "theta";
+ };
+
+ # navigation
+ navigation = {
+ harpoon = {
+ enable = true;
+ mappings = {
+ file1 = "<leader>1";
+ file2 = "<leader>2";
+ file3 = "<leader>3";
+ file4 = "<leader>4";
+ listMarks = "<leader>'";
+ markFile = "<leader>.";
+ };
+ setupOpts.defaults = {
+ save_on_toggle = true;
+ sync_on_ui_close = true;
+ };
+ };
+ };
+
+ # lsp
+ lsp = {
+ enable = true;
+ formatOnSave = true;
+ inlayHints.enable = true;
+
+ lightbulb = {
+ enable = true;
+ autocmd.enable = true;
+ };
+ lspconfig.enable = true;
+ otter-nvim.enable = true;
+ };
+
+ notes.todo-comments.enable = true;
+
+ spellcheck = {
+ enable = true;
+ };
+ comments.comment-nvim = {
+ enable = true;
+
+ mappings.toggleCurrentLine = "<leader>/";
+ # mappings.toggleOpLeaderLine = "<leader>/";
+ # mappings.toggleOpLeaderBlock = "<leader>/";
+ # mappings.toggleCurrentBlock = "<leader>/";
+ mappings.toggleSelectedLine = "<leader>/";
+ # mappings.toggleSelectedBlock = "<leader>/";
+
+ setupOpts.mappings.basic = true;
+ setupOpts.mappings.extra = true;
+ };
+
+ languages = {
+ nix = {
+ enable = true;
+ format = {
+ enable = true;
+ type = [ "alejandra" ];
+ };
+ lsp = {
+ enable = true;
+ servers = [ "nixd" ];
+ };
+ treesitter.enable = true;
+ };
+ sql.enable = true;
+ typescript.enable = true;
+ python.enable = true;
+ zig.enable = true;
+ markdown.enable = true;
+ html.enable = true;
+ go.enable = true;
+ lua.enable = true;
+ assembly.enable = true;
+ bash.enable = true;
+ clang.enable = true;
+ css.enable = true;
+ typst.enable = true;
+ };
+
+ treesitter = {
+ enable = true;
+ autotagHtml = true;
+ context.enable = true;
+ # fold = true;
+ grammars = pkgs.vimPlugins.nvim-treesitter.allGrammars;
+ };
+
+ diagnostics.nvim-lint = {
+ enable = true;
+ lint_after_save = true;
+ };
+
+ # plugins
+ extraPlugins = {
+ spider = {
+ package = pkgs.vimPlugins.nvim-spider;
+ };
+ };
+
+ utility = {
+ multicursors.enable = true;
+ surround.enable = true;
+ nix-develop.enable = true;
+ preview = {
+ glow.enable = true;
+ };
+ sleuth.enable = true;
+ snacks-nvim = {
+ enable = true;
+
+ setupOpts = {
+ bigfile.enable = true;
+ dashboard = {
+ enable = false;
+ };
+ explorer.enable = true;
+ indent.enable = true;
+ input.enable = true;
+
+ notifier = {
+ enable = true;
+ timeout = 3000;
+ };
+
+ picker = {
+ enable = true;
+ };
+ quickfile.enable = true;
+ scope.enable = true;
+ scroll.enable = true;
+ statuscolumn.enable = true;
+ words.enable = true;
+
+ styles.notification = {
+ # wo.wrap = true;
+ };
+ };
+ };
+ };
+
+ autocomplete.blink-cmp = {
+ enable = true;
+ friendly-snippets.enable = true;
+ # mappings = {
+ # close = "<Esc>"; # abort / close the menu
+ # complete = "<C-Space>"; # trigger completion manually
+ # confirm = "<CR>"; # confirm selected item
+ # next = "<C-n>"; # select next completion item
+ # previous = "<C-p>"; # select previous completion item
+ # scrollDocsDown = "<C-f>"; # scroll docs down
+ # scrollDocsUp = "<C-d>"; # scroll docs up
+ # };
+ setupOpts = {
+ signature.enabled = true;
+ cmdline.keymap.preset = "default";
+ keymap.preset = "default";
+ completion.documentation.auto_show = true;
+ };
+ sourcePlugins = {
+ lsp = {
+ package = "cmp-nvim-lsp";
+ };
+ buffer = {
+ package = "cmp-buffer";
+ };
+ path = {
+ package = "cmp-path";
+ };
+ luasnip = {
+ package = "cmp-luasnip";
+ };
+ spell = {
+ package = "blink-cmp-spell";
+ };
+ emoji = {
+ package = "blink-emoji-nvim";
+ };
+ ripgrep.enable = true;
+ spell.enable = true;
+ };
+ };
+
+ autopairs.nvim-autopairs.enable = true;
+
+ # keymaps
+ keymaps = import ./keymaps.nix { };
+
+ # tools
+ extraPackages = with pkgs; [
+ ripgrep
+ lazygit
+ fd
+ imagemagick
+ alejandra
+ nixd
+ ghostscript
+ tectonic
+
+ # language server
+ bash-language-server
+ clang-tools
+ docker-language-server
+ gopls
+ golangci-lint-langserver
+ vscode-langservers-extracted
+ emmet-language-server
+ lua-language-server
+ marksman
+ nixd
+ basedpyright
+ ruff
+ sqls
+ deno
+ vtsls
+ yaml-language-server
+ zls
+
+ # formatter
+ shfmt
+ gofumpt
+ prettierd
+ prettier
+ jq
+ stylua
+ nixpkgs-fmt
+ sqlfluff
+ prettypst
+
+ # linter
+ shellcheck
+ cppcheck
+ hadolint
+ fish
+ golangci-lint
+ selene
+ markdownlint-cli2
+ statix
+ eslint
+ yamllint
+
+ # debugger
+ lldb
+ delve
+ python313Packages.debugpy
+
+ # tree sitter
+ tree-sitter
+ ];
+ };
+}
-{ config, pkgs, ... }:
+{
+ config,
+ pkgs,
+
+ customNeovim,
+ ...
+}:
{
environment.systemPackages = with pkgs; [
exec ${pkgs.nvi}/bin/vi "$@"
'';
})
+
+ customNeovim.neovim
];
environment.etc."vimrc".text = ''
- set autoread
- au FocusGained,BufEnter * silent! checktime
+ set autoread
+ au FocusGained,BufEnter * silent! checktime
- " :W sudo saves the file
- " (useful for handling the permission-denied error)
- command! W execute 'w !sudo tee % > /dev/null' <bar> edit!
+ " Turn on the Wild menu
+ set wildmenu
- " Turn on the Wild menu
- set wildmenu
+ " Ignore compiled files
+ set wildignore=*.o,*~,*.pyc
+ set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
- " Ignore compiled files
- set wildignore=*.o,*~,*.pyc
- set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
+ set ruler
- set ruler
+ set ignorecase
+ set smartcase
+ set hlsearch
+ set incsearch
+ set lazyredraw
+ set magic
+ set showmatch
- set ignorecase
- set smartcase
- set hlsearch
- set incsearch
- set lazyredraw
- set magic
- set showmatch
+ syntax enable
+ set noswapfile
- syntax enable
- set noswapfile
+ " Use spaces instead of tabs
+ set expandtab
- " Use spaces instead of tabs
- set expandtab
+ " Be smart when using tabs ;)
+ set smarttab
- " Be smart when using tabs ;)
- set smarttab
+ " 1 tab == 4 spaces
+ set shiftwidth=4
+ set tabstop=4
- " 1 tab == 4 spaces
- set shiftwidth=4
- set tabstop=4
+ set ai "Auto indent
+ set si "Smart indent
+ set wrap "Wrap lines
- " Linebreak on 500 characters
- set lbr
- set tw=500
+ " Always show the status line
+ set laststatus=2
- set ai "Auto indent
- set si "Smart indent
- set wrap "Wrap lines
+ set number relativenumber
- " Always show the status line
- set laststatus=2
- set number relativenumber
-
-
- " Force the cursor to a Block when Vim starts
- let &t_ti = &t_ti . "\e[2 q"
- let &t_te = &t_te . "\e[2 q"
- let &t_EI = "\e[2 q"
- let &t_SI = "\e[2 q"
+ " Force the cursor to a Block when Vim starts
+ let &t_ti = &t_ti . "\e[2 q"
+ let &t_te = &t_te . "\e[2 q"
+ let &t_EI = "\e[2 q"
+ let &t_SI = "\e[2 q"
'';
- programs.neovim = {
- enable = true;
- defaultEditor = true;
- configure = {
- customRC = ''
-
- set autoread
- au FocusGained,BufEnter * silent! checktime
-
- " :W sudo saves the file
- " (useful for handling the permission-denied error)
- command! W execute 'w !sudo tee % > /dev/null' <bar> edit!
-
- " Turn on the Wild menu
- set wildmenu
-
- " Ignore compiled files
- set wildignore=*.o,*~,*.pyc
- set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
-
-
- set ruler
-
- set ignorecase
- set smartcase
- set hlsearch
- set incsearch
- set lazyredraw
- set magic
- set showmatch
-
- syntax enable
- set noswapfile
-
- " Use spaces instead of tabs
- set expandtab
-
- " Be smart when using tabs ;)
- set smarttab
-
- " 1 tab == 4 spaces
- set shiftwidth=4
- set tabstop=4
-
- " Linebreak on 500 characters
- set lbr
- set tw=500
-
- set ai "Auto indent
- set si "Smart indent
- set wrap "Wrap lines
-
- " Always show the status line
- set laststatus=2
-
- set number relativenumber
-
- '';
- };
- };
+ # programs.neovim = {
+ # enable = true;
+ # defaultEditor = true;
+ # configure = {
+ # customRC = ''
+ # set autoread
+ # au FocusGained,BufEnter * silent! checktime
+ #
+ # " Turn on the Wild menu
+ # set wildmenu
+ #
+ # " Ignore compiled files
+ # set wildignore=*.o,*~,*.pyc
+ # set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
+ #
+ # set ruler
+ #
+ # set ignorecase
+ # set smartcase
+ # set hlsearch
+ # set incsearch
+ # set lazyredraw
+ # set magic
+ # set showmatch
+ #
+ # syntax enable
+ # set noswapfile
+ #
+ # " Use spaces instead of tabs
+ # set expandtab
+ #
+ # " Be smart when using tabs ;)
+ # set smarttab
+ #
+ # " 1 tab == 4 spaces
+ # set shiftwidth=4
+ # set tabstop=4
+ #
+ #
+ # set ai "Auto indent
+ # set si "Smart indent
+ # set wrap "Wrap lines
+ #
+ # " Always show the status line
+ # set laststatus=2
+ #
+ # set number relativenumber
+ #
+ # '';
+ # };
+ # };
}