blob: 9c21f0d776782ea0497ad16f01b4684aa613f7af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
# Nvim Mach 2

## 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
- On Mac
```
brew install neovim
```
- Ubuntu
```
sudo apt install neovim
```
- Arch
```
sudo pacman -S neovim
```
## 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
- On Ubuntu
```
sudo apt install xsel
```
- On Arch Linux
```
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
```
## Vim Gists
To use **vim-gists** you will need to configure the following:
```
git config --global github.user <username>
```
## TODO
- vimspector
- ale
## LOW PRIORITY
- git messenger
- multiple cursors
- markdown table
- People asked about vimwiki I kinda hate it but maybe I'll add it
- spaceline (add colorscheme for mach2)
- tpope/vim-dadbod
- later manually link pylance
- neovide
## CoC extensions to check out
- coc-fzf
- coc-stylelintplus
- coc-highlight (just for pick color, highlight is too slow)
- coc-floaterm
- coc-actions
- coc-bookmark
## 0.5
- native lsp
- treesitter
## Things to look into
**Python**
https://realpython.com/python-debugging-pdb/ " breakpoint syntax is really cool
also look into profiling as well
|