2023-02-18 05:31:57 +08:00
# kickstart.nvim
2022-06-24 11:35:53 +08:00
### Introduction
2022-11-09 23:27:08 +08:00
A starting point for Neovim that is:
2022-06-24 11:35:53 +08:00
2023-02-18 05:31:57 +08:00
* Small
* Single-file (with examples of moving to multi-file)
2022-06-24 11:35:53 +08:00
* Documented
* Modular
2023-02-18 05:31:57 +08:00
This repo is meant to be used as by **YOU** to begin your Neovim journey; remove the things you don't use and add what you miss.
2022-06-24 11:35:53 +08:00
2023-04-25 05:21:53 +08:00
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.
2023-02-18 05:31:57 +08:00
Distribution Alternatives:
- [LazyVim ](https://www.lazyvim.org/ ): A delightful distribution maintained by @folke (the author of lazy.nvim, the package manager used here)
2022-06-24 11:35:53 +08:00
### Installation
2022-11-09 23:27:08 +08:00
2023-04-25 05:21:53 +08:00
* Backup your previous configuration (if any exists)
### Archive Installation
* On the home/landing page for the project find the blue "< > CODE" button click it and select Local > Download ZIP.
* Extract the archive to:
2023-04-25 05:28:27 +08:00
`~/.config/nvim` (Linux)
`~/.config/nvim` (MacOS)
2023-04-26 03:15:10 +08:00
`%userprofile%\AppData\Local\nvim-data\` (Windows)
2023-04-25 05:21:53 +08:00
* Ensure your extraction method did not extract with a parent folder. For example in ~/.config/nvim you should have init.lua not another folder called kickstart.nvim.
2023-05-23 02:29:42 +08:00
### Git Clone Installation
2023-04-25 05:28:27 +08:00
* From a terminal cd/dir to:
`~/.config/nvim` (Linux)
`~/.config/nvim` (MacOS)
2023-05-22 10:13:02 +08:00
`%userprofile%\AppData\Local\nvim\` (Windows)
2023-04-25 05:28:27 +08:00
2023-05-23 02:29:42 +08:00
* run: `git clone https://github.com/nvim-lua/kickstart.nvim.git ~/.config/nvim` OR: `gh repo clone nvim-lua/kickstart.nvim`
* Run Neovim (from terminal or shortcut) and allow lazy.nvim to download files and set up the basics.
* Once the setup is complete, restart Neovim.
2023-04-25 05:28:27 +08:00
* **You're ready to go!**
2023-04-25 05:21:53 +08:00
2023-04-25 05:28:27 +08:00
* (Recommended/Optional) Fork this repo (so that you have your own copy that you can modify).
2023-04-26 03:14:17 +08:00
* Clone the kickstart repo into `$HOME/.config/nvim/` (Linux/Mac) or `%userprofile%\AppData\Local\nvim-data\` (Windows)
2023-02-18 05:31:57 +08:00
* If you don't want to include it as a git repo, you can just clone it and then move the files to this location
2022-06-24 11:35:53 +08:00
2023-02-18 05:31:57 +08:00
Additional system requirements:
- Make sure to review the readmes of the plugins if you are experiencing errors. In particular:
- [ripgrep ](https://github.com/BurntSushi/ripgrep#installation ) is required for multiple [telescope ](https://github.com/nvim-telescope/telescope.nvim#suggested-dependencies ) pickers.
2023-05-23 02:29:42 +08:00
- See [Windows Installation ](#Windows-Installation ) if you have trouble with `telescope-fzf-native`
2022-12-21 02:27:01 +08:00
2023-02-18 05:31:57 +08:00
### Configuration And Extension
2022-12-20 06:56:21 +08:00
2023-05-23 02:29:42 +08:00
* Inside of your copy, feel free to modify any file you like! It's your copy!
* Feel free to change any of the default options in `init.lua` to better suit your needs.
* For adding plugins, there are 3 primary options:
2023-02-18 05:31:57 +08:00
* Add new configuration in `lua/custom/plugins/*` files, which will be auto sourced using `lazy.nvim`
2023-05-23 02:29:42 +08:00
* Modify `init.lua` with additional plugins.
* Include the `lua/kickstart/plugins/*` files in your configuration.
2022-12-22 20:45:20 +08:00
2023-05-23 02:29:42 +08:00
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.
2022-12-22 20:45:20 +08:00
2023-02-18 05:31:57 +08:00
#### Example: Adding an autopairs plugin
2022-12-22 20:45:20 +08:00
2023-02-18 05:31:57 +08:00
In the file: `lua/custom/plugins/autopairs.lua` , add:
2022-12-22 20:45:20 +08:00
```lua
2023-02-18 05:31:57 +08:00
-- File: lua/custom/plugins/autopairs.lua
return {
"windwp/nvim-autopairs",
2023-05-23 02:29:42 +08:00
-- Optional dependency
dependencies = { 'hrsh7th/nvim-cmp' },
2023-02-18 05:31:57 +08:00
config = function()
require("nvim-autopairs").setup {}
2023-05-23 02:29:42 +08:00
-- If you want to automatically add `(` after selecting a function or method
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require('cmp')
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
2023-02-18 05:31:57 +08:00
end,
}
2022-12-22 20:45:20 +08:00
```
2022-11-21 20:47:24 +08:00
2023-05-23 02:29:42 +08:00
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 ).
2022-11-21 20:47:24 +08:00
2023-02-18 05:31:57 +08:00
#### Example: Adding a file tree plugin
2022-11-21 20:47:24 +08:00
2023-02-18 05:31:57 +08:00
In the file: `lua/custom/plugins/filetree.lua` , add:
2022-11-21 20:47:24 +08:00
```lua
2023-02-28 05:36:59 +08:00
-- Unless you are still migrating, remove the deprecated commands from v1.x
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
2023-02-18 05:31:57 +08:00
return {
"nvim-neo-tree/neo-tree.nvim",
version = "*",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
},
config = function ()
require('neo-tree').setup {}
end,
}
2022-11-21 20:47:24 +08:00
```
2023-04-13 21:28:44 +08:00
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.
2023-02-18 05:31:57 +08:00
2022-06-24 11:35:53 +08:00
### Contribution
2022-11-09 23:27:08 +08:00
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:
2022-06-24 11:35:53 +08:00
* Custom language server configuration (null-ls templates)
* Theming beyond a default colorscheme necessary for LSP highlight groups
Each PR, especially those which increase the line count, should have a description as to why the PR is necessary.
2022-12-21 02:27:01 +08:00
### FAQ
2023-02-18 05:31:57 +08:00
* What should I do if I already have a pre-existing neovim configuration?
* You should back it up, then delete all files associated with it.
* This includes your existing init.lua and the neovim files in `~/.local` which can be deleted with `rm -rf ~/.local/share/nvim/`
* You may also want to look at the [migration guide for lazy.nvim ](https://github.com/folke/lazy.nvim#-migration-guide )
* What if I want to "uninstall" this configuration:
* See [lazy.nvim uninstall ](https://github.com/folke/lazy.nvim#-uninstalling ) information
* Are there any cool videos about this plugin?
* Current iteration of kickstart (coming soon)
2023-04-27 00:24:52 +08:00
* Here is one about the previous iteration of kickstart: [video introduction to Kickstart.nvim ](https://youtu.be/stqUbv-5u2s ). Note the install via init.lua no longer works as specified. Please follow the install instructions in this file instead as they're up to date.
2023-02-18 05:31:57 +08:00
### Windows Installation
Installation may require installing build tools, and updating the run command for `telescope-fzf-native`
2023-04-13 21:34:27 +08:00
See `telescope-fzf-native` documentation for [more details ](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation )
2023-02-18 05:31:57 +08:00
This requires:
- Install CMake, and the Microsoft C++ Build Tools on Windows
```lua
2023-02-20 04:32:15 +08:00
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release & & cmake --build build --config Release & & cmake --install build --prefix build' }
2023-02-18 05:31:57 +08:00
```
2022-12-21 02:27:01 +08:00