My favorite VIM based IDE !!

Chris ddeada0d7b Merge branch 'master' of github.com:ChristianChiarulli/nvim 4 years ago
.github f5aef47d80 Create FUNDING.yml 4 years ago
autoload 013bccb990 updates 4 years ago
ftplugin 9379982b7e vscodium updates 4 years ago
general 1e21c60599 updates 4 years ago
keys 1e21c60599 updates 4 years ago
lua 78fb2c072f all kinds of stuff 4 years ago
plug-config 1e21c60599 updates 4 years ago
snips 3bb390f1eb I hate vimwiki 5 years ago
syntax 0a8ad44a19 added far find and replace 5 years ago
themes 0877a57ab4 Add CoC info 4 years ago
utils 68e484ae2a update keybindings.json for vscode 4 years ago
vim-plug 1e21c60599 updates 4 years ago
vimspector-config 86366002e2 updates including vimspector 4 years ago
vscode 73c87f959e update vscode settings 4 years ago
.gitignore 86366002e2 updates including vimspector 4 years ago
LICENSE 3a732aa7d4 Create LICENSE 5 years ago
README.md fdf6216d1a Change download URL of nvim appimage and change curl commandline args to save properly. (#110) 4 years ago
coc-settings.json 1e21c60599 updates 4 years ago
init.vim 86366002e2 updates including vimspector 4 years ago
nvcode.Dockerfile 3a9311334c updates 4 years ago

README.md

NVCode

NVCode pic

Install in one command

The following will install this config if you have an existing config it will move it to ~/.config/nvim.old

This script only supports Mac, Ubuntu and Arch

bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/install.sh)

Install Neovim

  • Mac

    brew install --HEAD neovim # Nightly version
    
    brew upgrade neovim --fetch-HEAD # Sometimes you need to update
    
  • Ubuntu

    curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage -o /tmp/nvim.appimage
    
    sudo mv /tmp/nvim.appimage /usr/local/bin/nvim
    
    chmod +x /usr/local/bin/nvim
    
  • Arch

    yay -S neovim-git # Latest
    

Clone this repo into your config

git clone https://github.com/ChristianChiarulli/nvim.git ~/.config/nvim

Install python & node support

pip install pynvim
npm i -g neovim

Install Neovim remote

pip install neovim-remote

This will install nvr to ~/.local/bin so you will need to add the following to your bashrc or zshrc

export PATH=$HOME/.local/bin:$PATH

Install clipboard support

  • On Mac pbcopy should be builtin

  • Ubuntu

    sudo apt install xsel
    
  • Arch

    sudo pacman -S xsel
    

(Optional) Install python & node support using virtual environments

Make sure to add these paths somewhere in your config

let g:python3_host_prog = expand("<path to python with pynvim installed>")
let g:python3_host_prog = expand("~/.miniconda/envs/neovim/bin/python3.8") " <- example

let g:node_host_prog = expand("<path to node with neovim installed>")
let g:node_host_prog = expand("~/.nvm/versions/node/v12.16.1/bin/neovim-node-host") " <- example

List of programs you should install

  • ranger
  • ueberzug
  • ripgrep
  • silver_searcher
  • fd
  • universal-ctags
  • lazy git
  • lazy docker

Explanations and installation instruction can be found on my blog

Language Servers

Since CoC doesn't support all languages in there extensions I recommend installing some language servers from scratch and adding them to your coc-settings.json file

Example:

  • bash

npm i -g bash-language-server

  "languageserver": {
  "bash": {
    "command": "bash-language-server",
    "args": ["start"],
    "filetypes": ["sh"],
    "ignoredRootPaths": ["~"]
    }
  }

For FAR to work

:UpdateRemotePlugins

TabNine

To use TabNine enter the following in a buffer:

TabNine::config

NOTE This extension can take up a ton of memory

Vim Gists

To use vim-gists you will need to configure the following:

git config --global github.user <username>

VSCodium & Neo Vim Extension

VSCodium contains build files to generate free release binaries of Microsoft's VS Code.

You can install it on multiple platforms:

  • Mac

    brew cask install vscodium
    
  • Arch

    yay -s vscodium-bin
    
  • Snap

    snap install codium
    

The Neo Vim Extension is available in the VSCode marketplace

I recommend using this alongside the VSCode which-key extension

Along with some of my config files you can find in utils/vscode_config

TODO

  • Better Documentation

CoC extensions to check out

0.5

  • native lsp
  • treesitter

LOW PRIORITY TODO

If anyone reading this has any suggestions about implementing any of the following I will accept a PR, but these are not priority.

  • ale
  • multiple cursors
  • markdown table
  • galaxyline automatically grab colors from colorscheme
  • tpope/vim-dadbod
  • neovide
  • People asked about vimwiki I kinda hate it but maybe I'll add it
  • vimspector this is included but I don't plan on using it much
    • can be used with jdb, pdb, gdb, etc...
  • nvim-dap and nvim-dap-virtual-text (ALL DEBUGGING IN NEOVIM IS CONFUSING AND HARD TO GET WORKING OR I'M JUST DUMB)
  • later manually link pylance
  • resize with arrows in addition to meta
  • how to support meta key on for macOS?