Skip to content

assachandev/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A minimal, fast, and opinionated Neovim setup built from scratch in Lua.

Neovim Lua License Branch

Tokyo Night · lazy-loaded · LSP-first · tmux-ready


Plugins

Category Plugin Description
LSP lsp.lua Mason · mason-lspconfig · nvim-lspconfig
Completion blink.lua blink.cmp · LuaSnip · friendly-snippets
Syntax treesitter.lua Highlighting · indentation · textobjects
Search telescope.lua FZF-native fuzzy finder
Format conform.lua Format on save — black · stylua · shfmt · clang-format
Git gitsigns.lua Hunks · inline blame · stage/reset
Files yazi.lua Yazi TUI file manager
UI ui.lua Tokyo Night · Noice · Lualine · Fidget · mini.indentscope · mini.animate
Editor surround.lua nvim-surround · Flash
Markdown render-markdown.lua Rendered headings · code blocks · checkboxes
Nav tmux-navigator.lua Seamless Neovim ↔ tmux pane navigation

Language Support

Language LSP Server Formatter
Python pyright black
Lua lua_ls stylua
Bash bashls shfmt
C / C++ clangd clang-format
Rust rust_analyzer
Grammar ltex

Mason auto-installs all LSP servers and formatters on first launch.


Keymaps

<leader> = Space — press and hold to open Which-Key hints.

General
Key Action
<leader>w Save file
<leader>q Quit
<leader>Q Force quit all
jk Exit insert mode
<Esc> Clear search highlight
Navigation
Key Action
<C-h/j/k/l> Move between windows / tmux panes
<C-↑/↓/←/→> Resize window
<leader>e File explorer (Yazi)
<C-d> / <C-u> Scroll — cursor stays centered
<leader>sv Vertical split
<leader>sh Horizontal split
Telescope
Key Action
<leader>ff Find files
<leader>fg Live grep
<leader>fb Buffers
<leader>fr Recent files
<leader>fh Help tags
<leader>fc Commands
LSP
Key Action
gd Go to definition
gD Go to declaration
gr References
gi Go to implementation
K Hover documentation
<leader>lr Rename symbol
<leader>la Code action
<leader>ld Line diagnostics
<leader>lx Toggle virtual text
<leader>ll Toggle hover float mode
[d / ]d Prev / next diagnostic
Git
Key Action
]h / [h Next / prev hunk
<leader>gp Preview hunk
<leader>gb Blame line
<leader>gr Reset hunk
<leader>gd Diff this
Textobjects
Key Mode Action
vaf / vif visual Select outer / inner function
vaa / via visual Select outer / inner argument
vac / vic visual Select outer / inner class
]f / [f normal Next / prev function
]a / [a normal Next / prev argument
Spell / Grammar
Key Action
<leader>St Toggle spell check
<leader>Sf Fix suggestion
<leader>Sa Add word to dictionary
<leader>Sx Mark word as wrong
]s / [s Next / prev misspelled word

Installation

Arch Linux — one-liner

bash <(curl -s https://raw.githubusercontent.com/assachandev/nvim/main/install.sh)

Installs all system dependencies, clones the config, then launch nvim to let lazy.nvim handle the rest.

Manual

# Install dependencies
sudo pacman -S neovim git base-devel make nodejs npm python clang fzf yazi ttf-jetbrains-mono-nerd jre-openjdk-headless

# Clone
git clone https://github.com/assachandev/nvim ~/.config/nvim

# Launch — lazy.nvim + Mason install everything on first start
nvim

Requirements

Package Purpose
neovim 0.12+ Core requirement
git · base-devel · make Plugin building (fzf-native)
nodejs · npm pyright and bashls LSP servers
python pyright runtime
clang clangd LSP + clang-format
fzf Telescope native sorter
yazi TUI file manager
jre-openjdk-headless ltex LSP (grammar check) runtime
Nerd Font Icons — e.g. ttf-jetbrains-mono-nerd

For Rust LSP, install the Rust toolchain:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Structure

~/.config/nvim/
├── init.lua                  # Entry point — bootstraps lazy.nvim
├── after/
│   └── ftplugin/
│       └── markdown.lua      # Markdown heading colors
└── lua/
    ├── config/
    │   ├── options.lua       # Vim options
    │   ├── keymaps.lua       # Global keymaps
    │   └── autocmds.lua      # Autocommands
    └── plugins/              # One file per plugin, auto-loaded by lazy.nvim
        ├── lsp.lua
        ├── blink.lua
        ├── ui.lua
        └── ...

About

A minimal, fast, and opinionated Neovim setup

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors