{"id":26291929,"url":"https://github.com/reybits/config-nvim","last_synced_at":"2025-05-08T03:24:39.572Z","repository":{"id":278899510,"uuid":"936623644","full_name":"reybits/config-nvim","owner":"reybits","description":"My Neovim config.","archived":false,"fork":false,"pushed_at":"2025-03-14T16:00:24.000Z","size":1483,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T16:46:07.438Z","etag":null,"topics":["config","linux","macos","nvim"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/reybits.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}},"created_at":"2025-02-21T12:02:10.000Z","updated_at":"2025-03-14T16:00:27.000Z","dependencies_parsed_at":"2025-03-14T18:30:19.814Z","dependency_job_id":null,"html_url":"https://github.com/reybits/config-nvim","commit_stats":null,"previous_names":["andreyugolnik/config-nvim","reybits/config-nvim"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reybits%2Fconfig-nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reybits%2Fconfig-nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reybits%2Fconfig-nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reybits%2Fconfig-nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reybits","download_url":"https://codeload.github.com/reybits/config-nvim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243668231,"owners_count":20328042,"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":["config","linux","macos","nvim"],"created_at":"2025-03-15T01:17:54.914Z","updated_at":"2025-05-08T03:24:39.563Z","avatar_url":"https://github.com/reybits.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nvim from Scratch\n\n[![Plugins](https://dotfyle.com/reybits/config-nvim-nvim/badges/plugins?style=flat)](https://dotfyle.com/reybits/config-nvim-nvim)\n[![leaderkey](https://dotfyle.com/reybits/config-nvim-nvim/badges/leaderkey?style=flat)](https://dotfyle.com/reybits/config-nvim-nvim)\n[![plugin-manager](https://dotfyle.com/reybits/config-nvim-nvim/badges/plugin-manager?style=flat)](https://dotfyle.com/reybits/config-nvim-nvim)\n\nThis repository contains my custom Neovim configuration for Linux, macOS, and potentially Windows. The setup is built from scratch and includes only the plugins I actively use in my workflow. I primarily use Neovim as a C++ IDE for cross-platform game development.\n\nFor the best experience, use it alongside my [config-tmux](https://github.com/reybits/config-tmux.git) repository.\n\n![blink-cmp](https://github.com/user-attachments/assets/1d7be7dc-d8b4-4207-8f87-2e33c22b9e36)\n\n## 📦 Install\n\n```sh\ngit clone https://github.com/reybits/config-nvim.git ~/.config/nvim\n```\n\n## ⚡️ Requirements\n\n- [fzf](https://github.com/junegunn/fzf): a command-line fuzzy finder.\n- [viu](https://github.com/atanunq/viu): a terminal image viewer with native support for iTerm and Kitty.\n- [fd](https://github.com/sharkdp/fd): a better version of the find utility.\n- [ripgrep(rg)](https://github.com/BurntSushi/ripgrep): a better version of the grep utility.\n\n## ✨ Features\n\n### Enabled by default\n\n- Plugin management via [lazy.nvim](https://github.com/folke/lazy.nvim.git).\n- Tool manager via [mason.nvim](https://github.com/williamboman/mason.nvim).\n- Startup screen via [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim).\n- Sessions support via [mini.sessions](https://github.com/echasnovski/mini.sessions).\n- Colorscheme via [kanagawa.nvim](https://github.com/rebelot/kanagawa.nvim).\n- Mapping hint via [which-key.nvim](https://github.com/folke/which-key.nvim).\n- Git integration via [neogit](https://github.com/NeogitOrg/neogit), [vim-fugitive](https://github.com/tpope/vim-fugitive), [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim), and [gitlinker.nvim](https://github.com/ruifm/gitlinker.nvim).\n- File explorer via [oil.nvim](https://github.com/stevearc/oil.nvim).\n- Language server protocol (LSP) support via [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig).\n- Code auto-completion via [blink-cmp](https://github.com/Saghen/blink.cmp).\n- Code debugging via [mfussenegger/nvim-dap](https://github.com/mfussenegger/nvim-dap) and [rcarriga/nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui).\n- Code commenting via [ts-comments.nvim](https://github.com/folke/ts-comments.nvim).\n- Code formatting via [conform.nvim](https://github.com/stevearc/conform.nvim).\n- Code highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter).\n- TMUX support via [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator).\n- Improved quickfix UI via [quicker.nvim](https://github.com/stevearc/quicker.nvim).\n- Fast navigation, lookup, and more via [fzf-lua](https://github.com/ibhagwan/fzf-lua).\n- Buffer navigation via [flash.nvim](https://github.com/folke/flash.nvim).\n- Bookmarks via [harpoon](https://github.com/ThePrimeagen/harpoon) v2.\n- Undo tree explorer via [undotree](https://github.com/mbbill/undotree).\n- Markdown writing and previewing via [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) and [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim).\n- Hide passwords/keys via [cloak.nvim](https://github.com/laytan/cloak.nvim).\n- Blind typing trainer via [typr](https://github.com/nvzone/typr).\n- And more...\n\n### Optional\n\n- Telescope [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim).\n- File tree explorer via [nvim-tree.lua](https://github.com/nvim-tree/nvim-tree.lua).\n- File tree explorer via [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim).\n- LazyGit [lazygit.nvim](https://github.com/kdheepak/lazygit.nvim).\n- Octo [octo.nvim](https://github.com/pwntester/octo.nvim).\n- Codeium [neocodeium](https://github.com/monkoose/neocodeium).\n- Colorscheme Nightfox [nightfox.nvim](https://github.com/EdenEast/nightfox.nvim).\n- Folding nvim-ufo [kevinhwang91/nvim-ufo](https://github.com/kevinhwang91/nvim-ufo).\n\n## ⚙️ Customization\n\nTo customize plugins, enable, or disable integration with other tools, inside the `nvim/lua/scratch/custom` directory, create a `plugin-name.lua` file with the plugin name and add custom settings.\n\n### Navigation related\n\n![fzf-lua](https://github.com/user-attachments/assets/b075a508-b0d1-4fc4-b3ee-2686fb94d756)\n\nBy default, fzf-lua and oil.nvim used as the navigation plugins.\n\n#### Telescope\n\nYou can use Telescope as main plugin by creating a `telescope.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/telescope.lua\n\nreturn {\n    -- Use telescope instead of fzf-lua\n    require(\"scratch.custom.optional.telescope\"),\n    { \"ibhagwan/fzf-lua\", enabled = false },\n}\n```\n\n#### Neo-tree\n\nYou can use neo-tree as main plugin by creating a `neo-tree.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/neo-tree.lua\n\nreturn {\n    -- Use nvim-tree instead of neo-tree\n    require(\"scratch.custom.optional.neo-tree\"),\n    { \"stevearc/oil.nvim\", enabled = false },\n}\n```\n\n#### Nvim-tree\n\nYou can use nvim-tree as main plugin by creating a `nvim-tree.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/nvim-tree.lua\n\nreturn {\n    -- Use nvim-tree instead of neo-tree\n    require(\"scratch.custom.optional.nvim-tree\"),\n    { \"stevearc/oil.nvim\", enabled = false },\n}\n```\n\n### Git related\n\n![neogit](https://github.com/user-attachments/assets/b1860e9e-d4f0-44ff-96d7-57687dcf3c54)\n\nBy default, Neogit and vim-fugitive is used as the Git plugin.\n\n#### LazyGit as main git plugin\n\nYou can use LazyGit as main git plugin by creating a `lazygit.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/lazygit.lua\n\nreturn {\n    -- Use LazyGit instead of Neogit and vim-fugitive\n    require(\"scratch.custom.optional.lazygit\"),\n    { \"NeogitOrg/neogit\", enabled = false },\n    { \"tpope/vim-fugitive\", enabled = false },\n}\n```\n\n#### Fugitive as main git plugin\n\nYou can use Fugitive as main git plugin by creating a `fugitive.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/fugitive.lua\n\nreturn {\n    -- Use vim-fugitive and its companions instead of Neogit\n    require(\"scratch.custom.optional.vim-rhubarb\"),\n    require(\"scratch.custom.optional.vim-flog\"),\n    { \"NeogitOrg/neogit\", enabled = false },\n}\n```\n\n#### Octo as GitHub companion\n\nYou can add support for the Octo plugin to work with GitHub by creating a `octo.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/octo.lua\n\nreturn {\n    require(\"scratch.custom.optional.octo\"),\n}\n```\n\n### AI related\n\n#### Copilot\n\n![copilot chat](https://github.com/user-attachments/assets/bbfb6ab6-2f88-4ffe-a7a1-8cd8a39a42a5)\n\nBoth Copilot and CopilotChat plugins are enabled by defautl. Copilot integrated into the completion menu via blink-cmp.\n\nYou can disable Copilot by creating a `copilot.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/copilot.lua\n\nreturn {\n    -- Disable Copilot and Copilot Chat\n    { \"github/copilot.vim\", enabled = false },\n    { \"CopilotC-Nvim/CopilotChat.nvim\", enabled = false },\n}\n```\n\n#### Codeium\n\nCodeium is disabled by default. However, you can enable it by creating a `codeium.lua` file with the following content:\n\n```lua\n-- nvim/lua/scratch/custom/codeium.lua\n\nreturn {\n    -- Enable Codeium without the completion menu support,\n    -- use mappings instead:\n    -- \u003ctab\u003e to accept suggestion\n    -- \u003ca-e\u003e to cycle through suggestions\n    require(\"scratch.custom.optional.neocodeium\"),\n}\n```\n\n### Editor related\n\n#### Folding via UFO\n\nHere’s a detailed guide on enabling and extending folding with nvim-ufo in Neovim.\n\n```lua\n-- nvim/lua/scratch/custom/editor.lua\n\nreturn {\n    -- Enable nvim-ufo\n    require(\"scratch.custom.optional.nvim-ufo\"),\n}\n```\n\n## 🚀 Useful links\n\n- [fzf-lua wiki](https://github.com/ibhagwan/fzf-lua/wiki).\n- [lazydev.nvim](https://github.com/folke/lazydev.nvim).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freybits%2Fconfig-nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freybits%2Fconfig-nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freybits%2Fconfig-nvim/lists"}