|
|
@ -17,12 +17,13 @@ |
|
|
|
- [On MacOS](#on-macos) |
|
|
|
- [On Windows](#on-windows) |
|
|
|
- [Doom Nvim](#doom-nvim) |
|
|
|
- [Using cheovim](#using-cheovim) |
|
|
|
- [Update & Rollback](#update--rollback) |
|
|
|
- [Update Doom Nvim](#update-doom-nvim) |
|
|
|
- [Rollback](#rollback) |
|
|
|
- [Configuration](#configuration) |
|
|
|
- [Modules](#modules) |
|
|
|
- [Package Management](#package-management) |
|
|
|
- [Plugins Management](#plugins-management) |
|
|
|
- [Installing plugins](#installing-plugins) |
|
|
|
- [Disabling plugins](#disabling-plugins) |
|
|
|
- [Configuring Doom](#configuring-doom) |
|
|
@ -58,6 +59,8 @@ of your distribution, so you have several options to install it. |
|
|
|
|
|
|
|
2. Using extra repositories according to your distribution (PPA/COPR/AUR/etc). |
|
|
|
|
|
|
|
3. Using a Neovim version manager like [nvenv](https://github.com/NTBBloodbath/nvenv). |
|
|
|
|
|
|
|
#### Ubuntu |
|
|
|
|
|
|
|
You can get nightly builds of git master from the |
|
|
@ -68,6 +71,17 @@ add-apt-repository ppa:neovim-ppa/unstable |
|
|
|
apt-get update |
|
|
|
``` |
|
|
|
|
|
|
|
#### Fedora |
|
|
|
|
|
|
|
Nightly builds can be installed by using the |
|
|
|
[agriffis/neovim-nightly](https://copr.fedorainfracloud.org/coprs/agriffis/neovim-nightly/) |
|
|
|
COPR repository. |
|
|
|
|
|
|
|
```sh |
|
|
|
dnf copr enable agriffis/neovim-nightly |
|
|
|
dnf update |
|
|
|
``` |
|
|
|
|
|
|
|
#### Arch |
|
|
|
|
|
|
|
Neovim Nightly builds can be installed using the PKGBUILD |
|
|
@ -76,9 +90,18 @@ available on the [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository |
|
|
|
|
|
|
|
### On MacOS |
|
|
|
|
|
|
|
Neovim nightly can be installed with [homebrew](https://brew.sh/) with the following command. |
|
|
|
You can download a prebuilt binary from the [Neovim](https://github.com/neovim/neovim/releases/tag/nightly) nightly releases page. |
|
|
|
|
|
|
|
1. Download: `curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim-macos.tar.gz` |
|
|
|
2. Extract: `tar xzvf nvim-macos.tar.gz` |
|
|
|
3. Run: `./nvim-osx64/bin/nvim` |
|
|
|
|
|
|
|
You may wish to add it to your PATH using something like: |
|
|
|
`export PATH="$HOME/nvim-osx64/bin:$PATH"` |
|
|
|
|
|
|
|
`brew install --HEAD neovim` |
|
|
|
Neovim nightly can also be downloaded with [homebrew](https://brew.sh/): |
|
|
|
|
|
|
|
`brew install --HEAD neovim` will download the source and build it locally on your machine. |
|
|
|
|
|
|
|
If you already have Neovim v4 installed you may need to unlink it. |
|
|
|
|
|
|
@ -124,8 +147,10 @@ You can also download a prebuilt binary from the [Neovim](https://github.com/neo |
|
|
|
```sh |
|
|
|
# Required dependencies |
|
|
|
apt-get install git ripgrep |
|
|
|
|
|
|
|
# (Optional) Improves performance for many file indexing commands |
|
|
|
apt-get install fd-find |
|
|
|
|
|
|
|
# (Optional) Required by Language Server Protocols |
|
|
|
apt-get install nodejs npm |
|
|
|
``` |
|
|
@ -135,8 +160,10 @@ apt-get install nodejs npm |
|
|
|
```sh |
|
|
|
# Required dependencies |
|
|
|
dnf install git ripgrep |
|
|
|
|
|
|
|
# (Optional) Improves performance for many file indexing commands |
|
|
|
dnf install fd-find # is 'fd' in Fedora <28 |
|
|
|
|
|
|
|
# (Optional) Required by Language Server Protocols |
|
|
|
dnf install nodejs |
|
|
|
``` |
|
|
@ -146,8 +173,10 @@ dnf install nodejs |
|
|
|
```sh |
|
|
|
# Required dependencies |
|
|
|
pacman -S git ripgrep |
|
|
|
|
|
|
|
# (Optional) Improves performance for many file indexing commands |
|
|
|
pacman -S fd |
|
|
|
|
|
|
|
# (Optional) Required by Language Server Protocols |
|
|
|
pacman -S nodejs npm |
|
|
|
``` |
|
|
@ -192,6 +221,19 @@ curl -sLf https://raw.githubusercontent.com/NTBBloodbath/doom-nvim/main/install. |
|
|
|
The installation script will set up everything for you and will work you through |
|
|
|
the first-time setup of Doom Nvim. |
|
|
|
|
|
|
|
### Using cheovim |
|
|
|
|
|
|
|
If you're using cheovim as your Neovim configurations manager you can use the |
|
|
|
recipe listed in cheovim documentation: |
|
|
|
|
|
|
|
```lua |
|
|
|
doom_nvim = { "~/.config/doom-nvim", { |
|
|
|
plugins = "packer", |
|
|
|
preconfigure = "doom-nvim" |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
# Update & Rollback |
|
|
|
|
|
|
|
## Update Doom Nvim |
|
|
@ -209,11 +251,11 @@ and restore the backup of your previous setup. |
|
|
|
|
|
|
|
You can configure Doom Nvim by tweaking the file `doomrc` in your Doom Nvim root |
|
|
|
dir (`$HOME/.config/doom-nvim/` by default), please see |
|
|
|
<kbd>:h doom_nvim</kbd> for more information. |
|
|
|
<kbd>:h doom_nvim_options</kbd> for more information. |
|
|
|
|
|
|
|
> **IMPORTANT:** any changes to your Doom Nvim configuration occassionally |
|
|
|
> need a run of `:PackerSync` inside Neovim. For instance, when you enable |
|
|
|
> a disabled plugin. |
|
|
|
> need a run of `:PackerSync` inside Neovim (if you're using the stable branch). |
|
|
|
> For instance, when you enable a disabled plugin. |
|
|
|
|
|
|
|
## Modules |
|
|
|
|
|
|
@ -221,21 +263,21 @@ Doom Nvim consists of around 7 modules and growing. A Doom Nvim Module is a bund |
|
|
|
configuration and commands, organized into a unit that can be toggled easily by |
|
|
|
tweaking your doomrc (found in `$HOME/.config/doom-nvim`). |
|
|
|
|
|
|
|
Please see [Package Management](#package-management) for more information. |
|
|
|
Please see [Plugins Management](#plugins-management) for more information. |
|
|
|
|
|
|
|
> **IMPORTANT:** any changes to your Doom Nvim Modules won't take effect until |
|
|
|
> you run `:PackerSync` inside Neovim. |
|
|
|
|
|
|
|
## Package Management |
|
|
|
## Plugins Management |
|
|
|
|
|
|
|
Doom Nvim does not use Vim-Plug in the Neovim Nightly version. Instead, it uses |
|
|
|
a declarative and use-package inspired package manager called |
|
|
|
Doom Nvim uses a declarative and use-package inspired package manager called |
|
|
|
[packer.nvim](https://github.com/wbthomason/packer.nvim). |
|
|
|
|
|
|
|
Modules and plugins are declared in `lua/plugins/init.lua` file, located in your Doom Nvim root dir. |
|
|
|
Read on to learn how to use this system to install your own plugins. |
|
|
|
Modules and plugins are declared in `lua/doom/modules/init.lua` file, located |
|
|
|
in your Doom Nvim root dir. Read on to learn how to use this system to install |
|
|
|
your own plugins. |
|
|
|
|
|
|
|
> **WARNING:** Do not install plugins directly in `lua/plugins/init.lua`. Instead, |
|
|
|
> **WARNING:** Do not install plugins directly in `lua/doom/modules/init.lua`. Instead, |
|
|
|
> use your `doomrc` to modify them. |
|
|
|
|
|
|
|
### Installing plugins |
|
|
@ -248,22 +290,25 @@ in your `doomrc`. |
|
|
|
custom_plugins = { 'plugin_author/plugin_repo' } |
|
|
|
``` |
|
|
|
|
|
|
|
You can also use other method if the plugin depends on other plugins. |
|
|
|
You can also use other method if the plugin depends on other plugins. All the |
|
|
|
available options for the plugins can be found on |
|
|
|
[packer.nvim](https://github.com/wbthomason/packer.nvim) README file. |
|
|
|
|
|
|
|
```lua |
|
|
|
custom_plugins = { |
|
|
|
'plugin_author/plugin_repo', |
|
|
|
{ |
|
|
|
'repo': 'plugin_author/second_plugin_repo', |
|
|
|
'enabled': true, -- not required, true by default |
|
|
|
'requires': { 'foo', 'bar' } -- not required if the plugin does not have dependencies |
|
|
|
'plugin_author/second_plugin_repo', |
|
|
|
disable = false, -- not required, false by default |
|
|
|
requires = { 'foo', 'bar' } -- not required if the plugin does not have dependencies |
|
|
|
}, |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
> **NOTES:** |
|
|
|
> |
|
|
|
> 1. Do not forget to run `:PackerInstall` to install your new plugins. |
|
|
|
> 1. Do not forget to run `:PackerInstall` to install your new plugins if you're |
|
|
|
> using the stable branch of Doom Nvim. |
|
|
|
|
|
|
|
### Disabling plugins |
|
|
|
|
|
|
@ -275,12 +320,13 @@ To disable plugins from Doom Nvim Modules or disable a module itself, just use t |
|
|
|
disabled_plugins = { 'terminal', 'treesitter' } |
|
|
|
|
|
|
|
-- @default = { 'git', 'lsp', 'web' } |
|
|
|
let g:doom_disabled_modules = { 'web' } |
|
|
|
disabled_modules = { 'web' } |
|
|
|
``` |
|
|
|
|
|
|
|
> **NOTES:** |
|
|
|
> |
|
|
|
> 1. Do not forget to run `:PackerSync` or your changes won't take effect. |
|
|
|
> 1. Do not forget to run `:PackerSync` or your changes won't take effect if you're |
|
|
|
> using the stable branch of Doom Nvim. |
|
|
|
> |
|
|
|
> 2. You can see a list of the plugins that you can disable on [Modules](./modules.md#list-of-modules). |
|
|
|
> |
|
|
@ -291,19 +337,19 @@ let g:doom_disabled_modules = { 'web' } |
|
|
|
### Configuring settings |
|
|
|
|
|
|
|
You can change Doom's default settings by tweaking your `doomrc`, please see |
|
|
|
<kbd>:h doom_nvim</kbd> to know how to. |
|
|
|
<kbd>:h doom_nvim_options</kbd> to know how to. |
|
|
|
|
|
|
|
### Configuring plugins |
|
|
|
|
|
|
|
Do you want to change some configurations of some modules? |
|
|
|
|
|
|
|
Go to `lua/plugins/configs` dir and you will find the configurations for the plugins. |
|
|
|
Go to `lua/doom/modules/config` dir and you will find the configurations for the plugins. |
|
|
|
|
|
|
|
#### Configuring LSP |
|
|
|
|
|
|
|
[LSP](https://microsoft.github.io/language-server-protocol/) is installed as a plugin. |
|
|
|
Be aware that this plugin is disabled per default. To enable it, remove it from the |
|
|
|
`Disabled plugins` section in your `doomrc`. |
|
|
|
`disabled_modules` section in your `doomrc`. |
|
|
|
|
|
|
|
To easily install LSPs and without having to do it system-wide or having to |
|
|
|
manually configure servers, Doom Nvim makes use of [kabouzeid/nvim-lspinstall](https://github.com/kabouzeid/nvim-lspinstall). |
|
|
@ -319,5 +365,5 @@ You can see a list of currently supported languages at [bundled installers](http |
|
|
|
|
|
|
|
You can modify the default keybindings by modifying the following files: |
|
|
|
|
|
|
|
- `lua/doom/keybindings/init.lua` - General and SPC keybindings |
|
|
|
- `lua/plugins/configs` - lua plugins keybindings |
|
|
|
- `lua/doom/core/keybindings/init.lua` - General and SPC keybindings |
|
|
|
- `lua/doom/modules/config` - lua plugins keybindings |
|
|
|