A straightforward Neovim configuration that should work for most developers. A minimalist fork of NvChad's Tinyvim, now simplified into a single configuration file.

- Catpuccin colour scheme.
- Sidebar navigation.
- Tabs by default.
- Easy lazygit access.
- Basic code completion.
- Sensible hotkeys.
- Single file configuration for simplicity.
- Leader key set to
SPACE
.
There are only a few things you'll need to install.
-
Any C Compiler to build the LSP configs:
# MacOS brew install gcc # Ubuntu sudo apt install build-essential # Arch sudo pacman -S base-devel
-
Ripgrep to search through files and folders:
# MacOS brew install ripgrep # Ubuntu sudo apt install ripgrep # Arch sudo pacman -S ripgrep
-
Lazygit for Git things:
# MacOS brew install lazygit # Ubuntu sudo apt install lazygit # Arch sudo pacman -S lazygit
-
Claude Code if you want to use the integrated AI assistant:
# Install Claude Code npm install -g @anthropic/claude-code # Login to Claude Code claude-code login
This whole setup is just a single file, so installing it is pretty straightforward.
-
Backup your existing Neovim config if you haven't already:
mv ~/.config/nvim ~/.config/nvim-backup
-
Clear out your existing Neovim cache and local files:
rm -rf ~/.cache/nvim rm -rf ~/.local/share/nvim
-
Clone this repository into your
~/.config
directory:git clone https://github.com/johnnymatthews/simple-nvim ~/.config/nvim
-
Open Neovim:
nvim
Neovim should download all the extensions, theme files, and dependencies for you.
This configuration uses a minimal approach with just a single file:
init.lua
- Contains all configuration settings, key mappings, plugins, and plugin configurations.
All keyboard shortcuts (also called mappings) for this config can be found within the MAPPINGS
section of the init.lua
file. Here is a complete list of all the keyboard shortcuts:
Leader Key: <Space>
Key | Mode | Action |
---|---|---|
<C-c> |
Normal | Copy current file to clipboard |
<C-c> |
Visual | Copy highlighted text to clipboard |
Key | Mode | Action |
---|---|---|
<C-n> |
Normal | Toggle sidebar navigation |
Key | Mode | Action |
---|---|---|
<leader>ff |
Normal | Find file by filename |
<leader>fo |
Normal | Find files that you recently opened |
<leader>fw |
Normal | Search for files by their content |
Key | Mode | Action |
---|---|---|
<Tab> |
Normal | Move right one tab |
<S-Tab> |
Normal | Move left one tab |
<C-q> |
Normal | Close current buffer |
Key | Mode | Action |
---|---|---|
<leader>ft |
Normal | Open a floating terminal |
<leader>fg |
Normal | Open Lazygit in current directory |
Key | Mode | Action |
---|---|---|
<leader>u |
Normal | Show or hide Undotree on the left |
Key | Mode | Action |
---|---|---|
<C-,> |
Normal | Toggle Claude Code terminal |
<leader>cC |
Normal | Continue conversation |
<leader>cV |
Normal | Verbose mode |
Key | Mode | Action |
---|---|---|
<space>e |
Normal | Open floating diagnostic |
[d |
Normal | Go to previous diagnostic |
]d |
Normal | Go to next diagnostic |
<space>q |
Normal | Set location list |
Key | Mode | Action |
---|---|---|
gD |
Normal | Go to declaration |
gd |
Normal | Go to definition |
K |
Normal | Hover documentation |
gi |
Normal | Go to implementation |
<C-k> |
Normal | Signature help |
<space>wa |
Normal | Add workspace folder |
<space>wr |
Normal | Remove workspace folder |
<space>wl |
Normal | List workspace folders |
<space>D |
Normal | Type definition |
<space>rn |
Normal | Rename symbol |
<space>ca |
Normal/Visual | Code action |
gr |
Normal | Go to references |
Command | Expands To |
---|---|
:W |
:w |
:Q |
:q |
In addition to the keybindings, the following commands are available:
:ClaudeCode
- Toggle Claude Code terminal:ClaudeCodeContinue
- Resume recent conversation:ClaudeCodeResume
- Show conversation picker:ClaudeCodeVerbose
- Enable verbose logging:MasonInstallAll
- Install all configured LSP servers:NvimTreeToggle
- Toggle file tree:NvimTreeFocus
- Focus file tree:ToggleTerm
- Toggle terminal:Telescope
- Access Telescope commands
Since all configuration is in a single init.lua
file, customization is straightforward:
- Open
init.lua
in your editor. - Find the relevant section (OPTIONS, MAPPINGS, PLUGINS, etc.).
- Make your desired changes.
- Save and restart Neovim.
The configuration file is extensively commented to help you understand what each section does. GLHF.