summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2024-03-01 10:07:10 +0100
committerxengineering <me@xengineering.eu>2024-03-01 10:07:10 +0100
commit8d7f4ce210b10249e9e3b9516e3de5ef35d9f806 (patch)
treeb02a3b57ecfae53f89cbba43d81034cfcb011b47
parent07c54a637c219330dc8aea7c04b443c074dccadf (diff)
downloaddotfiles-8d7f4ce210b10249e9e3b9516e3de5ef35d9f806.tar
dotfiles-8d7f4ce210b10249e9e3b9516e3de5ef35d9f806.tar.zst
dotfiles-8d7f4ce210b10249e9e3b9516e3de5ef35d9f806.zip
nvim: Add README.md for configuration
-rw-r--r--nvim/README.md91
1 files changed, 91 insertions, 0 deletions
diff --git a/nvim/README.md b/nvim/README.md
new file mode 100644
index 0000000..e48c283
--- /dev/null
+++ b/nvim/README.md
@@ -0,0 +1,91 @@
+# Neovim configuration
+
+This folder contains a Neovim editor configuration.
+
+## Structure
+
+The configuration consists of a main Lua configuration file `init.lua`, this
+`README.md` and a `pack` folder with Neovim packages from third parties.
+
+```
+.
+├── init.lua
+├── pack
+│   ├── <vendor> // <vendor> can be selected arbitrarily
+│   │   └── start
+│   │   └── <package> // Git submodule, could be one of many in this folder
+└── README.md
+```
+
+All packages are Git submodules and contain third party code to extend the
+editor.
+
+## Installation
+
+This configuration requires the following software to be installed:
+
+- Neovim in a recent version
+- Ripgrep
+- Language Server Protocol Servers
+ - clangd
+ - pyright
+ - gopls
+
+### Neovim
+
+This configuration requires a recent version of Neovim and was tested with
+version `v0.9.5`. If only older versions are provided by the distribution a
+newer version can be installed as AppImage.
+
+```
+mkdir -p ~/.local/bin
+curl https://github.com/neovim/neovim/releases/download/v0.9.5/nvim.appimage \
+ > ~/.local/bin/nvim
+chmod 755 ~/.local/bin/nvim
+PATH=~/.local/bin:$PATH # add this line to shell config (e.g. .bashrc)
+ # to be permanent
+```
+
+`which` can be used to validate that the current shell uses the just downloaded
+AppImage.
+
+```
+$ which nvim
+/home/<user>/.local/bin/nvim
+```
+
+The Neovim version can be checked with `nvim` itself.
+
+```
+$ nvim --version
+NVIM v0.9.5
+Build type: Release
+LuaJIT 2.1.1702233742
+
+ System-vimrc-Datei: "$VIM/sysinit.vim"
+ Voreinstellung für $VIM: "/usr/share/nvim"
+
+Run :checkhealth for more info
+```
+
+### Ripgrep
+
+The program Ripgrep or `rg` is required for this configuration to work. It can
+be installed on most Linux distributions using the package manager:
+
+- Arch Linux: `pacman -S ripgrep`
+- Debian Linux: `apt install ripgrep`
+
+Ripgrep is used for the package `telescope` to search for keywords with good
+performance even in huge file trees.
+
+### LSP Servers
+
+The LSP servers can be installed with the package manager too:
+
+- Arch Linux: `pacman -S clang pyright gopls`
+- Debian Linux: `apt install clangd gopls`
+
+**Note for Debian**: `pyright` is not available. But the Debian package
+`python3-pylsp` works too. `pyright` has to be replaced by `pylsp` in
+`init.lua`.