/LunarVim

A Neovim config made with sane defaults

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

   _..._                             
 .'   (_`.    _                         __     ___           
:  .      :  | |   _   _ _ __   __ _ _ _\ \   / (_)_ __ ___  
:)    ()  :  | |  | | | | '_ \ / _` | '__\ \ / /| | '_ ` _ \ 
`.   .   .'  | |__| |_| | | | | (_| | |   \ V / | | | | | | |
  `-...-'    |_____\__,_|_| |_|\__,_|_|    \_/  |_|_| |_| |_|

GitHub license Open Source? Yes! PRs Welcome Patreon donate button follow on Twitter

LunarVim Demo

  1. This project aims to help one transition away from VSCode, and into a superior text editing experience. (Just making this clear)

  2. This is also a community project, if you would like to see support for a feature or language consider making a PR.

  3. This project will do it's best to include core features you would expect from a modern IDE, while making it easy to add or remove what the user wants.

Install In One Command!

Make sure you have the newest version of Neovim

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

After installation run nvim and then :PackerInstall

Get the latest version of Neovim

cd ~
sudo rm -r neovim
git clone https://github.com/neovim/neovim
cd neovim
sudo make CMAKE_BUILD_TYPE=Release install
cd ~
sudo rm -r neovim

or if you are on Arch you can get it from the AUR

yay -S neovim-nightly-git

Clipboard Support

  • On Mac pbcopy should be built-in

  • Ubuntu

    sudo apt install xsel
  • Arch

    sudo pacman -S xsel
  • WSL2

    Make sure ~/bin is in your path in this case.

    curl -sLo/tmp/win32yank.zip https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x64.zip
    unzip -p /tmp/win32yank.zip win32yank.exe > /tmp/win32yank.exe
    chmod +x /tmp/win32yank.exe
    mv /tmp/win32yank.exe ~/bin

LSP

To install a supported language server:

  :LspInstall <your_language_server>

Most common languages should be supported out of the box, if yours is not I would welcome a PR

For a more in depth LSP support: link

Useful Programs

LunarVim depends on the following:

ranger
ueberzug
ripgrep
pynvim
neovim-remote

EFM server

In order for linters and formatters to work you will need to install efm-langserver

:LspInstall efm

Formatters and Linters

Python

pip3 install --user flake8
pip3 install --user yapf

Lua

luarocks install --server=https://luarocks.org/dev luaformatter

Yaml, Json, Javascript, HTML, CSS

npm install -g prettier

Markdown

pandoc

De-bugging

To set up your particular debugger, look here: link

VSCodium

I recommend you support Free/Libre versions if you plan to use VSCode:

After installing the Neovim extension in VSCode

I recommend using this alongside the VSCode which-key extension

You will also need settings.json and keybindings.json which can be found in utils/vscode_config

Point the nvim path to your nvim binary

Point your init.vim path to:

$HOME/.config/nvim/vimscript/lv-vscode/init.vim

TODO

HIGH PRIORITY

  • Move user config into config.lua ts-comment string for react
  • From here I will update for bug fixes and implement low priority features when I have time
  • different key to advance through snippets

LOW PRIORITY

PLUGIN BUGS

REACT COMMENTING IS A NIGHTMARE (the filetype is just not recognized idk why)