Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 5e258d2
Author: Damjan 9000 <[email protected]>
Date:   Wed Apr 17 21:25:54 2024 +0200

    Move plugin examples from README to optional plugin files (nvim-lua#831)

    * Move autopairs example from README to an optional plugin

    * Move neo-tree example from README to an optional plugin

commit 5540527
Author: Vladislav Grechannik <[email protected]>
Date:   Wed Apr 17 20:04:55 2024 +0200

    Enable inlay hints for the supporting servers (nvim-lua#843)

commit 6d6b3f3
Author: Chris Patti <[email protected]>
Date:   Wed Apr 17 14:02:24 2024 -0400

    Fix: nvim-lua#847 - add prefer_git to treesitter config (nvim-lua#856)

commit fabeb86
Author: Damjan 9000 <[email protected]>
Date:   Wed Apr 17 15:59:14 2024 +0200

    Comment about nerd font selection. Fixes nvim-lua#853 (nvim-lua#854)

commit e2bfa0c
Author: rdvm <[email protected]>
Date:   Tue Apr 16 10:29:27 2024 -0500

    Arch, btw (nvim-lua#852)

    * Arch, btw

    * Add unzip

    * Add unzip for Fedora and --needed arg for Arch

commit 2377390
Author: Viet <[email protected]>
Date:   Tue Apr 9 05:13:22 2024 +0900

    Update README (nvim-lua#832)

commit c4363e4
Author: Damjan 9000 <[email protected]>
Date:   Thu Apr 4 16:31:37 2024 +0200

    Add a pull request template (nvim-lua#825)

commit 19afab1
Author: Damjan 9000 <[email protected]>
Date:   Mon Apr 1 16:36:32 2024 +0200

    README: move backup and paths from external deps to install section (nvim-lua#819)

commit d605b84
Author: Damjan 9000 <[email protected]>
Date:   Mon Apr 1 02:00:11 2024 +0200

    Don't lazy load conform plugin (nvim-lua#818)

commit 1175f6d
Author: Damjan 9000 <[email protected]>
Date:   Sun Mar 31 19:36:43 2024 +0200

    Add a keymap space-f to format buffer using conform (nvim-lua#817)

    This works also for visual range selection
    Copied from conform recipe:
    https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md

commit 93fde05
Author: Chris Patti <[email protected]>
Date:   Wed Mar 27 11:22:28 2024 -0400

    Add instructions to quit :lazy. Fixes nvim-lua#761

commit 2877a60
Author: Liu Qisheng <[email protected]>
Date:   Wed Mar 27 22:16:48 2024 +0800

    fix nvim-lua#799 (nvim-lua#800)

    Add `'luadoc'`, to the `ensure_installed` of `nvim-treesitter/nvim-treesitter`

commit dbba54c
Author: Damjan 9000 <[email protected]>
Date:   Thu Mar 21 20:47:55 2024 +0100

    README: wrap long lines (nvim-lua#784)

commit 4c02e29
Author: E <[email protected]>
Date:   Wed Mar 20 14:27:18 2024 -0400

    Update README.md (nvim-lua#781)

    The recommended step of forking the repo coming sequentially after the step instructing users to clone the current repo doesn't make sense.

    This commit orders the install instructions in a manner that's more logical.

commit 773e482
Author: José Miguel Sarasola <[email protected]>
Date:   Mon Mar 18 22:38:14 2024 +0100

    Add nvim-nio as dependency for nvim-dap-ui (nvim-lua#774)

    It's a dependency now

commit 65a5ac4
Author: Togglebit <[email protected]>
Date:   Mon Mar 18 18:35:53 2024 +0100

    Some suggestions and capitalised a few words (nvim-lua#771)

commit 8e24ca3
Author: Fredrik Averpil <[email protected]>
Date:   Mon Mar 18 15:00:48 2024 +0100

    feat: add linter plugin (nvim-lua#699)

commit b81115d
Author: Shane Crowley <[email protected]>
Date:   Mon Mar 18 13:57:48 2024 +0000

    assign table to filetype in lua_ls config comment (nvim-lua#770)

commit a222805
Author: Damjan 9000 <[email protected]>
Date:   Sun Mar 17 21:22:58 2024 +0100

    README: additional install recipes for various OS (nvim-lua#767)

commit ea4335f
Author: Damjan 9000 <[email protected]>
Date:   Fri Mar 15 21:53:33 2024 +0100

    conform: disable autoformat on save for specified filetypes (nvim-lua#694)

    Provide a method to disable autoformat on save lsp fallback for
    specified filetypes. By default disable for C/C++ as an example,
    because it does not have a well standardized coding style.

    Based on conform recipe:
    https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md

commit da1271d
Author: stgpepper <[email protected]>
Date:   Fri Mar 15 22:51:41 2024 +0200

    Update README.md (nvim-lua#763)

    Added file text to code block for consistency since the other plugin had file also inside code block.

commit 7892c0c
Author: TJ DeVries <[email protected]>
Date:   Fri Mar 15 11:35:07 2024 -0400

    fix: disable ts indenting for Ruby

    Tree-sitter indenting for ruby is pretty terrible.
    But the fix requires a few steps, so showed those
    and documented how you could do that for other languages
    as well (with the tricky part being the
    additional_vim_regex_highlighting trick)

commit 5ac4b58
Author: TJ DeVries <[email protected]>
Date:   Fri Mar 15 11:18:43 2024 -0400

    doc: add note about advanced luasnip features

commit 2f494e5
Author: Vladislav Grechannik <[email protected]>
Date:   Fri Mar 15 15:35:42 2024 +0100

    Move friendly snippets to dependencies of LuaSnip (nvim-lua#759)

    Co-authored-by: TJ DeVries <[email protected]>

commit 452e3a7
Author: Rafael Zasas <[email protected]>
Date:   Fri Mar 15 16:12:41 2024 +0200

    Add <C-b>/<C-f> cmp mapping to scroll cmp docs (nvim-lua#750)

commit 7715b7c
Author: TLW <[email protected]>
Date:   Fri Mar 15 17:24:49 2024 +0330

    doc: add info about timeoutlen (nvim-lua#691)

    Add separate comment for `timeoutlen` option
    `timeoutlen` option was under unrelated comment with `updatetime` option.

commit b529bc3
Author: Chris Patti <[email protected]>
Date:   Tue Mar 12 18:09:47 2024 -0400

    Revert "Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696)" (nvim-lua#755)

    This reverts commit d8a1dbc.

commit d8a1dbc
Author: James Karefylakis <[email protected]>
Date:   Wed Mar 13 08:12:35 2024 +1100

    Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696)

    * Use cmp-nvim-lua as nvim-cmp source for neovim Lua API

    * Move the dependency to a more suitable place

commit 000a5c4
Author: Damjan 9000 <[email protected]>
Date:   Tue Mar 12 22:06:12 2024 +0100

    Added folke/neodev.nvim for proper nvim api completion and annotation (nvim-lua#754)

    Fixes nvim-lua#692

    `neodev` configures Lua LSP for your Neovim config, runtime and plugins
    used for completion, annotations and signatures of Neovim apis

    With neodev, there's no more need to manually set lua_ls workspace
    settings which don't seem to work properly anyway as currently nvim
    api completion does not work.

commit cb1f16b
Author: Chiller Dragon <[email protected]>
Date:   Tue Mar 12 07:20:39 2024 +0800

    chore: rename <C-T> to <C-t> for consistency (nvim-lua#719)

commit c0d6f98
Author: Ryan Baumgardner <[email protected]>
Date:   Mon Mar 11 19:18:45 2024 -0400

    feat: allow treesitter defaults to be overwritten from custom directory (nvim-lua#732)

commit 8de494f
Author: Damjan 9000 <[email protected]>
Date:   Mon Mar 11 22:52:18 2024 +0100

    README.md: update neo-tree example - remove legacy setting (nvim-lua#744)

commit 3cfccc0
Author: name.tar.xz <[email protected]>
Date:   Sun Mar 10 01:55:08 2024 +0530

    use init for colorscheme (nvim-lua#715)

commit 8fae679
Author: Nora Ayesha <[email protected]>
Date:   Sat Mar 9 02:26:32 2024 +0600

    Fix typos and whatnot (nvim-lua#731)

commit 66e2a5a
Author: Damjan 9000 <[email protected]>
Date:   Wed Mar 6 17:49:44 2024 +0100

    Make the Nerd Font an optional requirement (nvim-lua#716)

commit f764b7b
Author: Ryan Winchester <[email protected]>
Date:   Tue Mar 5 21:19:06 2024 -0400

    Add more detail to colorscheme comment (nvim-lua#713)

commit b83b2b0
Author: Chiller Dragon <[email protected]>
Date:   Mon Mar 4 21:47:45 2024 +0800

    chore: link new installation youtube video (nvim-lua#678)

commit a02abdb
Author: Chiller Dragon <[email protected]>
Date:   Mon Mar 4 21:47:11 2024 +0800

    chore: remove trailing spaces from readme (nvim-lua#679)

commit c3127f1
Author: Damjan 9000 <[email protected]>
Date:   Mon Mar 4 14:16:50 2024 +0100

    Change statusline location to LINE:COLUMN (nvim-lua#689)

commit c9122e8
Author: Damjan 9000 <[email protected]>
Date:   Mon Mar 4 01:32:06 2024 +0100

    fix: checkhealth reported nvim version (nvim-lua#685)

commit e6710a4
Author: TJ DeVries <[email protected]>
Date:   Sun Mar 3 03:13:16 2024 -0500

    fix: add note in readme for custom plugins

commit 23fc4e5
Author: Damjan 9000 <[email protected]>
Date:   Sun Mar 3 03:12:55 2024 +0100

    README.md: updated windows install instructions (nvim-lua#674)

commit b99af2d
Author: Taulant Aliraj <[email protected]>
Date:   Sun Mar 3 02:07:58 2024 +0000

    feat: use VimEnter event instead of VeryLazy (nvim-lua#673)

commit 94a9364
Author: Nhan Luu <[email protected]>
Date:   Sat Mar 2 04:07:34 2024 +0700

    chore: fix typos (nvim-lua#666)

commit 38828dc
Author: Anton Kastritskii <[email protected]>
Date:   Thu Feb 29 18:14:36 2024 +0000

    feat: enable lua lsp snipppets (nvim-lua#660)

commit b58666d
Author: TJ DeVries <[email protected]>
Date:   Thu Feb 29 12:08:01 2024 -0500

    fixup: updated some style stuff

commit 465d6f2
Author: Damjan 9000 <[email protected]>
Date:   Wed Feb 28 19:23:13 2024 +0100

    Change mini.statusline location format to LINE:COLUMN (nvim-lua#659)

    Default mini.statusline location format is:
      'cursor line | total lines │ cursor column | total columns'

commit 18b919c
Author: brxxlstxrs <[email protected]>
Date:   Tue Feb 27 21:08:37 2024 +0300

    add plugin specs docstring, remove lazy.nvim configuration (empty) table (nvim-lua#652)

commit af4fd23
Author: TJ DeVries <[email protected]>
Date:   Mon Feb 26 10:46:31 2024 -0500

    fixup: change comment to reflect auto_install

commit 1c89b02
Author: TJ DeVries <[email protected]>
Date:   Mon Feb 26 10:45:32 2024 -0500

    fixup: add autocommand link for help and description

commit 8b5d48a
Author: TJ DeVries <[email protected]>
Date:   Mon Feb 26 10:03:53 2024 -0500

    rewrite: slimmer, trimmer and more lazy kickstart.nvim (nvim-lua#635)

    We've removed over 1/3 of the code that was in kickstart previously,
    and more than doubled the amount of comments explaining every line
    of code (to the best of my ability).

    kickstart now properly uses many of the lazy.nvim config and loading
    idioms, which should be really helpful for people moving both to
    modular configs, as well as extending the kickstart config in one file.

    Additional features:
    - Beautiful ascii art
    - Added some documentation that explains what is an LSP, what is telescope, etc
    - There is now a `:checkhealth` for kickstart, which checks some basic information
      and adds useful information for maintainers (for people cloning the repo).
    - Improved LSP configuration and tool installation, for easier first time startup
    - Changed init.lua ordering, so that it moves from simple options to complicated config

    ```
    -------------------------------------------------------------------------------
    Language                     files          blank        comment           code
    -------------------------------------------------------------------------------
    Lua                              1            108            404            298
    -------------------------------------------------------------------------------
    ```

commit 7af594f
Author: rgarber11 <[email protected]>
Date:   Mon Feb 5 13:49:19 2024 -0500

    Add Build Step to LuaSnip (nvim-lua#611)

commit 5d2d81b
Author: Chris Patti <[email protected]>
Date:   Sat Feb 3 19:15:25 2024 -0500

    Fixes nvim-lua#607. Add hints for new neovim users to learn how to learn. (nvim-lua#615)

commit bc4ad12
Author: Micah Effiong <[email protected]>
Date:   Fri Feb 2 21:24:46 2024 +0100

    feat: added contexts for code action - source fix-all errors (nvim-lua#599)

    * feat: added contexts for code action - source fix-all errors

    * fix: resolve stylua checks

    * fix: resolve stylua checks

commit c3ae716
Author: Damjan 9000 <[email protected]>
Date:   Thu Feb 1 17:01:46 2024 +0100

    issue: nvim-lua#594 stylua workflow only on official kickstart repo (nvim-lua#609)

    Only run the github stylua workflow check on the official
    kickstart repo (nvim-lua/kickstart.nvim) so that it's not
    enforced on any other forks.
    As suggested by: @zwergius

commit b115814
Author: Nazar <[email protected]>
Date:   Mon Jan 29 18:52:50 2024 +0000

    Add Onedark Style (nvim-lua#590)

    * Add style options to Onedark setup (init.lua)

    * stylua init.lua

    * Load onedark through `require`

    * Improve commenting

commit deaafcf
Author: Victor Bertin <[email protected]>
Date:   Mon Jan 29 13:48:14 2024 +0100

    Set status line theme to the global colorscheme (nvim-lua#600)
  • Loading branch information
benyamins committed Apr 17, 2024
1 parent 94ef4a1 commit 1c6e161
Show file tree
Hide file tree
Showing 12 changed files with 1,105 additions and 562 deletions.
8 changes: 8 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
***************************************************************************
**NOTE**
Please verify that the `base repository` above has the intended destination!
Github by default opens Pull Requests against the parent of a forked repository.
If this is your personal fork and you didn't intend to open a PR for contribution
to the original project then adjust the `base repository` accordingly.
**************************************************************************

1 change: 1 addition & 0 deletions .github/workflows/stylua.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on: pull_request_target

jobs:
stylua-check:
if: github.repository == 'nvim-lua/kickstart.nvim'
name: Stylua Check
runs-on: ubuntu-latest
steps:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@ tags
test.sh
.luarc.json
nvim

spell/
lazy-lock.json
265 changes: 146 additions & 119 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,91 @@
# kickstart.nvim

https://github.com/kdheepak/kickstart.nvim/assets/1813121/f3ff9a2b-c31f-44df-a4fa-8a0d7b17cf7b

### Introduction
## Introduction

A starting point for Neovim that is:

* Small
* Single-file (with examples of moving to multi-file)
* Documented
* Modular
* Single-file
* Completely Documented

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.
**NOT** a Neovim distribution, but instead a starting point for your configuration.

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.
## Installation

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

### Installation
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.

> **NOTE**
> [Backup](#FAQ) your previous configuration (if any exists)
### Install External Dependencies

External Requirements:
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
- Language Setup:
- If want to write Typescript, you need `npm`
- If want to write Golang, you will need `go`
- etc.

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.
* See [Windows Installation](#Windows-Installation) if you have trouble with `telescope-fzf-native`
> **NOTE**
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
> and quick install snippets
### Install Kickstart

> **NOTE**
> [Backup](#FAQ) your previous configuration (if any exists)
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` |
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
| Windows (cmd)| `%userprofile%\AppData\Local\nvim\` |
| Windows (powershell)| `$env:USERPROFILE\AppData\Local\nvim\` |

Clone kickstart.nvim:
#### Recommended Step

[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, then install by cloning the
fork to your machine using one of the commands below, depending on your OS.

> **NOTE**
> Your fork's url will be something like this:
> `https://github.com/<your_github_username>/kickstart.nvim.git`
#### Clone kickstart.nvim
> **NOTE**
> If following the recommended step above (i.e., forking the repo), replace
> `nvim-lua` with `<your_github_username>` in the commands below
<details><summary> Linux and Mac </summary>

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

- on Windows (cmd)
</details>

<details><summary> Windows </summary>

If you're using `cmd.exe`:

```
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
```

- on Windows (powershell)
If you're using `powershell.exe`

```
git clone https://github.com/nvim-lua/kickstart.nvim.git $env:USERPROFILE\AppData\Local\nvim\
git clone https://github.com/nvim-lua/kickstart.nvim.git $env:USERPROFILE\AppData\Local\nvim\
```

</details>

### Post Installation

Expand All @@ -63,132 +95,127 @@ Start Neovim
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.
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
current plugin status. Hit `q` to close the window.

If you would prefer to hide this step and run the plugin sync from the command line, you can use:
Read through the `init.lua` file in your configuration folder for more
information about extending and exploring Neovim. That includes also
examples of adding popularly requested plugins.

```sh
nvim --headless "+Lazy! sync" +qa
```

### Getting Started

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.

### Recommended Steps

[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.

> **NOTE**
> Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git`
### Configuration And Extension

* 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:
* 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)
* Modify `init.lua` with additional plugins.
* Include the `lua/kickstart/plugins/*` files in your configuration.

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.

#### Example: Adding an autopairs plugin

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

```lua
-- 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,
}
```


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,
}
```

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.

### Contribution

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:

* 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.
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)

### FAQ

* 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)
* You should back it up and then delete all associated files.
* This includes your existing init.lua and the neovim files in `~/.local`
which can be deleted with `rm -rf ~/.local/share/nvim/`
* Can I keep my existing configuration in parallel to kickstart?
* 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:
* 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:
```
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
```
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.
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.
* What if I want to "uninstall" this configuration:
* See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
* The main purpose of kickstart is to serve as a teaching tool and a reference
configuration that someone can easily `git clone` as a basis for their own.
configuration that someone can easily use to `git clone` as a basis for their own.
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
into smaller parts. A fork of kickstart that does this while maintaining the exact
into smaller parts. A fork of kickstart that does this while maintaining the
same functionality is available here:
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
* Discussions on this topic can be found here:
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
### Windows Installation
### Install Recipes
Below you can find OS specific install instructions for Neovim and dependencies.
Installation may require installing build tools, and updating the run command for `telescope-fzf-native`
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
#### Windows Installation
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
This requires:
- Install CMake, and the Microsoft C++ Build Tools on Windows
- Install CMake and the Microsoft C++ Build Tools on Windows
```lua
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
```
</details>
<details><summary>Windows with gcc/make using chocolatey</summary>
Alternatively, one can install gcc and make which don't require changing the config,
the easiest way is to use choco:

1. install [chocolatey](https://chocolatey.org/install)
either follow the instructions on the page or use winget,
run in cmd as **admin**:
```
winget install --accept-source-agreements chocolatey.chocolatey
```

2. install all requirements using choco, exit previous cmd and
open a new one so that choco path is set, and run in cmd as **admin**:
```
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
```
</details>
<details><summary>WSL (Windows Subsystem for Linux)</summary>

```
wsl --install
wsl
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip neovim
```
</details>

#### Linux Install
<details><summary>Ubuntu Install Steps</summary>

```
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip git neovim
```
</details>
<details><summary>Debian Install Steps</summary>

```
sudo apt update
sudo apt install make gcc ripgrep unzip git
echo "deb https://deb.debian.org/debian unstable main" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install -t unstable neovim
```
</details>
<details><summary>Fedora Install Steps</summary>

```
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
```
</details>

<details><summary>Arch Install Steps</summary>

```
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
```
</details>

Loading

0 comments on commit 1c6e161

Please sign in to comment.