# Editor Setup

Below are my recommended plugin managers and plugins for effective, lightweight programming setups with the text editors Neovim, Vim, VS Code, and Atom. For Neovim/Vim setups, also see [Terminal Setup](terminal-setup).

## Neovim >=0.5 (Fast)

{% embed url="https://github.com/neovim/neovim" %}
Repo with download instructions
{% endembed %}

### Plugin Managers (Choose One)

{% embed url="https://github.com/Shougo/dein.vim" %}
Fast plugin manager but not easy to install
{% endembed %}

{% embed url="https://github.com/savq/paq-nvim" %}
Lua-based fast plugin manager but simplistic (lacks some features like lazy loading)
{% endembed %}

{% embed url="https://github.com/wbthomason/packer.nvim" %}
Lua-based fairly fast plugin manager
{% endembed %}

### Plugins

{% embed url="https://github.com/nvim-treesitter/nvim-treesitter" %}
Lua-based versatile and fast incremental language parser that builds and updates syntax trees in real time
{% endembed %}

{% embed url="https://github.com/neovim/nvim-lspconfig" %}
Lua-based fast and extensible LSP
{% endembed %}

{% embed url="https://github.com/hrsh7th/nvim-compe" %}
Lua-based fast autocompletion that pairs well with the LSP above
{% endembed %}

{% embed url="https://github.com/Aryansh-S/fastdark.vim" %}
Fast and simple One Dark color scheme with syntax highlighting
{% endembed %}

{% embed url="https://github.com/lifepillar/vim-gruvbox8" %}
Fast Gruvbox color scheme with syntax highlighting
{% endembed %}

{% embed url="https://github.com/mizlan/termbufm" %}
Fast and simple embedded terminal "compile and run" implementation, extensible to any language
{% endembed %}

{% embed url="https://github.com/tpope/vim-commentary" %}
Fast and simple commenting plugin
{% endembed %}

{% embed url="https://github.com/JoosepAlviste/nvim-ts-context-commentstring/" %}
Lua-based comment enhancer for the above plugin (you can make c/cpp use // instead).
{% endembed %}

{% embed url="https://github.com/suy/vim-context-commentstring" %}
Only get this if you specifically want to comment embedded Lua in Vim (useless if you just use init.lua)
{% endembed %}

{% embed url="https://github.com/romainl/vim-cool" %}
Fast and simple plugin that makes searching more manageable
{% endembed %}

## Vim >=8 (Fast)

{% embed url="https://github.com/vim/vim" %}
Repo with download instructions
{% endembed %}

### Plugin Managers (Choose One)

{% embed url="https://github.com/Shougo/dein.vim" %}
Fast plugin manager but not easy to install
{% endembed %}

{% embed url="https://github.com/junegunn/vim-plug" %}
Somewhat fast plugin manager, easy to install
{% endembed %}

### Plugins

{% embed url="https://github.com/sheerun/vim-polyglot" %}
Versatile language pack, fast but spacious
{% endembed %}

{% embed url="https://github.com/Aryansh-S/fastdark.vim" %}
Fast and simple One Dark color scheme with syntax highlighting
{% endembed %}

{% embed url="https://github.com/lifepillar/vim-gruvbox8" %}
Fast Gruvbox color scheme with syntax highlighting
{% endembed %}

{% embed url="https://github.com/mizlan/termbufm" %}
Fast and simple embedded terminal "compile and run" implementation, extensible to any language
{% endembed %}

{% embed url="https://github.com/tpope/vim-commentary" %}
Fast and simple commenting plugin
{% endembed %}

{% embed url="https://github.com/romainl/vim-cool" %}
Fast and simple plugin that makes searching more manageable
{% endembed %}

{% embed url="https://github.com/neoclide/coc.nvim" %}
Versatile but slow autocompletion and linting
{% endembed %}

## VS Code (Medium)

{% embed url="https://code.visualstudio.com/" %}
Download page
{% endembed %}

### Plugin Manager

Builtin

### Plugins

{% embed url="https://code.visualstudio.com/docs/languages/cpp" %}
Full instructions for C++
{% endembed %}

## Atom (Slow)

{% embed url="https://atom.io/" %}
Download page
{% endembed %}

### Plugin Manager

Builtin

### Plugins

{% embed url="https://github.com/kriscross07/atom-gpp-compiler" %}
C++-specific compile and run plugin
{% endembed %}

{% embed url="https://github.com/AtomLinter/linter-gcc" %}
C++ linter with diagnostic messages
{% endembed %}
