@@ -17,14 +17,22 @@ 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 ` )
2633- [ ripgrep] ( https://github.com/BurntSushi/ripgrep#installation ) ,
2734 [ 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 )
2836- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
2937- A [ Nerd Font] ( https://www.nerdfonts.com/ ) : optional, provides various icons
3038 - if you have it set ` vim.g.have_nerd_font ` in ` init.lua ` to true
@@ -61,9 +69,9 @@ fork to your machine using one of the commands below, depending on your OS.
6169> Your fork's URL will be something like this:
6270> ` https://github.com/<your_github_username>/kickstart.nvim.git `
6371
64- You likely want to remove ` lazy- lock.json` from your fork's ` .gitignore ` file
65- too - it's ignored in the kickstart repo to make maintenance easier, but it's
66- [ 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` ).
6775
6876#### Clone kickstart.nvim
6977
@@ -103,8 +111,10 @@ Start Neovim
103111nvim
104112```
105113
106- That's it! Lazy will install all the plugins you have. Use ` :Lazy ` to view
107- 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).
108118
109119#### Read The Friendly Documentation
110120
@@ -138,7 +148,8 @@ examples of adding popularly requested plugins.
138148 `~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
139149 distribution that you would like to try out.
140150* What if I want to "uninstall" this configuration:
141- * 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`).
142153* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
143154 * The main purpose of kickstart is to serve as a teaching tool and a reference
144155 configuration that someone can easily use to `git clone` as a basis for their own.
@@ -154,22 +165,41 @@ examples of adding popularly requested plugins.
154165
155166Below you can find OS specific install instructions for Neovim and dependencies.
156167
157- 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.
158169
159170#### Windows Installation
160171
161172<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
162- 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.
163175
164- 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).
165177
166- This requires :
178+ If you want a CMake-only setup, customize `init.lua` in two places :
167179
168- - Install CMake and the Microsoft C++ Build Tools on Windows
180+ 1. Include `telescope-fzf-native.nvim` when `cmake` is available:
169181
170182```lua
171- {'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
172186```
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 ) .
173203</details >
174204<details ><summary >Windows with gcc/make using chocolatey</summary >
175205Alternatively, one can install gcc and make which don't require changing the config,
@@ -185,7 +215,7 @@ winget install --accept-source-agreements chocolatey.chocolatey
1852152 . install all requirements using choco, exit the previous cmd and
186216open a new one so that choco path is set, and run in cmd as ** admin** :
187217```
188- 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
189219```
190220</details >
191221<details ><summary >WSL (Windows Subsystem for Linux)</summary >
@@ -195,7 +225,7 @@ wsl --install
195225wsl
196226sudo add-apt-repository ppa:neovim-ppa/unstable -y
197227sudo apt update
198- 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
199229```
200230</details >
201231
@@ -205,14 +235,14 @@ sudo apt install make gcc ripgrep unzip git xclip neovim
205235```
206236sudo add-apt-repository ppa:neovim-ppa/unstable -y
207237sudo apt update
208- 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
209239```
210240</details >
211241<details ><summary >Debian Install Steps</summary >
212242
213243```
214244sudo apt update
215- 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
216246
217247# Now we install nvim
218248curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
@@ -228,14 +258,88 @@ sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/
228258<details ><summary >Fedora Install Steps</summary >
229259
230260```
231- 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
232262```
233263</details >
234264
235265<details ><summary >Arch Install Steps</summary >
236266
237267```
238- 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
239269```
240270</details >
241271
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
341+ ```
342+
343+ </details >
344+
345+ </details >
0 commit comments