https://dotfyle.com/TRC-Loop/neovim-config
Screenshots
Dog does not come with Neovim config!
-
Neovim of course: Install
Install using
snap,dnf,pacmanon Linux eg.sudo snap install neovim -
Luarocks (recommended): Install
Install using
apt,dnf,pacmanon Linux eg.sudo apt install luarocks -
Nerdfont: Download (Meslo), All Fonts
Use any font you'd like. The Font in the Screenshots is Meslo.
-
Supported Terminal: MacOS iTerm2, Windows Terminal, kitty (cross-platform)
The terminal should support a custom font and colors
-
Install using
apt,dnf,pacmanon Linux eg.sudo apt install go -
Python (with pip) for LSP's
-
NPM for LSP's
-
Install using
apt,dnf,pacmanon Linux eg.sudo apt install gitGit is often pre-installed.
-
ripgrep for Telescope live grep
Install using
brew install ripgrep,apt install ripgrep,pacman -S ripgrep
Important
Make sure your Neovim Config Directory is empty/non-existent. Delete it using
rm -rf ~/.config/nvimor windows (Powershell) Remove-Item -Recurse -Force $env:LOCALAPPDATA\nvim, cmd: rmdir /s /q %LOCALAPPDATA%\nvim
MacOS/Linux:
git clone https://github.com/TRC-Loop/neovim-config.git ~/.config/nvimWindows CMD
git clone https://github.com/TRC-Loop/neovim-config.git %LOCALAPPDATA%\nvimWindows Powershell
git clone https://github.com/TRC-Loop/neovim-config.git $env:LOCALAPPDATA\nvimCaution
Custom tweaks you have done to the config will be lost.
MacOS/Linux:
rm -rf ~/.config/nvim && git clone https://github.com/TRC-Loop/neovim-config.git ~/.config/nvimWindows Powershell:
Remove-Item -Recurse -Force $env:LOCALAPPDATA\nvim; git clone https://github.com/TRC-Loop/neovim-config.git $env:LOCALAPPDATA\nvimWarning
Instead of installing LSPs manually, use Mason: :Mason<Enter>
How to use Mason
Old Commands (Manual)
Python:
pip install pyrightLua:
https://luals.github.io/#neovim-install
Go:
go install golang.org/x/tools/gopls@latestPHP:
npm install -g intelephenseHTML:
npm install -g vscode-html-languageserver-binRuns on π€Lazy
<leader> is (space)
| Keybind | Action |
|---|---|
<leader>ff |
Find files (Telescope) |
<leader>fg |
Live grep (Telescope) |
<leader>e |
Toggle file tree (left) |
<leader>o |
Focus file tree |
<leader>fe |
Tree β filesystem source |
<leader>fb |
Tree β open buffers source |
<leader>fG |
Tree β git status source |
<leader>gr |
Reveal current file in tree |
<C-h> / <C-j> / <C-k> / <C-l> |
Jump between windows (tree β editor) |
<leader>+ |
New tab |
<leader>- |
Close tab |
<leader>tt |
List tabs |
<leader>l / <leader>h |
Next / Previous tab |
<leader>1-9 |
Go to tab 1-9 |
<leader>rn |
Rename symbol (LSP) |
<leader>mt |
Tidy markdown table |
gd |
Go to definition |
K |
Hover info |
gcc |
Toggle comment (line) |
gc |
Toggle comment (visual) |
ποΈ Neotree
Always-on file tree pinned to the left. Opens automatically on startup, shows devicons, git status, and diagnostics. Three sources are available and switchable from the winbar tabs at the top of the tree:
- σ° Files β filesystem
- σ° Bufs β open buffers
- Git β git status
Global keys
| Key | Action |
|---|---|
<leader>e |
Toggle the tree |
<leader>o |
Focus the tree |
<leader>fe / <leader>fb / <leader>fG |
Switch source (files / buffers / git) |
<leader>gr |
Reveal current file |
<C-h> / <C-l> |
Hop between tree and editor (no <C-w> needed) |
Keys inside the tree
| Key | Action |
|---|---|
<CR> / o / l |
Open file or expand folder |
h |
Collapse folder |
t |
Open in new tab |
s / v |
Open in horizontal / vertical split |
a / A |
Create file / directory |
d / r |
Delete / rename |
y / x / p |
Copy / cut / paste |
c / m |
Copy / move (with prompt) |
R |
Refresh |
H |
Toggle hidden files |
/ |
Fuzzy filter |
< / > |
Previous / next source |
? |
Show all mappings |
q |
Close the tree |
π Telescope
Open with <leader>ff or <leader>fg for Live-Grep
π Alpha
Used for the nice Startup-Screen (nvim)
βΉοΈ Lualine
Used for the nice little Status bar at the bottom.
Change Datetime format in lua/plugins/lualine.lua in the datetime function.
π Noice
Used for the CMDLine. Delete to have the default CMDLine.
π nvim-cmp
Used for CMDLine Autocompletion. Use <tab>
π¬ Comment.nvim
Toggle comments with gcc or gc in Visual mode.
πͺ nvim-autopairs
Auto closes brackets, quotes, etc.
π³ nvim-treesitter
Better syntax highlighting and parsing.
| Motion | Effect |
|---|---|
β vaf β |
select a function (outer) |
β vifβ |
select inside a function |
β vap β / β vipβ |
select parameter list |
β vacβ / β vic β |
select class block |
β vaC β / β viC β |
select conditional block |
β daf β |
delete function |
β yaf β |
yank function |
π¨ catppuccin
Custom theme settings in catppuccin-custom.lua.
π§ which-key.nvim
Shows keybindings popup when you type a <leader> command.
π§ nvim-lspconfig
LSP support, config in lua/plugins/lsp.lua.
π΅οΈββοΈ git-blame
Shows Git Info in Code.
πΎ neocord
Adds Discord RPC so your friends know what you're up to. Config: lua/plugins/neocord.lua
π₯ nvim-navic
Shows Breadcrumbs in top of the window (eg. in which function you are)
π vim-illuminate
Highlights same words with an underline when hovering.
βΏΈ vim-surround
Says what it does.
ysiw' Makes the current work surrounded with ' Before: test-123 After: 'test-123'
πΏ snacks.nvim
Collection of small QoL plugins: indent guides, big file handling, quick file open, notifications, and more.
βοΈ Mason
Mason is used for managing LSPs.
Open with: :Mason<Enter>
| Motion in Mason | Effect |
|---|---|
β i β |
install |
β uβ |
update |
Important
Installing Mason packages often requires: cargo, go, npm and pip
It is recommended to first install those package managers!
Maybe make a Macro on your keyboard which automatically installs nvim, with this config!
If you've got an Idea which plugin could be added, open a pull request or an Issue, i appreciate all ideas!
Add your own
Can be used as a Cheat-Sheet
gUiw: Make the word you are on full uppercase. eg.test->TESTysiw': Make the word surrounded by'eg.test->'test'zz,zt,zb: Change the view relative to the cursor

