Skip to content

liubang/nvimrc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,974 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration

A fast, practical, and fully Lua-based Neovim setup for day-to-day development.

Neovim

Overview

This repository contains my personal Neovim configuration, shaped around a few goals:

  • Fast startup and responsive editing.
  • Sensible defaults that work out of the box.
  • A modern Lua-first configuration built on top of lazy.nvim.
  • Useful tooling for real projects, including LSP, Telescope, Git, debugging, Markdown, Java, and Bazel workflows.
  • Auto-generated documentation for keymaps and installed plugins so the README stays in sync with the config.

Startup time is typically under 30 ms on a modern machine. That number depends on your hardware, filesystem, and plugin state. The original measurements were taken with rhysd/vim-startuptime.

Table of Contents

Requirements

Required:

  • Neovim >= 0.11.0 with LuaJIT
  • Git >= 2.19.0 for partial clone support
  • A Nerd Font

Recommended:

  • ripgrep for fast project search
  • fd for better file discovery in Telescope pickers
  • Language-specific tools you already use locally, such as LSP servers, formatters, DAP adapters, Java runtimes, or Bazel

Quick Start

If you want to try the configuration without touching your local setup, run it with Docker:

Start Neovim in a container

docker run -it --rm liubang/nvim

Open a local project inside the container

docker run -it --rm -v "$(pwd)":/home/neovim/workspace liubang/nvim

Local Installation

Clone this repository into your Neovim config directory:

git clone https://github.com/liubang/nvimrc ~/.config/nvim
nvim

If you already have a Neovim configuration, back it up first:

mv ~/.config/nvim ~/.config/nvim.bak
git clone https://github.com/liubang/nvimrc ~/.config/nvim
nvim

On first launch, lazy.nvim will install the configured plugins automatically.

What You Get

  • Editor UX: bufferline, statusline, file explorers, surrounding/comment helpers, and smooth motion/navigation improvements.
  • Project navigation: Telescope, live grep, recent files, task pickers, and outline views.
  • Coding support: Treesitter, LSP, completion, snippets, formatting, and diagnostics.
  • Git workflow: signs, blame, diff views, and buffer-aware navigation.
  • Debugging: nvim-dap with keymaps for breakpoints, stepping, REPL, and widgets.
  • Language extras: dedicated support for Java, Markdown, LaTeX, and a few personal productivity plugins.

Screenshots

Neovim

Neovim

Notes

The Keymaps and Plugins sections below are generated from the actual configuration, which helps keep the documentation accurate as the setup evolves.

Keymaps

Key Description Mode
n Next search result n, x, o
N Previous search result n, x, o
<S-j> Move lines down n, x
<S-k> Move lines up n, x
<Esc><Esc> Clear hlsearch n
/ Search in visually selected region x
< Keep the visually selected area when indenting x
> Keep the visually selected area when indenting x
p Replace the selection without overwriting the default register x
<Leader>bp Previous n
<Leader>bn Next n
<Leader>bf First n
<Leader>bl Last n
<Leader>ww Toggle between open windows n
<leader>wd Delete window n
<Leader>wh Move to the left window n
<Leader>wl Move to the right window n
<Leader>wj Move to the bottom window n
<Leader>wk Move to the top window n
<Leader>ws Split window horizontally n
<Leader>wv Split window vertically n
<C-Up> Increase window height n
<C-Down> Decrease window height n
<C-Left> Decrease window width n
<C-Right> Increase window width n
j accelerated-jk.nvim Accelerated gj movement n
k accelerated-jk.nvim Accelerated gk movement n
<C-b> asynctasks.vim Build current file n
<C-r> asynctasks.vim Run current file n
<C-x> asynctasks.vim Build and run current file n
<Leader>1 bufferline.nvim Go to visible buffer 1 n
<Leader>2 bufferline.nvim Go to visible buffer 2 n
<Leader>3 bufferline.nvim Go to visible buffer 3 n
<Leader>4 bufferline.nvim Go to visible buffer 4 n
<Leader>5 bufferline.nvim Go to visible buffer 5 n
<Leader>6 bufferline.nvim Go to visible buffer 6 n
<Leader>7 bufferline.nvim Go to visible buffer 7 n
<Leader>8 bufferline.nvim Go to visible buffer 8 n
<Leader>9 bufferline.nvim Go to visible buffer 9 n
<leader>bo bufferline.nvim Delete other buffers n
s flash.nvim Flash n, x, o
S flash.nvim Flash Treesitter n, x, o
r flash.nvim Remote Flash o
R flash.nvim Treesitter Search o, x
<Leader>hb gitsigns.nvim Show the line git blame in a floating window n
<Leader>hd gitsigns.nvim Perform a vimdiff on the given file n
<Leader>hr gitsigns.nvim Reset the lines of the hunk at the cursor position n
<Leader>hs gitsigns.nvim Stage the hunk at the cursor position n
<leader>sr grug-far.nvim Search and Replace n, v
<Leader>mp markview.nvim Markdown Preview n
<leader>bd mini.bufremove Delete Buffer n
<leader>bD mini.bufremove Delete Buffer (Force) n
gc mini.comment Toggle line comment n, x
gcc mini.comment Toggle line comment n
<leader>ft mini.files Toggle mini.files (Directory of Current File) n
<leader>fT mini.files Toggle mini.files (cwd) n
<leader>dB nvim-dap Breakpoint Condition n
<leader>db nvim-dap Toggle Breakpoint n
<leader>dc nvim-dap Continue n
<leader>da nvim-dap Run with Args n
<leader>dC nvim-dap Run to Cursor n
<leader>dl nvim-dap Run Last n
<leader>di nvim-dap Step Into n
<leader>do nvim-dap Step Out n
<leader>dO nvim-dap Step Over n
<leader>dp nvim-dap Pause n
<leader>dt nvim-dap Terminate n
<leader>dj nvim-dap Down n
<leader>dk nvim-dap Up n
<leader>dg nvim-dap Go to Line (No Execute) n
<leader>ds nvim-dap Session n
<leader>dr nvim-dap Toggle REPL n
<leader>dw nvim-dap Widgets n
<C-v> nvim-treesitter Increment Selection n
V nvim-treesitter Decrement Selection x
- oil.nvim Open parent directory n
<Leader>- oil.nvim Open parent directory n
<Leader>tl outline.nvim Open or close the outline window n
<Leader>ff telescope.nvim List files n
<Leader>rf telescope.nvim List recent files n
<Leader>ag telescope.nvim Grep in files n
<Leader>Ag telescope.nvim Searches for the string under your cursor (root dir) n
<Leader>bb telescope.nvim Lists open buffers in current neovim instance n
<Leader>ts telescope.nvim Lists AsyncTasks for current buffer n
<Leader>br telescope.nvim Bazl run n
<Leader>bt telescope.nvim Bazel test n
<Leader>bs telescope.nvim Bazel build n
<leader>vv venn.nvim Toggle draw box n
<C-t> vim-floaterm Toggle floaterm n, t
<C-n> vim-floaterm Create a new floaterm window t
<C-k> vim-floaterm Goto previous floaterm window t
<C-j> vim-floaterm Goto next floaterm window t
<C-d> vim-floaterm Kill floaterm t

Plugins

About

neovim configuration. 🌸

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors