{"id":13837797,"url":"https://github.com/ye-junzhe/BetterNvim","last_synced_at":"2025-07-10T19:30:47.984Z","repository":{"id":158052217,"uuid":"562039240","full_name":"ye-junzhe/BetterNvim","owner":"ye-junzhe","description":"Coding in Neovim elegently","archived":false,"fork":false,"pushed_at":"2024-06-03T04:45:06.000Z","size":111,"stargazers_count":58,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-05T15:06:27.710Z","etag":null,"topics":["ide","lua","neovim","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ye-junzhe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-11-05T05:30:00.000Z","updated_at":"2024-07-30T20:39:02.000Z","dependencies_parsed_at":"2023-09-23T12:12:58.903Z","dependency_job_id":"b285231a-e420-48b2-b7a2-438a1b01750e","html_url":"https://github.com/ye-junzhe/BetterNvim","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/ye-junzhe%2FBetterNvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ye-junzhe%2FBetterNvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ye-junzhe%2FBetterNvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ye-junzhe%2FBetterNvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ye-junzhe","download_url":"https://codeload.github.com/ye-junzhe/BetterNvim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225653891,"owners_count":17502939,"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":["ide","lua","neovim","vim"],"created_at":"2024-08-04T15:01:25.842Z","updated_at":"2025-07-10T19:30:47.979Z","avatar_url":"https://github.com/ye-junzhe.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n \u003ch1\u003e BetterNvim \u003c/h1\u003e\n \u003cp align=\"center\"\u003e\n     \u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/ye-junzhe/BetterNvim?color=A6E3A1\"\u003e\n     \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/ye-junzhe/BetterNvim?color=A6E3A1\"\u003e\n     \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/ye-junzhe/BetterNvim?color=%2300007C\u0026logoColor=%2300007C\"\u003e\n\u003c/p\u003e\n \u003ca href=\"https://github.com/ye-junzhe/BetterNvim/#Installation\"\u003e📦 Installation\u003c/a\u003e\n\u003c/div\u003e\n\n## Preview\n\n![BetterNvim Dashboard](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/Dashboard.png?raw=true)\n![BetterNvim Coding](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/Coding.png?raw=true)\n![BetterNvim HoverDoc](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/HoverDoc.png?raw=true)\n![BetterNvim Errors](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/Errors.png?raw=true)\n![BetterNvim FloatTerm](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/FloatTerm.png?raw=true)\n\n\u003c!--toc:start--\u003e\n- [Preview](#preview)\n- [Introduction](#introduction)\n- [Installation](#installation)\n  - [Prerequisites](#prerequisites)\n  - [Glyphs](#glyphs)\n  - [Optional: Backup existing nvim config](#optional-backup-existing-nvim-config)\n  - [Clone the repository](#clone-the-repository)\n- [Plugins and Lsps and Highlighting](#plugins-and-lsps-and-highlighting)\n  - [Plugins](#plugins)\n  - [**Initialization**](#initialization)\n  - [Lsps](#lsps)\n  - [Syntax highlighting](#syntax-highlighting)\n- [Keybindings 🎥](#keybindings-🎥)\n  - [Basic](#basic)\n\u003c!--toc:end--\u003e\n\n## Introduction\n\nThis repo is to setup a modern IDE style coding experience in Neovim.\n\n- Supported OS\n    - macOS(Tested on the latest macOS)\n    - GNU/Linux(Tested on Debian 12 Bookworm)\n    - Windows Subsystem for Linux(Tested on WSL Ubuntu)\n\n- Features:\n    - VSCode-like Auto-completion setup\n    - Plugin Manager: [Lazy.nvim](https://github.com/folke/lazy.nvim)\n    - Mason for native Neovim LSP management\n    - Tree-sitter for syntax highlighting\n    - Plugins: Lspsaga, Barbar, Lualine, Nvim-tree, Nvim-cmp, Todotree, Neogit ...\n    - **[Neovide](https://neovide.dev/) recommended** for much smoother GUI animation\n\n## Installation\n\n### Prerequisites\n\n- Neovim \u003e= 0.10.0\n- CMake\n- Make\n- fzf\n- ripgrep\n- fd-find\n- node\n- python3\n- tree-sitter-cli (Linux)\n\n### Glyphs\n\nTo show glyphs properly, please install Nerd Fonts first, and set your terminal to use it\n\n- https://www.nerdfonts.com/\n\n### Optional: Backup existing nvim config\n\n```bash\nmv $HOME/.config/nvim $HOME/.config/nvim.old\n```\n\n### Clone the repository\n\n```bash\ngit clone --depth 1 https://github.com/ye-junzhe/BetterNvim.git $HOME/.config/nvim\n```\n\n### Additional step for Linux\n\nIf Neovim on your machine is compiled from source, set a hard link to /usr/bin, for sudoers to find it\n\n```\nln /path/to/nvim /usr/bin/nvim\n```\n\n## Plugins and Lsps and Highlighting\n\n### Plugins\n\n### **Initialization**\n\n- Enter `:Lazy`, then press `U` to update all the plugins\n- Enter `:MasonUpdate` else there won't be any packages showing in the Mason panel\n- Enter `TSUpdate` to update all Tree-sitter parsers\n\n### Lsps\n\n- `:Mason` =\u003e Install Lsps(g? for help)\n- All configs in [this folder](./lua/Junzhe/plugins/lsp/)\n- Mainly focusing on Rust development\n\n### Syntax highlighting\n\n- `:TSInstall` =\u003e Install Tree-sitter highlighting for specific language\n- Configs in [treesitter.lua](./lua/Junzhe/plugins/nvim-treesitter.lua)\n\n## Keybindings 🎥\n\nKeybindings at [keymaps.lua](./lua/Junzhe/core/keymaps.lua)\nAnd the rest of are in the corresponding *.lua file of the plugin\n\n`\u003cD-\u003e` = `Command` on macOS\n\n**The `\u003cleader\u003e` key has been changed to `\u003cspace\u003e`**\n\n### Basic\n\n```bash\n\u003cleader\u003ee =\u003e nvim-tree (g? for help)\ni =\u003e Change directory\nI =\u003e Chanege to the parent folder\no =\u003e Unfold\nO =\u003e Fold\n\n# Telescope\n\u003cleader\u003eff =\u003e File search\n\u003cleader\u003efr =\u003e Recent file search\n\u003cleader\u003efw =\u003e Word search in current buffer\n\u003cleader\u003efs =\u003e Word search in all files\n\u003cleader\u003eft =\u003e Todo-Tree\n\n# Lspsaga\ngh =\u003e Hover doc\ngd =\u003e Definition(In definition window, o/i =\u003e edit)\ngf =\u003e Find definition and references\n\u003cleader\u003eoo =\u003e show symbols(silimar to tagbar)\n\u003cleader\u003ea =\u003e Code actions\n\u003cleader\u003et(open)/tt(close) || ctrl-t =\u003e Float Term\n\u003cleader\u003edw =\u003e Work space diagnostics\n\u003cleader\u003edb =\u003e Buf diagnostics\n\n# Barbar\nShift+h =\u003e Switch left\nShift+l =\u003e Switch right\nShift+f =\u003e Switch buffer forword\nShift+b =\u003e Switch buffer backword\nmp =\u003e BufferPick\nctrl-p =\u003e BufferPin\nctrl-c =\u003e BufferCloseAllButCurrentOrPinned\n\n# Navigation\nctrl + h/j/k/l =\u003e navigate windows\n\n# Hop\n\u003cleader\u003ej =\u003e jump lines\nml =\u003e jump words\n\n# Save and quit\nW =\u003e Save\nQ =\u003e Quit\n\n# Bookmark\nmm =\u003e Create and delete\nmi =\u003e Add annotation\nmc =\u003e Clear bookmarks\nmx =\u003e Clear in all buffers\nmn =\u003e Next bookmark\nma =\u003e Show all\n\n# Neogit(Magit clone for Neovim)\n\u003cleader\u003egg =\u003e Open Neogit\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fye-junzhe%2FBetterNvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fye-junzhe%2FBetterNvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fye-junzhe%2FBetterNvim/lists"}