Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ye-junzhe/BetterNvim

Coding in Neovim elegently
https://github.com/ye-junzhe/BetterNvim

ide lua neovim vim

Last synced: 2 months ago
JSON representation

Coding in Neovim elegently

Awesome Lists containing this project

README

        


BetterNvim



GitHub repo size
GitHub last commit
GitHub top language


📦 Installation

## 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
```