{"id":16705542,"url":"https://github.com/storopoli/neovix","last_synced_at":"2026-03-07T02:39:05.407Z","repository":{"id":216577184,"uuid":"740918803","full_name":"storopoli/neovix","owner":"storopoli","description":"nixvim anywhere configs","archived":false,"fork":false,"pushed_at":"2025-10-15T11:51:37.000Z","size":759,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-16T05:09:35.243Z","etag":null,"topics":["neovim","nix","nixvim"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/storopoli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"storopoli"}},"created_at":"2024-01-09T10:39:56.000Z","updated_at":"2025-10-15T11:51:41.000Z","dependencies_parsed_at":"2024-02-04T09:45:51.159Z","dependency_job_id":"4c3cf82b-74b2-4ce5-ac7f-062763d7ff33","html_url":"https://github.com/storopoli/neovix","commit_stats":null,"previous_names":["storopoli/neovix"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/storopoli/neovix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2Fneovix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2Fneovix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2Fneovix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2Fneovix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/storopoli","download_url":"https://codeload.github.com/storopoli/neovix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2Fneovix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30206138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"online","status_checked_at":"2026-03-07T02:00:06.765Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","nix","nixvim"],"created_at":"2024-10-12T19:30:44.883Z","updated_at":"2026-03-07T02:39:05.377Z","avatar_url":"https://github.com/storopoli.png","language":"Nix","funding_links":["https://github.com/sponsors/storopoli"],"categories":[],"sub_categories":[],"readme":"# Nixvim template\n\n[![MIT](https://img.shields.io/badge/License-MIT-lightgrey.svg)](https://opensource.org/license/mit/)\n\nMy Minimalist Neovim config.\nBanish those unworthy [soydev](https://storopoli.com/posts/2023-11-10-soydev.html)\nIDEs to the depths of Hell!\n\n![screenshot](screenshot.png)\n\n## How to Use\n\nJust run anywhere with Nix:\n\n```bash\nnix run github:storopoli/neovix\n```\n\nOr clone the repo and run:\n\n```bash\nnix run .\n```\n\nAdditionally, you can use it as a flake:\n\n```nix\n{\n  # ...\n  inputs.neovix = {\n    url = \"github:storopoli/neovix\";\n    inputs = {\n      nixpkgs.follows = \"nixpkgs\";\n      flake-parts.follows = \"flake-parts\";\n    };\n  };\n\n  outputs = inputs @ { self, ... }:\n  {\n    imports = [\n      {\n        nixpkgs.overlays = [\n          # ...\n          inputs.neovix.overlays.default\n        ];\n      }\n    ];\n  };\n\n}\n```\n\nThen `neovix` will be available as `pkgs.neovix`.\n\n## `init.lua`\n\nThis config boils down to the following `init.lua` config (requires `neovim` version `0.12` or higher):\n\n```lua\n-------------------------------------------------------------------------------\n-- DEPENDENCIES\n-- neovim \u003e=0.12 ripgrep fd fzf\n-------------------------------------------------------------------------------\n\n-- Options\n-- Set highlight on search\nvim.o.hlsearch = false\nvim.o.incsearch = true\nvim.o.nu = true\nvim.o.relativenumber = true\nvim.o.tabstop = 2\nvim.o.softtabstop = 2\nvim.o.shiftwidth = 2\nvim.o.expandtab = true\nvim.o.hidden = true\nvim.o.laststatus = 3\nvim.o.winbar = \"%=%m %f\"\nvim.o.mouse = \"a\"\n-- Scrolling\nvim.o.scrolloff = 8\nvim.o.sidescrolloff = 8\n-- Time in milliseconds to wait for a mapped sequence to complete\nvim.o.timeoutlen = 500\nvim.o.ttyfast = true\nvim.o.wrap = false\nvim.o.breakindent = true\n-- Better undo history\nvim.o.swapfile = false\nvim.o.backup = false\nvim.o.undodir = vim.fn.stdpath(\"data\") .. \"/undo\"\nvim.o.undofile = true\nvim.o.ignorecase = true\nvim.o.smartcase = true\nvim.o.updatetime = 500\nvim.wo.signcolumn = \"yes\"\nvim.o.colorcolumn = \"80\"\nvim.o.splitbelow = true\nvim.o.splitright = true\nvim.o.list = true\nvim.opt.listchars = { tab = \"» \", trail = \"·\", nbsp = \"␣\" }\nvim.o.winborder = \"rounded\"\n--  NOTE: Must happen before plugins are required (otherwise wrong leader will be used)\nvim.g.mapleader = \" \"\nvim.g.maplocalleader = \" \"\n\n-- Plugins\nvim.pack.add({\n  \"https://github.com/echasnovski/mini.completion\",\n  \"https://github.com/ibhagwan/fzf-lua\",\n  \"https://github.com/neovim/nvim-lspconfig\",\n})\n\n-- FZF-lua\nrequire \"fzf-lua\".setup { defaults = { git_icons = false } }\nvim.api.nvim_set_keymap(\"n\", \"\u003cC-\\\\\u003e\", [[\u003cCmd\u003elua require\"fzf-lua\".buffers()\u003cCR\u003e]], {})\nvim.api.nvim_set_keymap(\"n\", \"\u003cC-k\u003e\", [[\u003cCmd\u003elua require\"fzf-lua\".diagnostics_workspace()\u003cCR\u003e]], {})\nvim.api.nvim_set_keymap(\"n\", \"\u003cC-p\u003e\", [[\u003cCmd\u003elua require\"fzf-lua\".global()\u003cCR\u003e]], {})\nvim.api.nvim_set_keymap(\"n\", \"\u003cC-l\u003e\", [[\u003cCmd\u003elua require\"fzf-lua\".live_grep()\u003cCR\u003e]], {})\nvim.api.nvim_set_keymap(\"n\", \"\u003cC-g\u003e\", [[\u003cCmd\u003elua require\"fzf-lua\".grep_project()\u003cCR\u003e]], {})\nvim.api.nvim_set_keymap(\"n\", \"gs\", [[\u003cCmd\u003elua require\"fzf-lua\".lsp_document_symbols()\u003cCR\u003e]], {})\nvim.api.nvim_set_keymap(\"n\", \"gS\", [[\u003cCmd\u003elua require\"fzf-lua\".lsp_live_workspace_symbols()\u003cCR\u003e]], {})\n\n-- Completion\nrequire(\"mini.completion\").setup{}\n\n-- LSP Diagnostics\nvim.diagnostic.config({ virtual_text = false, virtual_lines = { current_line = true } })\n\n-- LSPs\n-- Auto-starts LSP when a buffer is opened, based on the lsp-config\n-- `filetypes`, `root_markers`, and `root_dir` fields.\nvim.lsp.enable({\n  \"lua_ls\",\n  \"hls\",\n  \"rust_analyzer\",\n  \"nil_ls\",\n  \"nixd\",\n  \"taplo\",\n  \"yamlls\",\n  \"bashls\",\n  \"pyright\",\n  \"ruff\",\n})\n\n-- LSP keymaps\nvim.keymap.set(\"n\", \"gd\", vim.lsp.buf.definition, {})\nvim.keymap.set(\"n\", \"gD\", vim.lsp.buf.implementation, {})\nvim.keymap.set(\"n\", \"gr\", vim.lsp.buf.references, {})\nvim.keymap.set(\"n\", \"gi\", vim.lsp.buf.type_definition, {})\nvim.keymap.set(\"n\", \"K\", vim.lsp.buf.hover, {})\nvim.keymap.set(\"n\", \"\u003cleader\u003ef\", vim.lsp.buf.format, {})\nvim.keymap.set(\"n\", \"\u003cleader\u003er\", vim.lsp.buf.rename, {})\nvim.keymap.set(\"n\", \"\u003cleader\u003ea\", vim.lsp.buf.code_action, {})\n```\n\n## Neovimer's Creed\n\nThis is my neovim config.\nThere are many like it, but this one is mine.\n\nMy neovim config is my best friend.\nIt is my life.\nI must master it as I must master my life.\n\nWithout me, my neovim config is useless.\nWithout my neovim config, I am useless.\nI must edit my neovim config true.\nI must code more efficiently than my enemy who is trying to outcode me.\nI must outcode him before he outcodes me.\nI will...\n\nMy neovim config and I know that what counts in coding is not the plugins we install,\nthe noise of our mechanical keyboards,\nnor the smoke tests we run.\nWe know that it is the commits that count.\nWe will commit...\n\nMy neovim config is human, even as I, because it is my life.\nThus, I will learn it as a brother.\nI will learn its weaknesses, its strength, its parts, its accessories,\nits themes, and its plugins.\nI will keep my neovim config clean and ready, even as I am clean and ready.\nWe will become part of each other.\nWe will...\n\nBefore Git, I swear this creed.\nMy neovim config and I are the defenders of my codebase.\nWe are the masters of our enemy.\nWe are the saviors of my projects.\n\nSo be it, until victory is Open Source's and there is no enemy, but peace!\n\n## License\n\nThe source code is licensed under a\n[MIT License](https://opensource.org/license/mit/).\n\n[![MIT](https://upload.wikimedia.org/wikipedia/commons/f/f8/License_icon-mit-88x31-2.svg)](https://opensource.org/license/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstoropoli%2Fneovix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstoropoli%2Fneovix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstoropoli%2Fneovix/lists"}