@@ -17,28 +17,38 @@ A starting point for Neovim that is:
1717Kickstart.nvim targets * only* the latest
1818[ 'stable'] ( https://github.com/neovim/neovim/releases/tag/stable ) and latest
1919[ 'nightly'] ( https://github.com/neovim/neovim/releases/tag/nightly ) of Neovim.
20- If you are experiencing issues, please make sure you have the latest versions.
20+ If you are experiencing issues, please make sure you have at least the latest
21+ stable version. Most likely, you want to install neovim via a [ package
22+ manager] ( https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package ) .
23+ To check your neovim version, run ` nvim --version ` and make sure it is not
24+ below the latest
25+ [ 'stable'] ( https://github.com/neovim/neovim/releases/tag/stable ) version. If
26+ your chosen install method only gives you an outdated version of neovim, find
27+ alternative [ installation methods below] ( #alternative-neovim-installation-methods ) .
2128
2229### Install External Dependencies
2330
2431External Requirements:
2532- Basic utils: ` git ` , ` make ` , ` unzip ` , C Compiler (` gcc ` )
26- - [ ripgrep] ( https://github.com/BurntSushi/ripgrep#installation )
33+ - [ ripgrep] ( https://github.com/BurntSushi/ripgrep#installation ) ,
34+ [ fd-find] ( https://github.com/sharkdp/fd#installation )
35+ - [ tree-sitter CLI] ( https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md#installation )
2736- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
2837- A [ Nerd Font] ( https://www.nerdfonts.com/ ) : optional, provides various icons
2938 - if you have it set ` vim.g.have_nerd_font ` in ` init.lua ` to true
39+ - Emoji fonts (Ubuntu only, and only if you want emoji!) ` sudo apt install fonts-noto-color-emoji `
3040- Language Setup:
3141 - If you want to write Typescript, you need ` npm `
3242 - If you want to write Golang, you will need ` go `
3343 - etc.
3444
35- > ** NOTE**
45+ > [ ! NOTE]
3646> See [ Install Recipes] ( #Install-Recipes ) for additional Windows and Linux specific notes
3747> and quick install snippets
3848
3949### Install Kickstart
4050
41- > ** NOTE**
51+ > [ ! NOTE]
4252> [ Backup] ( #FAQ ) your previous configuration (if any exists)
4353
4454Neovim's configurations are located under the following paths, depending on your OS:
@@ -55,16 +65,17 @@ Neovim's configurations are located under the following paths, depending on your
5565so that you have your own copy that you can modify, then install by cloning the
5666fork to your machine using one of the commands below, depending on your OS.
5767
58- > ** NOTE**
68+ > [ ! NOTE]
5969> Your fork's URL will be something like this:
6070> ` https://github.com/<your_github_username>/kickstart.nvim.git `
6171
62- You likely want to remove ` lazy- lock.json` from your fork's ` .gitignore ` file
63- too - it's ignored in the kickstart repo to make maintenance easier, but it's
64- [ recommended to track it in version control] ( https://lazy.folke.io/usage/ lockfile) .
72+ You likely want to remove ` nvim-pack- lock.json` from your fork's ` .gitignore `
73+ file too - it's ignored in the kickstart repo to make maintenance easier, but
74+ it's recommended to track it in version control (see ` :help vim.pack- lockfile` ).
6575
6676#### Clone kickstart.nvim
67- > ** NOTE**
77+
78+ > [ !NOTE]
6879> If following the recommended step above (i.e., forking the repo), replace
6980> ` nvim-lua ` with ` <your_github_username> ` in the commands below
7081
@@ -100,8 +111,10 @@ Start Neovim
100111nvim
101112```
102113
103- That's it! Lazy will install all the plugins you have. Use ` :Lazy ` to view
104- the current plugin status. Hit ` q ` to close the window.
114+ That's it! ` vim.pack ` will install all the plugins from your config. Use
115+ ` :lua vim.pack.update(nil, { offline = true }) ` to inspect plugin state and
116+ ` :lua vim.pack.update() ` to fetch updates (` :write ` applies updates, ` :quit `
117+ cancels them).
105118
106119#### Read The Friendly Documentation
107120
@@ -135,7 +148,8 @@ examples of adding popularly requested plugins.
135148 `~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
136149 distribution that you would like to try out.
137150* What if I want to "uninstall" this configuration:
138- * See [lazy.nvim uninstall](https://lazy.folke.io/usage#-uninstalling) information
151+ * Remove your config directory and local data directory (for example,
152+ `~/.config/nvim` and `~/.local/share/nvim`).
139153* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
140154 * The main purpose of kickstart is to serve as a teaching tool and a reference
141155 configuration that someone can easily use to `git clone` as a basis for their own.
@@ -151,22 +165,41 @@ examples of adding popularly requested plugins.
151165
152166Below you can find OS specific install instructions for Neovim and dependencies.
153167
154- After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart ) step.
168+ After installing all the dependencies continue with the [Install Kickstart](#install-kickstart ) step.
155169
156170#### Windows Installation
157171
158172<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
159- Installation may require installing build tools and updating the run command for `telescope-fzf-native`
173+ Kickstart's default config is make-only for `telescope-fzf-native.nvim`.
174+ If `make` is unavailable, the plugin is skipped.
160175
161- See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
176+ Recommended: install `make` (see the chocolatey section below).
162177
163- This requires :
178+ If you want a CMake-only setup, customize `init.lua` in two places :
164179
165- - Install CMake and the Microsoft C++ Build Tools on Windows
180+ 1. Include `telescope-fzf-native.nvim` when `cmake` is available:
166181
167182```lua
168- {'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
183+ if vim.fn.executable 'make' == 1 or vim.fn.executable 'cmake' == 1 then
184+ table.insert(plugins, gh 'nvim-telescope/telescope-fzf-native.nvim')
185+ end
169186```
187+
188+ 2 . In the ` PackChanged ` hook, use CMake when ` make ` is unavailable:
189+
190+ ``` lua
191+ if name == ' telescope-fzf-native.nvim' then
192+ if vim .fn .executable ' make' == 1 then
193+ run_build (name , { ' make' }, ev .data .path )
194+ elseif vim .fn .executable ' cmake' == 1 then
195+ run_build (name , { ' cmake' , ' -S.' , ' -Bbuild' , ' -DCMAKE_BUILD_TYPE=Release' }, ev .data .path )
196+ run_build (name , { ' cmake' , ' --build' , ' build' , ' --config' , ' Release' , ' --target' , ' install' }, ev .data .path )
197+ end
198+ return
199+ end
200+ ```
201+
202+ See ` telescope-fzf-native ` documentation for [ build details] ( https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation ) .
170203</details >
171204<details ><summary >Windows with gcc/make using chocolatey</summary >
172205Alternatively, one can install gcc and make which don't require changing the config,
@@ -182,7 +215,7 @@ winget install --accept-source-agreements chocolatey.chocolatey
1822152 . install all requirements using choco, exit the previous cmd and
183216open a new one so that choco path is set, and run in cmd as ** admin** :
184217```
185- choco install -y neovim git ripgrep wget fd unzip gzip mingw make
218+ choco install -y neovim git ripgrep wget fd unzip gzip mingw make tree-sitter
186219```
187220</details >
188221<details ><summary >WSL (Windows Subsystem for Linux)</summary >
@@ -192,7 +225,7 @@ wsl --install
192225wsl
193226sudo add-apt-repository ppa:neovim-ppa/unstable -y
194227sudo apt update
195- sudo apt install make gcc ripgrep unzip git xclip neovim
228+ sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip neovim
196229```
197230</details >
198231
@@ -202,37 +235,111 @@ sudo apt install make gcc ripgrep unzip git xclip neovim
202235```
203236sudo add-apt-repository ppa:neovim-ppa/unstable -y
204237sudo apt update
205- sudo apt install make gcc ripgrep unzip git xclip neovim
238+ sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip neovim
206239```
207240</details >
208241<details ><summary >Debian Install Steps</summary >
209242
210243```
211244sudo apt update
212- sudo apt install make gcc ripgrep unzip git xclip curl
245+ sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip curl
213246
214247# Now we install nvim
215- curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64 .tar.gz
216- sudo rm -rf /opt/nvim-linux64
217- sudo mkdir -p /opt/nvim-linux64
218- sudo chmod a+rX /opt/nvim-linux64
219- sudo tar -C /opt -xzf nvim-linux64 .tar.gz
248+ curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64 .tar.gz
249+ sudo rm -rf /opt/nvim-linux-x86_64
250+ sudo mkdir -p /opt/nvim-linux-x86_64
251+ sudo chmod a+rX /opt/nvim-linux-x86_64
252+ sudo tar -C /opt -xzf nvim-linux-x86_64 .tar.gz
220253
221254# make it available in /usr/local/bin, distro installs to /usr/bin
222- sudo ln -sf /opt/nvim-linux64 /bin/nvim /usr/local/bin/
255+ sudo ln -sf /opt/nvim-linux-x86_64 /bin/nvim /usr/local/bin/
223256```
224257</details >
225258<details ><summary >Fedora Install Steps</summary >
226259
227260```
228- sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
261+ sudo dnf install -y gcc make git ripgrep fd-find tree-sitter-cli unzip neovim
229262```
230263</details >
231264
232265<details ><summary >Arch Install Steps</summary >
233266
234267```
235- sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
268+ sudo pacman -S --noconfirm --needed gcc make git ripgrep fd tree-sitter-cli unzip neovim
269+ ```
270+ </details >
271+
272+ ### Alternative neovim installation methods
273+
274+ For some systems it is not unexpected that the [ package manager installation
275+ method] ( https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package )
276+ recommended by neovim is significantly behind. If that is the case for you,
277+ pick one of the following methods that are known to deliver fresh neovim versions very quickly.
278+ They have been picked for their popularity and because they make installing and updating
279+ neovim to the latest versions easy. You can also find more detail about the
280+ available methods being discussed
281+ [ here] ( https://github.com/nvim-lua/kickstart.nvim/issues/1583 ) .
282+
283+
284+ <details ><summary >Bob</summary >
285+
286+ [ Bob] ( https://github.com/MordechaiHadad/bob ) is a Neovim version manager for
287+ all platforms. Simply install
288+ [ rustup] ( https://rust-lang.github.io/rustup/installation/other.html ) ,
289+ and run the following commands:
290+
291+ ``` bash
292+ rustup default stable
293+ rustup update stable
294+ cargo install bob-nvim
295+ bob use stable
296+ ```
297+
298+ </details >
299+
300+ <details ><summary >Homebrew</summary >
301+
302+ [ Homebrew] ( https://brew.sh ) is a package manager popular on Mac and Linux.
303+ Simply install using [ ` brew install ` ] ( https://formulae.brew.sh/formula/neovim ) .
304+
305+ </details >
306+
307+ <details ><summary >Flatpak</summary >
308+
309+ Flatpak is a package manager for applications that allows developers to package their applications
310+ just once to make it available on all Linux systems. Simply [ install flatpak] ( https://flatpak.org/setup/ )
311+ and setup [ flathub] ( https://flathub.org/setup ) to [ install neovim] ( https://flathub.org/apps/io.neovim.nvim ) .
312+
313+ </details >
314+
315+ <details ><summary >asdf and mise-en-place</summary >
316+
317+ [ asdf] ( https://asdf-vm.com/ ) and [ mise] ( https://mise.jdx.dev/ ) are tool version managers,
318+ mostly aimed towards project-specific tool versioning. However both support managing tools
319+ globally in the user-space as well:
320+
321+ <details ><summary >mise</summary >
322+
323+ [ Install mise] ( https://mise.jdx.dev/getting-started.html ) , then run:
324+
325+ ``` bash
326+ mise plugins install neovim
327+ mise use neovim@stable
328+ ```
329+
330+ </details >
331+
332+ <details ><summary >asdf</summary >
333+
334+ [ Install asdf] ( https://asdf-vm.com/guide/getting-started.html ) , then run:
335+
336+ ``` bash
337+ asdf plugin add neovim
338+ asdf install neovim stable
339+ asdf set neovim stable --home
340+ asdf reshim neovim
236341```
342+
237343</details >
238344
345+ </details >
0 commit comments