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
**NOT** a Neovim distribution, but instead a starting point for your configuration.
12
-
13
-
## Installation
10
+
* Single-file (with examples of moving to multi-file)
11
+
* Documented
12
+
* Modular
14
13
15
-
### Install Neovim
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.
16
15
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.
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.
21
17
22
-
### Install External Dependencies
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)
23
20
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.
21
+
### Installation
33
22
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**
23
+
> **NOTE**
41
24
> [Backup](#FAQ) your previous configuration (if any exists)
42
25
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`
30
+
43
31
Neovim's configurations are located under the following paths, depending on your OS:
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.
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.
100
77
101
-
Read through the `init.lua` file in your configuration folder for more
102
-
information about extending and exploring Neovim.
78
+
### Recommended Steps
103
79
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.
104
81
105
-
#### Examples of adding popularly requested plugins
82
+
> **NOTE**
83
+
> Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git`
106
84
107
-
NOTE: You'll need to uncomment the line in the init.lua that turns on loading custom plugins.
85
+
### Configuration And Extension
108
86
109
-
<details>
110
-
<summary>Adding autopairs</summary>
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.
111
93
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).
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
115
97
116
98
In the file: `lua/custom/plugins/autopairs.lua`, add:
117
99
@@ -135,18 +117,16 @@ return {
135
117
}
136
118
```
137
119
138
-
</details>
139
-
<details>
140
-
<summary>Adding a file tree plugin</summary>
141
120
142
-
This will install the tree plugin and add the command `:Neotree`for you.
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
145
124
146
125
In the file: `lua/custom/plugins/filetree.lua`, add:
147
126
148
127
```lua
149
-
-- File: lua/custom/plugins/filetree.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 ]])
150
130
151
131
return {
152
132
"nvim-neo-tree/neo-tree.nvim",
@@ -162,114 +142,53 @@ return {
162
142
}
163
143
```
164
144
165
-
</details>
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.
166
146
167
-
### Getting Started
147
+
### Contribution
168
148
169
-
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
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
153
+
154
+
Each PR, especially those which increase the line count, should have a description as to why the PR is necessary.
170
155
171
156
### FAQ
172
157
173
158
* What should I do if I already have a pre-existing neovim configuration?
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/`
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)
177
162
* Can I keep my existing configuration in parallel to kickstart?
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:
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:
181
164
```
182
165
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
183
166
```
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.
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.
188
168
* What if I want to "uninstall" this configuration:
189
169
* See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information
190
170
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
191
171
* The main purpose of kickstart is to serve as a teaching tool and a reference
192
-
configuration that someone can easily use to `git clone` as a basis for their own.
172
+
configuration that someone can easily `git clone` as a basis for their own.
193
173
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
194
-
into smaller parts. A fork of kickstart that does this while maintaining the
174
+
into smaller parts. A fork of kickstart that does this while maintaining the exact
0 commit comments