Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

yi-json/nvim

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration

Neovim Lua

A personalized, high-performance Neovim configuration built for efficiency in C++, Rust, and Go development. This setup utilizes lazy.nvim for package management and includes a curated suite of plugins for a modern IDE experience.

Home Page: homepg.png Fuzzy Finder: fuzzyfetch.png Workspace View: workspace.png

Fast Setup

If you are on a brand new machine, use the automated setup script to install Neovim, system dependencies (ripgrep, build tools), and synced plugins in one go.

git clone git@github.com:yi-json/nvim.git ~/.config/nvim
cd ~/.config/nvim
chmod +x setup.sh
./setup.sh
nvim

Note: The script does not include the Nerd Font - it needs to be downloaded manually

Prerequisites

If you prefer a manual setup, ensure the following are installed:

  1. Neovim (v0.9.0+): pacman -S neovim (arch), brew install neovim (macOS), or apt install neovim (ubuntu/debian).
  2. Ripgrep: Essential for Telescope fuzzy finding.
  3. Build Tools: gcc or clang for Treesitter parsers.
  4. Nerd Font: Required for icons. JetBrainsMono Nerd Font is recommended.

Plugin Reference

This config follows a modular structure where each plugin has its own dedicated configuration file.

File Plugin / Feature Description
alpha.lua Dashboard The startup screen with the "NEOVIM" header, shortcuts, and philosophical quotes.
comments.lua Comment.nvim Smart commenting utility. Toggle comments with gcc (line) or gc (selection).
completion.lua nvim-cmp Autocompletion engine. Provides suggestions for code, paths, and snippets as you type.
formatting.lua Conform / None-ls Handles auto-formatting (e.g., clang-format, rustfmt) to keep code consistent.
lsp.lua LSP Config Connects to Language Servers (clangd, rust_analyzer, gopls) for Go-to-Definition and Errors.
neotree.lua Neo-tree A file explorer tree for browsing project directories visually.
discord.lua Discord Presence Discord Rich Presence integration to show what you're working on in real-time.
telescope.lua Telescope Fuzzy finder. Quickly find files (<space>f), text (<space>t), or buffers.
theme.lua Colorscheme Controls the visual style and syntax highlighting colors.
toggleterm.lua ToggleTerm Floating/Docked terminal. Toggle it with Ctrl+\.
treesitter.lua Treesitter Advanced syntax highlighting and parsing for better code readability.
vimbegood.lua Vim Be Good A game to practice Vim motions. Run :VimBeGood to start training.
which-key.lua Which-Key Popup menu that shows available keybindings if you pause while typing.
autopairs.lua Autopairs Automatic closing of parentheses, braces, and quotes.
claudecode.lua Claude Code AI coding assistant. Open a Claude terminal panel, send context, and accept/reject diffs inline.

Keybind Cheat Sheet

Based on standard configuration patterns.

General

  • <Space> : Leader Key (used for most custom commands)
  • Ctrl + \ : Toggle Terminal
  • gcc : Comment/Uncomment current line
  • :VimBeGood : Start the Vim training game

Navigation (Telescope)

  • <Space> f : Find File (fuzzy search)
  • <Space> t : Find Text (live grep)
  • <Space> r : Recent Files
  • <Space> c : Edit Config

File Explorer (Neo-tree)

  • <Space> e : Toggle File Explorer
  • a : Add new file (inside explorer)
  • d : Delete file (inside explorer)
  • r : Rename file (inside explorer)

Claude Code (AI Assistant)

  • <Space> ac : Toggle Claude terminal panel
  • <Space> af : Focus Claude terminal
  • <Space> ar : Resume last Claude session
  • <Space> aC : Continue previous conversation
  • <Space> am : Select Claude model
  • <Space> ab : Add current buffer to Claude context
  • <Space> as : Send visual selection to Claude (visual mode)
  • <Space> as : Add file to Claude context (in Neo-tree)
  • <Space> aa : Accept Claude's proposed diff
  • <Space> ad : Deny Claude's proposed diff

LSP (Code Intelligence)

  • gd : Go to Definition
  • K : Hover Documentation
  • <Space> ca : Code Action (Fix errors/refactor)

Directory Structure

~/.config/nvim
├── init.lua              # Entry point
├── lazy-lock.json        # Plugin version lockfile (DO NOT DELETE)
└── lua
    ├── config
    │   ├── keymaps.lua   # Custom keybindings
    │   ├── lazy.lua      # Plugin manager setup
    │   └── options.lua   # Vim options (line numbers, tabs, etc.)
    └── plugins           # Individual plugin configurations

About

my neovim configs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.