This is my actual Neovim configuration.
Gitgutter + Linting + Inline warnings and errors
GitHub Copilot & Buffer Explorer:
Ack:
Tagbar and Nerdtree:
Radeon and Control+P:
Before you go with the installation, make sure you make a backup of your current Neovim configuration, go to your home folder and rename both .config/nvim/ to different name:
cd ~/.config/ && mv nvim nvim.backup
Let's install:
-
Go to your home folder inside '.config/', clone this repository, and rename it to .vim:
cd ~/.config/ && git clone https://github.com/juanmitaboada/nvim
-
Install dependencies (it will request your sudo password):
~/.config/nvim/vim_install_plugins.sh
-
Start Neovim and it should install all depedencies
-
You may get errors with the YouCompleteMe plugin not loading, the error says: "The ycmd server SHUT DOWN (restart with :YcmRestartServer)". To solve this problem you must execute the install script from YCM inside the plugin folder. Follow the next steps:
cd ~/.local/share/nvim/lazy/YouCompleteMe
./install.py --clang-completer
-
If you are using a SNAP node version, then add this to your ~/.profile:
PATH=/snap/node/current/bin:$PATH
-
You probably want to setup Github Copilot, you will need a working 'node' installation in your computer and then launch the setup using:
:Copilot setup
-
You are ready to go
There are plenty of shortcuts but, these are the basic ones: (default is and is "")
Shortcut | Description | Provided by |
---|---|---|
* | Search forward word under the cursor | vim |
n | Search next word using the same criteria | vim |
Shift+n | Search the previous word using the same criteria | vim |
# | Search backward word under the cursor | vim |
K | Search for the word inside man | vim |
gd | Go to the first definition of the element under the cursor | vim |
F3 | Tagbar panel (on/off) | tagbar |
F4 | NERD Tree (on/off) | nerdtree |
F8 | Save the current session on the current folder | vim |
Ctrl+J | Beautify the buffer using JSON format | vim |
Alt+up | Show all buffers | BufferExplorer |
Alt+down | Close current buffer | vim |
Alt+left | Move to previous buffer | vim |
Alt+right | Move to next buffer | vim |
Ctrl+up | Move current line/block up | vim |
Ctrl+down | Move current line/block down | vim |
Ctrl+right | Indent current line/block one level | vim |
Ctrl+left | Unindent current line/block one level | vim |
Enter | Go to function definition | ctags |
Backspace | Go back from function definition | ctags |
- | ||
[a | Go to previous error | ALE |
]a | Go to next error | ALE |
[A | Go to first error | ALE |
]A | Go to last error | ALE |
- | ||
:Ack colors | Search everywhere in the project for the word "colors" | Ack |
Ctrl+P colors | Search for files with the word "colors" in all the project | ctrlp |
ff | Find files | Telescope |
fg | Fidd live grep | Telescope |
fb | Find buffers | Telescope |
fh | Find help tags | Telescope |
- | - | |
:TagsGenerate! | Will generate one or more tags files | vim-tags |
- | ||
gc{motion} | Comment or uncomment lines that {motion} moves over | Commentary |
{Visual}gc | Comment or uncomment the highlighted lines | Commentary |
gc? | Comment or uncomment [?=count] lines. (Example: gc4) | Commentary |
gcu | gcgc | Uncomment the current and adjacent commented lines |
:7,17Commentary | Comment/Uncomment from line 7 to line 17 both included | Commentary |
- | ||
Copilot | ||
+] | Next suggestion | Copilot |
+[ | Previous suggestion | Copilot |
+l | Accept listed suggestion | Copilot |
+ | Shows a PANEL with suggestions | Copilot |
gr | PANEL: refresh | Copilot |
PANEL: to accept the selected suggestion | Copilot | |
- | ||
Copilot Chat | Copy code with "y" and then: | |
cce | Explain code | Copilot Chat |
cct | Generate tests | Copilot Chat |
Plugin name | Description |
---|---|
Ack | Search tool with an enhanced results list |
Airline | Lean & mean status/tabline for Vim that's light as air |
ALE | ALE (Asynchronous Lint Engine) is a plugin providing linting (sytax checking and semantic errors) |
Arduino Snippets | Snippets files for Arduino |
Arduino Syntax | Syntax file and get syntax highlighting for Arduino functions |
Black | Uncompromising Python code formatter |
Bufexplorer | Quickly and easily switches between buffers |
CCLS | Ccls, which originates from cquery, is a C/C++/Objective-C language server |
CCTree | Plugin generates a symbol dependency tree (aka call tree, call graph) in real-time |
Clang | Use of clang to parse and complete C/C++ source files |
Clang Format | Format your C family code |
Commentary | Comment stuff out |
Copilot | Original GitHub Copilot support |
Copilot Zbirenbaum | Improved GitHub Copilot support |
Copilot Chat | GitHub Copilot Chat support |
CtrlP | Full path fuzzy file, buffer, mru, tag, ... finder |
DelimitMate | This plug-in provides automatic closing of quotes, parentheses, brackets, etc. |
Dispatch | Leverage the power of Vim's compiler plugins without being bound by synchronicity |
Gitgutter | Shows a git diff in the sign column |
ISort | Sort python imports |
Javascript | Syntax highlighting and improved indentation for JavaScript |
Lazy | A moren plugin manager for Neovim |
LSP | Async Language Server Protocol |
Markdown | Syntax highlighting, matching rules and mappings for the original Markdown and extensions |
NerdTree | File system explorer |
Platform.io | This is a collection of helper commands to ease the use of PlatformIO |
Platform.io Neomake | Easily configure neomake to recognize your PlatformIO project's include path |
Plenary | All the lua functions I don't want to write twice |
Radon | Show the cyclomatic complexity of Python code (we will use a slightly modified version at juanmitaboada/vim-radon) |
Repeat | Remaps . in a way that plugins can tap into it |
Ripgrep | A line-oriented search tool that recursively searches the current directory for a regex pattern |
Rust | Rust file detection, syntax highlighting, formatting, Syntastic integration, and more |
Signify | Uses the sign column to indicate added, modified and removed lines in a file that is managed by a VCS |
Shellcheck | Vim wrapper for ShellCheck, a static analysis tool for shell scripts |
Snippets | Snippets files for various programming languages |
Surround | Is all about "surroundings": parentheses, brackets, quotes, XML tags, and more |
Tagbar | Provides an easy way to browse the tags of the current file and get an overview of its structure |
Tags | The Ctags generator |
Telescope | A highly extendable fuzzy finder |
Typescript | Syntax file and other settings for TypeScript |
Unimparired | Collection of handy keymappings designed to improve efficency and accesibiilty within the editor |
YouCompleteMe | A code-completion engine |
Zig | File detection and syntax highlighting for the zig programming language |