2021-03-22 04:33:08 +01:00
|
|
|
![NVCode Logo](./utils/media/nvcode_logo.png)
|
2021-03-15 02:51:54 +01:00
|
|
|
|
2021-03-30 07:43:05 +02:00
|
|
|
|
2021-03-27 19:24:50 +01:00
|
|
|
[![Support Server](https://img.shields.io/discord/591914197219016707.svg?color=7289da&label=AtMachine&logo=discord&style=flat-square)](https://discord.gg/Xb9B4Ny)
|
2021-03-27 19:28:02 +01:00
|
|
|
[![GitHub license](https://img.shields.io/github/license/Naereen/StrapDown.js.svg)](https://github.com/ChristianChiarulli/nvcode/blob/master/LICENSE)
|
2021-03-27 19:30:24 +01:00
|
|
|
[![GitHub contributors](https://img.shields.io/github/contributors/Naereen/StrapDown.js.svg)](https://github.com/ChristianChiarulli/nvcode/graphs/contributors)
|
2021-03-27 19:32:45 +01:00
|
|
|
[![Open Source? Yes!](https://badgen.net/badge/Open%20Source%20%3F/Yes%21/blue?icon=github)](https://github.com/Naereen/badges/)
|
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-27 19:32:45 +01:00
|
|
|
|
2021-03-27 19:30:24 +01:00
|
|
|
|
2021-03-27 19:28:02 +01:00
|
|
|
|
2021-03-27 19:23:59 +01:00
|
|
|
|
2021-03-22 04:37:02 +01:00
|
|
|
![NVCode Demo](./utils/media/demo.png)
|
|
|
|
|
2021-03-29 22:59:12 +02:00
|
|
|
This project aims to help one transition away from VSCode, and into a superior text editing experience. (Just making this clear)
|
2021-03-15 02:51:54 +01:00
|
|
|
|
2021-03-30 07:32:06 +02:00
|
|
|
This is also a community project, if you would like to see support for a feature or language consider making a PR.
|
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-03-24 00:52:56 +01:00
|
|
|
bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/installer/install.sh)
|
|
|
|
```
|
|
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2021-03-15 17:58:57 +01:00
|
|
|
## VSCode support
|
|
|
|
|
2021-03-29 23:01:11 +02:00
|
|
|
I recommend you support Free/Libre versions if you plan to use VSCode:
|
2021-03-29 22:59:12 +02:00
|
|
|
|
|
|
|
- [VSCodium](https://vscodium.com/)
|
|
|
|
|
2021-03-29 23:10:03 +02:00
|
|
|
- Article to get you set up with VSCodium: [link](https://www.chrisatmachine.com/Neovim/22-vscodium-neovim/)
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
After installing the [Neovim
|
|
|
|
extension](https://github.com/asvetliakov/vscode-neovim) in VSCode
|
2021-03-19 04:47:03 +01:00
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
I recommend using this alongside the VSCode
|
|
|
|
[which-key](https://github.com/VSpaceCode/vscode-which-key) extension
|
2021-03-19 04:47:03 +01:00
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
You will also need `settings.json` and `keybindings.json` which can be
|
|
|
|
found in utils/vscode\_config
|
2021-03-15 17:58:57 +01:00
|
|
|
|
|
|
|
Point the nvim path to your `nvim` binary
|
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
Point your `init.vim` path to:
|
2021-03-15 17:58:57 +01:00
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` vim
|
2021-03-23 03:09:11 +01:00
|
|
|
$HOME/.config/nvim/vimscript/nv-vscode/init.vim
|
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
|
|
|
```
|
2021-03-26 22:02:27 +01:00
|
|
|
|
2021-03-26 05:58:18 +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-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-19 04:47:03 +01:00
|
|
|
ranger
|
|
|
|
ueberzug
|
|
|
|
fd
|
|
|
|
ripgrep
|
|
|
|
jq
|
|
|
|
fzf
|
|
|
|
lazygit
|
|
|
|
lazydocker
|
|
|
|
ncdu
|
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-03-19 04:47:03 +01:00
|
|
|
## Vim Gists
|
|
|
|
|
|
|
|
To use vim-gists you will need to configure the following:
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-19 04:47:03 +01:00
|
|
|
git config --global github.user <username>
|
|
|
|
```
|
|
|
|
|
2021-03-20 03:35:58 +01:00
|
|
|
## Snippets
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
If you are looking for snippets checkout this github topic: [Snippet
|
|
|
|
Topic](https://github.com/topics/vscode-snippets)
|
2021-03-20 03:35:58 +01:00
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
## De-bugging
|
|
|
|
|
|
|
|
To set up your particular debugger, look here:
|
|
|
|
[link](https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation)
|
|
|
|
|
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-03-26 01:06:08 +01:00
|
|
|
Move user config into `config.lua` ts-comment string for react
|
2021-03-24 22:58:17 +01:00
|
|
|
|
2021-03-24 05:53:36 +01:00
|
|
|
From here I will update for bug fixes and implement low priority
|
|
|
|
features when I have time
|
2021-03-23 03:09:11 +01:00
|
|
|
|
|
|
|
**LOW PRIORITY**
|
|
|
|
|
2021-03-24 05:53:36 +01:00
|
|
|
- list all binaries needed for formatters and linters
|
|
|
|
- add badges to readme
|
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 01:59:02 +01:00
|
|
|
- toggle virtual text diagnostics
|
|
|
|
- configure neogit
|
2021-03-22 04:14:19 +01:00
|
|
|
- vim ult test
|
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
|
2021-03-26 00:58:40 +01:00
|
|
|
- maybe incorporate ultisnips
|
2021-03-26 18:48:58 +01:00
|
|
|
- switch back to `nvim-autopairs` when/if it doesn't break snippets
|
2021-03-26 22:02:27 +01:00
|
|
|
- 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)
|