Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ye-junzhe/BetterNvim
Coding in Neovim elegently
https://github.com/ye-junzhe/BetterNvim
ide lua neovim vim
Last synced: about 2 months ago
JSON representation
Coding in Neovim elegently
- Host: GitHub
- URL: https://github.com/ye-junzhe/BetterNvim
- Owner: ye-junzhe
- Created: 2022-11-05T05:30:00.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-03T04:45:06.000Z (7 months ago)
- Last Synced: 2024-08-05T15:06:27.710Z (5 months ago)
- Topics: ide, lua, neovim, vim
- Language: Lua
- Homepage:
- Size: 108 KB
- Stars: 58
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Preview
![BetterNvim Dashboard](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/Dashboard.png?raw=true)
![BetterNvim Coding](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/Coding.png?raw=true)
![BetterNvim HoverDoc](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/HoverDoc.png?raw=true)
![BetterNvim Errors](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/Errors.png?raw=true)
![BetterNvim FloatTerm](https://github.com/ye-junzhe/Images/blob/main/BetterNvim/pic/FloatTerm.png?raw=true)- [Preview](#preview)
- [Introduction](#introduction)
- [Installation](#installation)
- [Prerequisites](#prerequisites)
- [Glyphs](#glyphs)
- [Optional: Backup existing nvim config](#optional-backup-existing-nvim-config)
- [Clone the repository](#clone-the-repository)
- [Plugins and Lsps and Highlighting](#plugins-and-lsps-and-highlighting)
- [Plugins](#plugins)
- [**Initialization**](#initialization)
- [Lsps](#lsps)
- [Syntax highlighting](#syntax-highlighting)
- [Keybindings 🎥](#keybindings-🎥)
- [Basic](#basic)## Introduction
This repo is to setup a modern IDE style coding experience in Neovim. It has been tested both on the latest macOS and Debian GNU/Linux 12(Bookworm).
- Features:
- VSCode-like Auto-completion setup
- Plugin Manager: [Lazy.nvim](https://github.com/folke/lazy.nvim)
- Mason for native Neovim LSP management
- Tree-sitter for syntax highlighting
- Plugins: Lspsaga, Barbar, Lualine, Nvim-tree, Nvim-cmp, Todotree, Neogit ...
- **[Neovide](https://neovide.dev/) recommended** for much smoother GUI animation## Installation
### Prerequisites
- Neovim >= 0.10.0
- CMake
- Make
- fzf
- ripgrep
- fd
- node
- python3### Glyphs
To show glyphs properly, please install Nerd Fonts first, and set your terminal to use it
- https://www.nerdfonts.com/
### Optional: Backup existing nvim config
```bash
mv $HOME/.config/nvim $HOME/.config/nvim.old
```### Clone the repository
```bash
git clone --depth 1 https://github.com/ye-junzhe/BetterNvim.git $HOME/.config/nvim
```- **IF ON LINUX**
```bash
git clone --depth 1 https://github.com/ye-junzhe/BetterNvim.git -b linux $HOME/.config/nvim
```## Plugins and Lsps and Highlighting
### Plugins
### **Initialization**
- Enter `:Lazy`, then press `U` to update all the plugins
- Enter `:MasonUpdate` else there won't be any packages showing in the Mason panel
- Enter `TSUpdate` to update all Tree-sitter parsers### Lsps
- `:Mason` => Install Lsps(g? for help)
- All configs in [this folder](./lua/Junzhe/plugins/lsp/)
- special setup for Rust development using rust-tools### Syntax highlighting
- `:TSInstall` => Install Tree-sitter highlighting for specific language
- Configs in [treesitter.lua](./lua/Junzhe/plugins/nvim-treesitter.lua)## Keybindings 🎥
Keybindings at [keymaps.lua](./lua/Junzhe/core/keymaps.lua)
And the rest of are in the corresponding *.lua file of the plugin`` = `Command` on macOS
**The `` key has been changed to ``**
### Basic
```bash
e => nvim-tree (g? for help)# Telescope
ff => File search
fr => Recent file search
fw => Word search in current buffer
fs => Word search in all files
ft => Todo-Tree# Lspsaga
gh => Hover doc
gd => Definition(In definition window, o/i => edit)
gf => Find definition and references
oo => show symbols(silimar to tagbar)
a => Code actions
t(open)/tt(close) || ctrl-t => Float Term
dw => Work space diagnostics
db => Buf diagnostics# Barbar
Shift+h => Switch left
Shift+l => Switch right
mp => BufferPick
ctrl-p => BufferPin
ctrl-c => BufferCloseAllButCurrentOrPinned# Navigation
ctrl + h/j/k/l => navigate windows# Hop
j => jump lines
ml => jump words# Save and quit
W => Save
Q => Quit# Bookmark
mm => Create and delete
mi => Add annotation
mc => Clear bookmarks
mx => Clear in all buffers
mn => Next bookmark
ma => Show all# Neogit(Magit clone for Neovim)
gg => Open Neogit
```