LunarVim/README.md

201 lines
5.2 KiB
Markdown
Raw Normal View History

2021-04-15 06:17:48 +02:00
```
_..._
.' (_`. _ __ ___
: . : | | _ _ _ __ __ _ _ _\ \ / (_)_ __ ___
:) () : | | | | | | '_ \ / _` | '__\ \ / /| | '_ ` _ \
`. . .' | |__| |_| | | | | (_| | | \ V / | | | | | | |
`-...-' |_____\__,_|_| |_|\__,_|_| \_/ |_|_| |_| |_|
```
2021-03-15 02:51:54 +01:00
2021-03-30 07:43:05 +02:00
2021-04-15 06:23:45 +02:00
[![GitHub license](https://img.shields.io/github/license/ChristianChiarulli/LunarVim)](https://github.com/ChristianChiarulli/LunarVim/blob/master/LICENSE)
2021-04-15 06:17:48 +02:00
[![Open Source? Yes!](https://badgen.net/badge/Open%20Source%20%3F/Yes%21/blue?icon=github)](https://github.com/ChristianChiarulli/lunarvim)
2021-03-30 07:43:05 +02:00
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
2021-03-30 07:57:52 +02:00
<a href="https://patreon.com/chrisatmachine" title="Donate to this project using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a>
2021-03-30 08:10:40 +02:00
<a href="https://twitter.com/intent/follow?screen_name=chrisatmachine"><img src="https://img.shields.io/twitter/follow/chrisatmachine?style=social&logo=twitter" alt="follow on Twitter"></a>
2021-03-27 19:32:45 +01:00
2021-04-15 06:17:48 +02:00
![LunarVim Demo](./utils/media/demo.png)
2021-03-27 19:30:24 +01:00
2021-04-15 06:17:48 +02:00
1. This project aims to help one transition away from VSCode, and into a superior text editing experience. (Just making this clear)
2021-03-27 19:28:02 +01:00
2021-04-15 06:17:48 +02:00
2. This is also a community project, if you would like to see support for a feature or [language](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md) consider making a PR.
2021-03-27 19:23:59 +01:00
2021-04-15 06:17:48 +02:00
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.
2021-03-29 23:00:11 +02:00
2021-03-24 00:52:56 +01:00
## Install In One Command!
2021-03-24 01:00:40 +01:00
Make sure you have the newest version of Neovim
2021-03-24 04:52:35 +01:00
``` bash
2021-04-15 06:17:48 +02:00
bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/lunarvim/master/utils/installer/install.sh)
2021-03-24 00:52:56 +01:00
```
2021-03-24 01:00:40 +01:00
After installation run `nvim` and then `:PackerInstall`
2021-03-20 22:22:44 +01:00
## Get the latest version of Neovim
2021-03-15 03:25:28 +01:00
2021-03-30 04:07:01 +02:00
```bash
2021-03-15 03:25:28 +01:00
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
```bash
yay -S neovim-git
```
2021-03-15 03:25:28 +01:00
2021-03-15 17:58:57 +01:00
2021-03-20 09:20:23 +01:00
## Clipboard Support
2021-03-22 19:03:54 +01:00
- On Mac `pbcopy` should be built-in
2021-03-20 09:20:23 +01:00
- Ubuntu
2021-03-20 22:22:44 +01:00
```bash
2021-03-20 09:20:23 +01:00
sudo apt install xsel
2021-03-20 22:22:44 +01:00
```
2021-03-20 09:20:23 +01:00
- Arch
2021-03-20 22:22:44 +01:00
```bash
2021-03-20 09:20:23 +01:00
sudo pacman -S xsel
2021-03-20 22:22:44 +01:00
```
- WSL2
Make sure ~/bin is in your path in this case.
```bash
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
```
2021-03-20 09:20:23 +01:00
## LSP
2021-03-24 00:58:43 +01:00
To install a supported language server:
2021-03-20 09:20:23 +01:00
2021-03-24 04:52:35 +01:00
``` bash
:LspInstall <your_language_server>
2021-03-24 00:58:43 +01:00
```
2021-03-24 04:52:35 +01:00
2021-03-26 05:15:52 +01:00
Most common languages should be supported out of the box, if yours is not I would welcome a PR
2021-03-20 09:20:23 +01:00
2021-03-20 22:22:44 +01:00
For a more in depth LSP support:
[link](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md)
2021-03-20 09:20:23 +01:00
2021-03-19 04:47:03 +01:00
## Useful Programs
2021-04-15 06:17:48 +02:00
LunarVim depends on the following:
2021-03-20 22:22:44 +01:00
``` bash
2021-03-19 04:47:03 +01:00
ranger
ueberzug
ripgrep
2021-03-20 09:20:23 +01:00
pynvim
neovim-remote
2021-03-19 04:47:03 +01:00
```
2021-03-26 01:06:08 +01:00
## EFM server
In order for linters and formatters to work you will need to install
`efm-langserver`
```vim
:LspInstall efm
```
2021-03-24 00:58:43 +01:00
## Formatters and Linters
2021-03-19 04:47:03 +01:00
**Python**
2021-03-20 22:22:44 +01:00
``` bash
2021-03-24 00:58:43 +01:00
pip3 install --user flake8
pip3 install --user yapf
2021-03-19 04:47:03 +01:00
```
**Lua**
2021-03-20 22:22:44 +01:00
``` bash
2021-03-24 00:58:43 +01:00
luarocks install --server=https://luarocks.org/dev luaformatter
2021-03-19 04:47:03 +01:00
```
2021-03-20 09:20:23 +01:00
**Yaml, Json, Javascript, HTML, CSS**
2021-03-20 22:22:44 +01:00
``` bash
2021-03-24 00:58:43 +01:00
npm install -g prettier
2021-03-20 09:20:23 +01:00
```
2021-03-20 22:22:44 +01:00
**Markdown**
``` bash
pandoc
```
2021-04-15 06:17:48 +02:00
## De-bugging
2021-03-19 04:47:03 +01:00
2021-04-15 06:17:48 +02:00
To set up your particular debugger, look here:
[link](https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation)
2021-03-19 04:47:03 +01:00
2021-04-15 06:17:48 +02:00
## VSCodium
2021-03-19 04:47:03 +01:00
2021-04-15 06:17:48 +02:00
I recommend you support Free/Libre versions if you plan to use VSCode:
2021-03-20 03:35:58 +01:00
2021-04-15 06:17:48 +02:00
- [VSCodium](https://vscodium.com/)
2021-03-20 03:35:58 +01:00
2021-04-15 06:17:48 +02:00
- Article to get you set up with VSCodium: [link](https://www.chrisatmachine.com/Neovim/22-vscodium-neovim/)
2021-03-23 03:09:11 +01:00
2021-04-15 06:17:48 +02:00
After installing the [Neovim
extension](https://github.com/asvetliakov/vscode-neovim) in VSCode
I recommend using this alongside the VSCode
[which-key](https://github.com/VSpaceCode/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:
``` vim
$HOME/.config/nvim/vimscript/lv-vscode/init.vim
```
2021-03-23 03:09:11 +01:00
2021-03-15 02:51:54 +01:00
## TODO
2021-03-15 16:54:53 +01:00
**HIGH PRIORITY**
2021-03-20 22:22:44 +01:00
2021-04-07 06:30:22 +02:00
- Move user config into `config.lua` ts-comment string for react
- From here I will update for bug fixes and implement low priority
2021-03-24 05:53:36 +01:00
features when I have time
2021-04-07 06:30:22 +02:00
- different key to advance through snippets
2021-04-04 23:21:57 +02:00
2021-03-23 03:09:11 +01:00
**LOW PRIORITY**
2021-03-31 18:05:26 +02:00
- vim vsnips dir should be co-located with config
2021-04-04 23:21:57 +02:00
- list all binaries needed for formatters and linters (one day add in wiki)
2021-03-20 22:22:44 +01:00
- Implement what I can from this java config:
[link](https://github.com/mfussenegger/nvim-jdtls/wiki/Sample-Configurations)
- better ui for code actions - formatting
- setup junit tests for java
2021-03-22 19:03:54 +01:00
- look into emmet-ls
2021-03-22 04:14:19 +01:00
- vim ult test
2021-04-04 23:21:57 +02:00
- which-key all in lua
2021-03-22 06:46:06 +01:00
- what is `fzy`
2021-03-22 08:01:12 +01:00
- https://github.com/pwntester/octo.nvim
2021-03-22 20:15:12 +01:00
- configure surround
- Implement this for typescript https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils
2021-03-27 01:28:08 +01:00
- look into tabnine
2021-03-22 01:59:02 +01:00
**PLUGIN BUGS**
2021-03-26 18:48:58 +01:00
REACT COMMENTING IS A NIGHTMARE (the filetype is just not recognized idk why)