Skip to content
/ evim Public

Neovim meets VS Code. The best of both worlds, in your terminal, ready to code.

Notifications You must be signed in to change notification settings

e-cal/evim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evim

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.

Screenshots

Bit outdated but close enough

dashboard

VSCode Colors

errors

full

whichkey

Inspired by LunarVim and ThePrimeagen


Table of contents


Installation

  1. 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
  2. Clone this repo: git clone https://github.com/e-cal/evim ~/.config/nvim
  3. If you don't already have pynvim installed: pip3 install pynvim
  4. Run nvim and do :PackerInstall
  5. 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.

Features

  • 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 in settings.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
  • 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!

Configuration

  • 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
  • Add and remove plugins in lua/plugins.lua
    ↳ install after adding with :PS or :PackerSync
    ↳ configure plugins in plugins/<plugin-name>.lua
    ↳ note that plugins/ is actually a symlink to after/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, change SingleBuffer to false in settings.lua.
You may also want to install bufferline / barbar / something similar to style it

Default Keymap

<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!).

Colorschemes

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.

Plugins

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 in use to fill the github link

About

Neovim meets VS Code. The best of both worlds, in your terminal, ready to code.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages