This is my fork of kickstart.nvim.
It's mostly set up for Go, Elixir, and Terraform work.
Since GitHub's "sync fork" functionality is completely borked, offering only to delete all my commits, this is the process to sync from upstream:
git remote add upstream https://github.com/nvim-lua/kickstart.nvim
git fetch upstream
git checkout master
git rebase upstream/master
======= 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.
Kickstart.nvim targets only the latest 'stable' and latest 'nightly' of Neovim. If you are experiencing issues, please make sure you have the latest versions.
Distribution Alternatives:
- LazyVim: A delightful distribution maintained by @folke (the author of lazy.nvim, the package manager used here)
NOTE Backup your previous configuration (if any exists)
Requirements:
- Make sure to review the readmes of the plugins if you are experiencing errors. In particular:
- See Windows Installation if you have trouble with
telescope-fzf-native
Neovim's configurations are located under the following paths, depending on your OS:
| OS | PATH |
|---|---|
| Linux | $XDG_CONFIG_HOME/nvim, ~/.config/nvim |
| MacOS | $XDG_CONFIG_HOME/nvim, ~/.config/nvim |
| Windows | %userprofile%\AppData\Local\nvim\ |
Clone kickstart.nvim:
# on Linux and Mac
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim# on Windows
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
Run the following command and then you are ready to go!
nvim --headless "+Lazy! sync" +qaFork 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.
NOTE
Your fork's url will be something like this:https://github.com/<your_github_username>/kickstart.nvim.git
- 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.luato better suit your needs. - For adding plugins, there are 3 primary options:
- Add new configuration in
lua/custom/plugins/*files, which will be auto sourced usinglazy.nvim(uncomment the line importing thecustom/pluginsdirectory in theinit.luafile to enable this) - Modify
init.luawith additional plugins. - Include the
lua/kickstart/plugins/*files in your configuration.
- Add new configuration in
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.
In the file: lua/custom/plugins/autopairs.lua, add:
-- File: lua/custom/plugins/autopairs.lua
return {
"windwp/nvim-autopairs",
-- Optional dependency
dependencies = { 'hrsh7th/nvim-cmp' },
config = function()
require("nvim-autopairs").setup {}
-- 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()
)
end,
}Since GitHub's "sync fork" functionality is completely borked, offering only to delete all my commits, this is the process to sync from upstream:
git remote add upstream https://github.com/nvim-lua/kickstart.nvim
git fetch upstream
git checkout master
git rebase upstream/master
=======
After this, just fix merge conflicts, `git add` them, and `git rebase --continue` as needed.
=======
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).
#### Example: Adding a file tree plugin
In the file: `lua/custom/plugins/filetree.lua`, add:
```lua
-- Unless you are still migrating, remove the deprecated commands from v1.x
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
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,
}
After this, just fix merge conflicts, git add them, and git rebase --continue as needed.