A modern code-ready editing experience in neovim. Sane default setup so you can jump in and get productive right away. Simple config structure so you can get it working the way you want with minimal hassle.
Lua-based plugins and configuration, and native LSP for a blazingly fast editing experience.
Inspired by LunarVim and ThePrimeagen
Table of contents
- Make sure the folder
~/.config/nvim
(or equivalent) doesn't already exist.- If you have an old config you don't want to lose:
mv ~/.config/nvim ~/.config/nvim.old
- If you have an old config you don't want to lose:
- Clone this repo:
git clone https://github.com/e-cal/evim ~/.config/nvim
- If you don't already have pynvim installed:
pip3 install pynvim
- Run
nvim
and do:PackerInstall
- Update with
git fetch
+git pull
, update plugins with:PackerSync
(or:PS
for short)
Note: in order for symbols to display properly you need a patched font. Any font from here will work.
- Written and configured entirely in lua
- Native LSP
- Completions, linting, formatting, snippets
- Easily add LSP for a language with
:LspInstall
- Enable/disable auto-formatting with
<leader>-l-F
or:FormatToggle
(change the default insettings.lua
)
- Whichkey so you don't need to memorize all the keymappings
- Telescope, neo-tree, harpoon, and aerial for seamless navigation
- Git integration
- Markdown previewing for docs and note-taking (powerful along with telescope to search for text in notes)
- Paste images from your clipboard with
<leader>-m-i
or:PasteImg
- Paste images from your clipboard with
- Built in debugger
- Improvement of life features: autopairs, strip end-of-line whitespace, better quickfix, sane keymappings, tmux integration, and much more...
- Easily configurable and extensible - Make it your own!
- General settings in
settings.lua
- Regular keymappings are defined in
lua/keymap.lua
- Leader-key keymappings in
plugins/whichkey.lua
- Configure language servers with Mason
- all LSP configuration in
lua/lsp.lua
↳ i.e. language servers, cmp, formatters & other sources
- all LSP configuration in
- Add and remove plugins in
lua/plugins.lua
↳ install after adding with:PS
or:PackerSync
↳ configure plugins inplugins/<plugin-name>.lua
↳ note thatplugins/
is actually a symlink toafter/plugin/
NOTE: I have disabled having multiple buffers open (in a single window) in favor of harpoon ala @ThePrimeagen
If you want to edit multiple buffers at a time and see the open tabs, changeSingleBuffer
tofalse
insettings.lua
.
You may also want to install bufferline / barbar / something similar to style it
<space> - leader
<leader>-/ - comment current line
<C-/> - comment multiple lines (takes a motion in normal mode, comments selected in visual)
<M-h> - focus left
<M-j> - focus down
<M-k> - focus up
<M-l> - focus right
<M-TAB> - next buffer
<C-Up> - increase up/down window size
<C-Down> - decrease up/down window size
<C-Right> - increase left/right window size
<C-Left> - decrease left/right window size
K - show hover docs
<C-k> - scroll up hover doc
<C-j> - scroll down hover doc
gd - go to definition
gD - go to declaration
gr - go to references
gi - go to implementation
<C-n> - jump to next diagnostic
<C-p> - jump to prev diagnostic
<C-key>
= Control + key
<M-key>
= Alt + key
Press the leader key (space by default) to bring up whichkey help menu.
If you can't find what you're looking for here, its probably in there (or you can add it there yourself!).
You can try out the installed colorschemes with the keymap <space>-f-c
. To
make the change permanent, change it in settings.lua
.
Some themes may require some extra tweaking to get things looking the way you
want. The relevant files are lua/colors.lua
and plugins/barbar.lua
.
Plugin manager
This list changes often, so best to just look in
lua/plugins.lua
. Find the documentation for each at https://www.github.com/<author>/<plugin>
i.e. copy the string inuse
to fill the github link