You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Single-file (with examples of moving to multi-file)
11
-
* Documented
12
-
* Modular
8
+
* Single-file
9
+
* Completely Documented
13
10
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.
15
12
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
17
14
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
20
16
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.
22
21
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`)
- 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.
25
33
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)
30
42
31
43
Neovim's configurations are located under the following paths, depending on your OS:
32
44
33
45
| OS | PATH |
34
46
| :- | :--- |
35
-
| Linux |`$XDG_CONFIG_HOME/nvim`, `~/.config/nvim`|
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.
77
100
78
-
### Recommended Steps
101
+
Read through the `init.lua` file in your configuration folder for more
102
+
information about extending and exploring Neovim.
79
103
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.
81
104
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
84
106
85
-
### Configuration And Extension
107
+
NOTE: You'll need to uncomment the line in the init.lua that turns on loading custom plugins.
86
108
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>
93
111
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).
97
115
98
116
In the file: `lua/custom/plugins/autopairs.lua`, add:
99
117
@@ -117,16 +135,18 @@ return {
117
135
}
118
136
```
119
137
138
+
</details>
139
+
<details>
140
+
<summary>Adding a file tree plugin</summary>
120
141
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.
In the file: `lua/custom/plugins/filetree.lua`, add:
126
147
127
148
```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
130
150
131
151
return {
132
152
"nvim-neo-tree/neo-tree.nvim",
@@ -142,53 +162,114 @@ return {
142
162
}
143
163
```
144
164
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>
148
166
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
153
168
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)
155
170
156
171
### FAQ
157
172
158
173
* 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/`
162
177
* 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:
164
181
```
165
182
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
166
183
```
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.
168
188
* What if I want to "uninstall" this configuration:
169
189
* See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information
170
190
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
171
191
* 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.
173
193
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
0 commit comments