Skip to content

Commit 6db890b

Browse files
committed
2 parents 2f9644e + 88beea5 commit 6db890b

File tree

6 files changed

+869
-272
lines changed

6 files changed

+869
-272
lines changed

.github/workflows/stylua.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on: pull_request_target
44

55
jobs:
66
stylua-check:
7+
if: github.repository == 'nvim-lua/kickstart.nvim'
78
name: Stylua Check
89
runs-on: ubuntu-latest
910
steps:

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,6 @@ tags
22
test.sh
33
.luarc.json
44
nvim
5+
6+
spell/
7+
lazy-lock.json

README.md

Lines changed: 154 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,91 @@
11
# kickstart.nvim
22

3-
https://github.com/kdheepak/kickstart.nvim/assets/1813121/f3ff9a2b-c31f-44df-a4fa-8a0d7b17cf7b
4-
5-
### Introduction
3+
## Introduction
64

75
A starting point for Neovim that is:
86

97
* Small
10-
* Single-file (with examples of moving to multi-file)
11-
* Documented
12-
* Modular
8+
* Single-file
9+
* Completely Documented
1310

14-
This repo is meant to be used by **YOU** to begin your Neovim journey; remove the things you don't use and add what you miss.
11+
**NOT** a Neovim distribution, but instead a starting point for your configuration.
1512

16-
Kickstart.nvim targets *only* the latest ['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest ['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim. If you are experiencing issues, please make sure you have the latest versions.
13+
## Installation
1714

18-
Distribution Alternatives:
19-
- [LazyVim](https://www.lazyvim.org/): A delightful distribution maintained by @folke (the author of lazy.nvim, the package manager used here)
15+
### Install Neovim
2016

21-
### Installation
17+
Kickstart.nvim targets *only* the latest
18+
['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest
19+
['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.
2221

23-
> **NOTE**
24-
> [Backup](#FAQ) your previous configuration (if any exists)
22+
### Install External Dependencies
23+
24+
External Requirements:
25+
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
26+
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
27+
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
28+
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
29+
- Language Setup:
30+
- If want to write Typescript, you need `npm`
31+
- If want to write Golang, you will need `go`
32+
- etc.
2533

26-
Requirements:
27-
* Make sure to review the readmes of the plugins if you are experiencing errors. In particular:
28-
* [ripgrep](https://github.com/BurntSushi/ripgrep#installation) is required for multiple [telescope](https://github.com/nvim-telescope/telescope.nvim#suggested-dependencies) pickers.
29-
* See [Windows Installation](#Windows-Installation) if you have trouble with `telescope-fzf-native`
34+
> **NOTE**
35+
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
36+
> and quick install snippets
37+
38+
### Install Kickstart
39+
40+
> **NOTE**
41+
> [Backup](#FAQ) your previous configuration (if any exists)
3042
3143
Neovim's configurations are located under the following paths, depending on your OS:
3244

3345
| OS | PATH |
3446
| :- | :--- |
35-
| Linux | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
36-
| MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
47+
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
3748
| Windows (cmd)| `%userprofile%\AppData\Local\nvim\` |
3849
| Windows (powershell)| `$env:USERPROFILE\AppData\Local\nvim\` |
3950

40-
Clone kickstart.nvim:
51+
#### Recommended Step
52+
53+
[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo
54+
so that you have your own copy that you can modify, then install by cloning the
55+
fork to your machine using one of the commands below, depending on your OS.
56+
57+
> **NOTE**
58+
> Your fork's url will be something like this:
59+
> `https://github.com/<your_github_username>/kickstart.nvim.git`
60+
61+
#### Clone kickstart.nvim
62+
> **NOTE**
63+
> If following the recommended step above (i.e., forking the repo), replace
64+
> `nvim-lua` with `<your_github_username>` in the commands below
65+
66+
<details><summary> Linux and Mac </summary>
4167

42-
- on Linux and Mac
4368
```sh
4469
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
4570
```
4671

47-
- on Windows (cmd)
72+
</details>
73+
74+
<details><summary> Windows </summary>
75+
76+
If you're using `cmd.exe`:
77+
4878
```
49-
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
79+
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
5080
```
5181

52-
- on Windows (powershell)
82+
If you're using `powershell.exe`
83+
5384
```
54-
git clone https://github.com/nvim-lua/kickstart.nvim.git $env:USERPROFILE\AppData\Local\nvim\
85+
git clone https://github.com/nvim-lua/kickstart.nvim.git $env:USERPROFILE\AppData\Local\nvim\
5586
```
5687

88+
</details>
5789

5890
### Post Installation
5991

@@ -63,37 +95,23 @@ Start Neovim
6395
nvim
6496
```
6597

66-
The `Lazy` plugin manager will start automatically on the first run and install the configured plugins - as can be seen in the introduction video. After the installation is complete you can press `q` to close the `Lazy` UI and **you are ready to go**! Next time you run nvim `Lazy` will no longer show up.
67-
68-
If you would prefer to hide this step and run the plugin sync from the command line, you can use:
69-
70-
```sh
71-
nvim --headless "+Lazy! sync" +qa
72-
```
73-
74-
### Getting Started
75-
76-
See [Effective Neovim: Instant IDE](https://youtu.be/stqUbv-5u2s), covering the previous version. Note: The install via init.lua is outdated, please follow the install instructions in this file instead. An updated video is coming soon.
98+
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
99+
current plugin status. Hit `q` to close the window.
77100

78-
### Recommended Steps
101+
Read through the `init.lua` file in your configuration folder for more
102+
information about extending and exploring Neovim.
79103

80-
[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo (so that you have your own copy that you can modify) and then installing you can install to your machine using the methods above.
81104

82-
> **NOTE**
83-
> Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git`
105+
#### Examples of adding popularly requested plugins
84106

85-
### Configuration And Extension
107+
NOTE: You'll need to uncomment the line in the init.lua that turns on loading custom plugins.
86108

87-
* Inside of your copy, feel free to modify any file you like! It's your copy!
88-
* Feel free to change any of the default options in `init.lua` to better suit your needs.
89-
* For adding plugins, there are 3 primary options:
90-
* Add new configuration in `lua/custom/plugins/*` files, which will be auto sourced using `lazy.nvim` (uncomment the line importing the `custom/plugins` directory in the `init.lua` file to enable this)
91-
* Modify `init.lua` with additional plugins.
92-
* Include the `lua/kickstart/plugins/*` files in your configuration.
109+
<details>
110+
<summary>Adding autopairs</summary>
93111

94-
You can also merge updates/changes from the repo back into your fork, to keep up-to-date with any changes for the default configuration.
95-
96-
#### Example: Adding an autopairs plugin
112+
This will automatically install [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs)
113+
and enable it on startup. For more information, see documentation for
114+
[lazy.nvim](https://github.com/folke/lazy.nvim).
97115

98116
In the file: `lua/custom/plugins/autopairs.lua`, add:
99117

@@ -117,16 +135,18 @@ return {
117135
}
118136
```
119137

138+
</details>
139+
<details>
140+
<summary>Adding a file tree plugin</summary>
120141

121-
This will automatically install [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) and enable it on startup. For more information, see documentation for [lazy.nvim](https://github.com/folke/lazy.nvim).
122-
123-
#### Example: Adding a file tree plugin
142+
This will install the tree plugin and add the command `:Neotree` for you.
143+
For more information, see the documentation at
144+
[neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim).
124145

125146
In the file: `lua/custom/plugins/filetree.lua`, add:
126147

127148
```lua
128-
-- Unless you are still migrating, remove the deprecated commands from v1.x
129-
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
149+
-- File: lua/custom/plugins/filetree.lua
130150

131151
return {
132152
"nvim-neo-tree/neo-tree.nvim",
@@ -142,53 +162,114 @@ return {
142162
}
143163
```
144164

145-
This will install the tree plugin and add the command `:Neotree` for you. You can explore the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) for more information.
146-
147-
### Contribution
165+
</details>
148166

149-
Pull-requests are welcome. The goal of this repo is not to create a Neovim configuration framework, but to offer a starting template that shows, by example, available features in Neovim. Some things that will not be included:
150-
151-
* Custom language server configuration (null-ls templates)
152-
* Theming beyond a default colorscheme necessary for LSP highlight groups
167+
### Getting Started
153168

154-
Each PR, especially those which increase the line count, should have a description as to why the PR is necessary.
169+
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
155170

156171
### FAQ
157172

158173
* What should I do if I already have a pre-existing neovim configuration?
159-
* You should back it up, then delete all files associated with it.
160-
* This includes your existing init.lua and the neovim files in `~/.local` which can be deleted with `rm -rf ~/.local/share/nvim/`
161-
* You may also want to look at the [migration guide for lazy.nvim](https://github.com/folke/lazy.nvim#-migration-guide)
174+
* You should back it up and then delete all associated files.
175+
* This includes your existing init.lua and the neovim files in `~/.local`
176+
which can be deleted with `rm -rf ~/.local/share/nvim/`
162177
* Can I keep my existing configuration in parallel to kickstart?
163-
* Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME` to maintain multiple configurations. For example you can install the kickstart configuration in `~/.config/nvim-kickstart` and create an alias:
178+
* Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
179+
to maintain multiple configurations. For example, you can install the kickstart
180+
configuration in `~/.config/nvim-kickstart` and create an alias:
164181
```
165182
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
166183
```
167-
When you run Neovim using `nvim-kickstart` alias it will use the alternative config directory and the matching local directory `~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim distribution that you would like to try out.
184+
When you run Neovim using `nvim-kickstart` alias it will use the alternative
185+
config directory and the matching local directory
186+
`~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
187+
distribution that you would like to try out.
168188
* What if I want to "uninstall" this configuration:
169189
* See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information
170190
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
171191
* The main purpose of kickstart is to serve as a teaching tool and a reference
172-
configuration that someone can easily `git clone` as a basis for their own.
192+
configuration that someone can easily use to `git clone` as a basis for their own.
173193
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
174-
into smaller parts. A fork of kickstart that does this while maintaining the exact
194+
into smaller parts. A fork of kickstart that does this while maintaining the
175195
same functionality is available here:
176196
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
177197
* Discussions on this topic can be found here:
178198
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
179199
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
180200
181-
### Windows Installation
201+
### Install Recipes
202+
203+
Below you can find OS specific install instructions for Neovim and dependencies.
182204
183-
Installation may require installing build tools, and updating the run command for `telescope-fzf-native`
205+
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
206+
207+
#### Windows Installation
208+
209+
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
210+
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
184211
185212
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
186213
187214
This requires:
188215
189-
- Install CMake, and the Microsoft C++ Build Tools on Windows
216+
- Install CMake and the Microsoft C++ Build Tools on Windows
190217
191218
```lua
192219
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
193220
```
221+
</details>
222+
<details><summary>Windows with gcc/make using chocolatey</summary>
223+
Alternatively, one can install gcc and make which don't require changing the config,
224+
the easiest way is to use choco:
225+
226+
1. install [chocolatey](https://chocolatey.org/install)
227+
either follow the instructions on the page or use winget,
228+
run in cmd as **admin**:
229+
```
230+
winget install --accept-source-agreements chocolatey.chocolatey
231+
```
232+
233+
2. install all requirements using choco, exit previous cmd and
234+
open a new one so that choco path is set, and run in cmd as **admin**:
235+
```
236+
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
237+
```
238+
</details>
239+
<details><summary>WSL (Windows Subsystem for Linux)</summary>
240+
241+
```
242+
wsl --install
243+
wsl
244+
sudo add-apt-repository ppa:neovim-ppa/unstable -y
245+
sudo apt update
246+
sudo apt install make gcc ripgrep unzip neovim
247+
```
248+
</details>
249+
250+
#### Linux Install
251+
<details><summary>Ubuntu Install Steps</summary>
252+
253+
```
254+
sudo add-apt-repository ppa:neovim-ppa/unstable -y
255+
sudo apt update
256+
sudo apt install make gcc ripgrep unzip neovim
257+
```
258+
</details>
259+
<details><summary>Debian Install Steps</summary>
260+
261+
```
262+
sudo apt update
263+
sudo apt install make gcc ripgrep unzip git
264+
echo "deb https://deb.debian.org/debian unstable main" | sudo tee -a /etc/apt/sources.list
265+
sudo apt update
266+
sudo apt install -t unstable neovim
267+
```
268+
</details>
269+
<details><summary>Fedora Install Steps</summary>
270+
271+
```
272+
sudo dnf install -y gcc make git ripgrep fd-find neovim
273+
```
274+
</details>
194275

0 commit comments

Comments
 (0)