{"id":29101539,"url":"https://github.com/avimitin/nvim","last_synced_at":"2025-06-28T21:01:42.174Z","repository":{"id":37627808,"uuid":"331929717","full_name":"Avimitin/nvim","owner":"Avimitin","description":"Handy, maintainable, multi-languages supported neovim configuration.","archived":false,"fork":false,"pushed_at":"2025-06-27T04:39:10.000Z","size":22142,"stargazers_count":271,"open_issues_count":0,"forks_count":48,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-06-28T12:12:12.632Z","etag":null,"topics":["dotfile","dotfiles","editor","ide","linux","lua","neovim","neovim-config","nvim","nvim-cmp","nvim-config","telescope","vim","vimrc","vscode"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Avimitin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-01-22T11:44:44.000Z","updated_at":"2025-06-27T04:39:14.000Z","dependencies_parsed_at":"2023-02-18T05:01:04.022Z","dependency_job_id":"d02842bd-a094-4f9d-a595-ae0e2e95c055","html_url":"https://github.com/Avimitin/nvim","commit_stats":null,"previous_names":[],"tags_count":98,"template":false,"template_full_name":null,"purl":"pkg:github/Avimitin/nvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avimitin%2Fnvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avimitin%2Fnvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avimitin%2Fnvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avimitin%2Fnvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Avimitin","download_url":"https://codeload.github.com/Avimitin/nvim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avimitin%2Fnvim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262497000,"owners_count":23320289,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dotfile","dotfiles","editor","ide","linux","lua","neovim","neovim-config","nvim","nvim-cmp","nvim-config","telescope","vim","vimrc","vscode"],"created_at":"2025-06-28T21:01:18.685Z","updated_at":"2025-06-28T21:01:42.166Z","avatar_url":"https://github.com/Avimitin.png","language":"Lua","readme":"# Neovim Configuration\n\nThis Neovim configuration is built with a focus on a simple, elegant, and\ndistraction-free user interface. The goal is to enhance coding usability rather\nthan overwhelm with fancy, unnecessary UI elements. I will consistently add and\ntest plugins with multiple coding scenario, keep only those are suitable for\ndaily use.\n\n- Clean \u0026 Minimalist Aesthetic: Enjoy a calm, focused coding environment that\nprioritizes what matters most: your code.\n- Streamlined Workflow: Optimized for efficiency, allowing you to code faster\nand with less friction.\n- Essential Tooling: Includes carefully selected plugins and settings that\ngenuinely improve the coding experience without adding clutter.\n- Performance-Oriented: Lightweight and responsive, ensuring a smooth\nexperience even with larger projects.\n- Focus on Readability: UI elements are designed to be clear and unobtrusive,\nmaking your code the star of the show.\n- Usability First: Every feature and plugin is chosen with practical coding\nbenefits in mind, not just for visual appeal.\n\n## Getting Start\n\nThis configuration is compatible with neovim 0.10+ version.\n\n```bash\ngit clone --depth=1 https://github.com/Avimitin/nvim.git ~/.config/nvim\n```\n\nFinally, input `nvim` to open the editor, and all plugins will be downloaded automatically.\n\n```bash\nnvim\n```\n\n### Nix nerds\n\nTo use this in your home-manager, you can use the `xdg.configFile` attribute:\n\n```nix\n{ pkgs }:\n{\n  xdg.configFile = {\n    neovim = {\n      target = \"nvim\";\n      source = pkgs.fetchFromGitHub {\n        repo = \"nvim\";\n        owner = \"Avimitin\";\n        rev = \"...\";\n        hash = \"...\";\n      }\n    };\n  };\n}\n```\n\nDiagnostic error/warning/hint are highlighted with undercurl, please use\n[kitty](https://sw.kovidgoyal.net/kitty/),\n[wezterm](https://wezfurlong.org/wezterm/index.html)\nor anyother terminal that support undercurl.\n\nIf you are using tmux, to have a correct display, you can try my configuration below:\n\n```tmux\n# (MUST) Enable 256 color for tmux\nset -g default-terminal \"tmux-256color\"\n\n# (Optional, choose any of them)\n# Enable true color and undercurl for wezterm\nset -as terminal-features \",wezterm*:RGB\"\nset -as terminal-features \",wezterm*:usstyle\"\n# Same as above, but for kitty. (kitty doesn't support Windows so I have to keep two configuration here)\nset -as terminal-features \",kitty*:RGB\"\nset -as terminal-features \",kitty*:usstyle\"\n# Same as above, but for SSH. This is useful because I am using `alias ssh=\"TERM=xterm-256color exec ssh\"`\nset -as terminal-features \",xterm-256color*:RGB\"\nset -as terminal-features \",xterm-256color*:usstyle\"\nset -as terminal-overrides \",xterm*:Tc\"\n\n# (MUST) This hijack the neovim undercurl char sequence, to avoid tmux escape them.\nset -as terminal-overrides ',*:Smulx=\\E[4::%p1%dm'\n```\n\n## Project Structure\n\n- `after/ftplugin/\u003clang\u003e.lua`: missing default configuration for filetypes\n- `lua`: the configuration core\n\n    * `key-mapping.lua`: my modification to the built-in key mappings\n    * `pack.lua`: script to download lazy.nvim plugin manager\n    * `core/`: my modification to the built-in options and auto commands\n    * `completion/`: plugins and configuration for LSP and vim command completion\n    * `git/`: plugin and configuration for using git in Neovim\n    * `lang/`: plugins and configuration for using LSP server and get diagnostic in Neovim\n    * `libs/`: functions that I don't want to write twice\n    * `tools/`: miscellaneous plugins that can enhance editing experience\n    * `treesitter/`: plugins for text object highlight and editing\n    * `ui/`: plugins for decorating the neovim\n\n- `ftdetect`: List of script to help neovim identify filetype for some file, not important.\n- `indent`: List of script to help neovim properly set indentation, not important.\n- `syntax`: Additional syntax detection for some file type, not important.\n\n\n## Treesitter parsers in nix\n\n- For normal user: make sure gcc is installed, then run `:TSInstall \u003clanguage\u003e` to compile and install corresponding treesitter plugin\n- For nix user: you can add this repository as an overlay and use the pre-bundled neovim:\n\n```nix\n# flake.nix\n{\n  description = \"Simple home-manager neovim configuration\";\n\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    my-neovim.url = \"github:Avimitin/nvim\";\n    home-manager = {\n      url = \"github:nix-community/home-manager\";\n      inputs.nixpkgs.follows = \"nixpkgs\";\n    };\n  };\n\n  outputs = { self, nixpkgs, flake-utils, home-manager, my-neovim }: {\n    homeConfiguration = home-manager.lib.homeManagerConfiguration {\n      # import my overlay, it will add a new `neovim-nightly` derivation into your nixpkgs\n      pkgs = import nixpkgs { system = \"x86_64-linux\"; overlays = [ my-neovim.overlays.default ];  };\n      modules = [\n        ({ pkgs }: {\n          # Then add the pre-bundled neovim into your home configuration\n          home.packages = [\n            pkgs.neovim-nightly\n          ];\n        })\n      ];\n    };\n  };\n}\n```\n\n## License\n\nThis configuration since commit `912416ae9c4b55501b23a91d774b567ba8697dd1` are\nlicenced under the Apache 2.0 license.\n\n另附：禁止在 CSDN，bilibili 等国内平台使用该配置文件进行任何活动。\n你只保有自己修改部分的权利。\n\n# Additional notes\n\n## About treesitter bumping\n\n- Run `:Lazy sync`\n- Remove hash in ./nix/nvim-treesitter-lock-file.nix\n- Run `nix build '.#neovim-nightly'`\n- Update hash\n- Run `./bump_treesitter.hs`\n- Run `nix build '.#neovim-nightly'`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favimitin%2Fnvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favimitin%2Fnvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favimitin%2Fnvim/lists"}