{"id":13895679,"url":"https://github.com/creativenull/nvim-oneconfig","last_synced_at":"2025-05-08T04:49:03.635Z","repository":{"id":62860376,"uuid":"563154193","full_name":"creativenull/nvim-oneconfig","owner":"creativenull","description":"All your nvim config in one single file.","archived":true,"fork":false,"pushed_at":"2022-12-30T22:27:57.000Z","size":179,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-08T04:48:58.277Z","etag":null,"topics":[],"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/creativenull.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-08T02:33:56.000Z","updated_at":"2025-04-10T13:48:21.000Z","dependencies_parsed_at":"2023-01-31T17:00:36.106Z","dependency_job_id":null,"html_url":"https://github.com/creativenull/nvim-oneconfig","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/creativenull%2Fnvim-oneconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/creativenull%2Fnvim-oneconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/creativenull%2Fnvim-oneconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/creativenull%2Fnvim-oneconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/creativenull","download_url":"https://codeload.github.com/creativenull/nvim-oneconfig/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253002842,"owners_count":21838637,"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":[],"created_at":"2024-08-06T18:02:23.177Z","updated_at":"2025-05-08T04:49:03.604Z","avatar_url":"https://github.com/creativenull.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# Neovim configuration guide\n\nA clean, organized pre-configured neovim configuration guide in a single `init.lua`.\n\n[For documentation check `init.lua`.](./init.lua)\n\nIf you want to start from scratch but with some helper functions you can try out [`blank.lua` file](./blank.lua).\n\nCheck [lazy](https://github.com/creativenull/nvim-oneconfig/tree/lazy) branch on using lazy.nvim instead of\npacker.nvim as package manager.\n\nThis `init.lua` comes with the following plugins pre-configured to work, for a more detailed list check the `init.lua`\nand search for `/PLUG`:\n\n- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - configure LSP servers to run on your files/projects.\n- [null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim) - provides an LSP protocol to run your tools such as\n  eslint, prettier, stylua, etc.\n- [mason.nvim](https://github.com/williamboman/mason.nvim) - automatically install LSP servers and tools (like eslint,\n  prettier, etc) for `lspconfig` and `null-ls` to use.\n- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - fuzzy find things like files, grep code,\n  buffers, etc.\n- [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) - a simple file explorer.\n- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - autocompletion framework to provide suggestion within buffers,\n  code, attached LSP servers, etc.\n- [vim-vsnip](https://github.com/hrsh7th/vim-vsnip) - snippets engine plugin and provider via\n  [friendly-snippets](https://github.com/rafamadriz/friendly-snippets).\n- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - mainly used to highlight code using the\n  treesitter parser, a must have for cleaner looking syntax highlighting and many more features like code folding,\n  smart indenting, etc.\n- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - a better looking statusline.\n- [bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - a better looking tabline for buffers.\n- [which-key.nvim](https://github.com/folke/which-key.nvim) - show a tooltip to display keybinds when pressing those\n  keybinds\n- [Comment.nvim](https://github.com/numToStr/Comment.nvim) - add comments based on file type.\n- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - provide git changes on the buffer.\n\n## Motivation\n\nThis is just my take on creating just one single config file to handle all configurations for nvim. Where having\nmultiple files brings an overhead of maintenance of logic in different files, I wanted to take a more straight forward\napproach of keeping it all in one file.\n\nThe aim is to take away the mental model of multiple files and trying to avoid jumping between files to add/update your\nconfigurations and just use one file with a couple simple methods to manage and organize your code within it in order\nto have a better nvim experience.\n\n### Navigation\n\nOne such method is to navigate through different sections with search tags, that comes in the form of words attached\nto different sections in within comments. Using `/` and searching for the tag will jump you to that section.\n\nFor example, if you want to navigate to the packer section to add additional plugins you would then search for `/PLUG`\nand it will take you to that section. The same for when you want to configure some part of your LSP configuration, you\nwould search for `/LSP` and you will be directed to the relevant LSP section of the code.\n\n### Out-of-box LSP configurations + autocompletion and its plugins\n\nLSP configuration comes out-of-box and not tightly bound with packer.nvim, since packer compiles plugins to make them\nfaster to load, this does not work well with LSP and its configuration.\n\nSo LSP configurations are setup outside of packer and loaded by default. The advantage to this is that LSP is loaded\nand ready to work and not just lazy-loaded in order to save time.\n\n### Not built for speed but for efficiency\n\nWhich brings me to another point, at the end of the day this single configuration file is created for your guidance on\nwriting your own configuration without much of a hassle, it's by no means a way to write the most optimized nvim\nconfiguration possible (although it loads quite fast within ~200ms on my machine 😅).\n\nHowever, you are free to take this and optimize it any way you would like, in fact, I would highly encourage you do so\nbecause in the end this is just a guide for your convenience!\n\n## Installation\n\nNOTE: If you have an existing config, you should make a backup of it.\n\n### Linux/MacOS:\n\n```sh\ngit clone https://github.com/creativenull/nvim-one.git ~/.config/nvim\n```\n\n### Windows\n\nIn a powershell terminal:\n\n```sh\ngit clone https://github.com/creativenull/nvim-one.git ~\\AppData\\Local\\nvim\n```\n\n## Troubleshooting\n\n### Errors installing on first time\n\nYou can ignore those and restart nvim, the problem is usually the plugin setup being called before the plugin is even\ninstalled.\n\n### Treesitter highlights don't work on lua files, getting errors on every line\n\nTry to run `:TSUpdate` to get the latest parser for lua.\n\n### Saving file does not reload config, or run packer to install plugins\n\nMake sure you follow the installation method above for it to work properly, if you ran with `ln -s ...` to link the\ndirectory to `~/.config/nvim` then it won't work for now.\n\nAlternatively, you can try `\u003cLeader\u003evs` to reload config manually.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcreativenull%2Fnvim-oneconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcreativenull%2Fnvim-oneconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcreativenull%2Fnvim-oneconfig/lists"}