https://github.com/ye-junzhe/BetterNvim
Coding in Neovim elegently
https://github.com/ye-junzhe/BetterNvim
ide lua neovim vim
Last synced: 7 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 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-03T04:45:06.000Z (over 1 year ago)
- Last Synced: 2024-08-05T15:06:27.710Z (over 1 year 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





- [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.
- Supported OS
- macOS(Tested on the latest macOS)
- GNU/Linux(Tested on Debian 12 Bookworm)
- Windows Subsystem for Linux(Tested on WSL Ubuntu)
- 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-find
- node
- python3
- tree-sitter-cli (Linux)
### 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
```
### Additional step for Linux
If Neovim on your machine is compiled from source, set a hard link to /usr/bin, for sudoers to find it
```
ln /path/to/nvim /usr/bin/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/)
- Mainly focusing on Rust development
### 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)
i => Change directory
I => Chanege to the parent folder
o => Unfold
O => Fold
# 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
Shift+f => Switch buffer forword
Shift+b => Switch buffer backword
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
```