From 73e9777a2bde670abe3ac46fae8d9ab4c60e00be Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 24 Feb 2023 13:01:57 +0100 Subject: [PATCH] Add README for nvim config --- dot_config/nvim/README.md | 119 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 dot_config/nvim/README.md diff --git a/dot_config/nvim/README.md b/dot_config/nvim/README.md new file mode 100644 index 0000000..7b3881c --- /dev/null +++ b/dot_config/nvim/README.md @@ -0,0 +1,119 @@ +# Neovim Setup + +Autocompletion and "code intellisense" is provided by the LSP client built into +Neovim. The following language servers are configured: + +* tsserver +* eslint +* cssls +* html + +## Requirements + +* Neovim v0.8 or greater. +* git. +* [make](https://www.gnu.org/software/make/), the build tool. +* [npm cli](https://docs.npmjs.com/cli/v8/commands/npm). Javascript package manager. +* [nodejs](https://nodejs.org/es/). Javascript runtime. Required by the language servers listed above. +* [ripgrep](https://github.com/BurntSushi/ripgrep). Improves project wide search speed. +* [fd](https://github.com/sharkdp/fd). Improves file search speed. +* A patched font to display icons. I hear [nerdfonts](https://www.nerdfonts.com/) has a good collection. + +## Keybindings + +Leader key: `Space`. + +| Mode | Key | Action | +| --- | --- | --- | +| Normal | `h` | Go to first non empty character in line. | +| Normal | `l` | Go to last non empty character in line. | +| Normal | `a` | Select all text. | +| Normal | `cp` | Copy selected text to clipboard. | +| Normal | `cv` | Paste clipboard content. | +| Normal | `w` | Save file. | +| Normal | `bq` | Close current buffer. | +| Normal | `bc` | Close current buffer while preserving the window layout. | +| Normal | `bl` | Go to last active buffer. | +| Normal | `?` | Search oldfiles history. | +| Normal | `` | Search open buffers. | +| Normal | `ff` | Find file in current working directory. | +| Normal | `fg` | Search pattern in current working directory. Interactive "grep search". | +| Normal | `fd` | Search diagnostics in current file. | +| Normal | `fs` | Search pattern in current file. | +| Normal | `e` | Open file explorer. | +| Normal | `` | Toggle the builtin terminal. | +| Normal | `K` | Displays hover information about the symbol under the cursor. | +| Normal | `gd` | Jump to the definition. | +| Normal | `gD` | Jump to declaration. | +| Normal | `gi` | Lists all the implementations for the symbol under the cursor. | +| Normal | `go` | Jumps to the definition of the type symbol | +| Normal | `gr` | Lists all the references. | +| Normal | `gs` | Displays a function's signature information. | +| Normal | `` | Renames all references to the symbol under the cursor. | +| Normal | `` | Format code in current buffer. | +| Normal | `` | Selects a code action available at the current cursor position. | +| Visual | `` | Selects a code action available in the selected text. | +| Normal | `gl` | Show diagnostics in a floating window. | +| Normal | `[d` | Move to the previous diagnostic. | +| Normal | `]d` | Move to the next diagnostic. | + +### Autocomplete keybindings + +| Mode | Key | Action | +| --- | --- | --- | +| Insert | `` | Move to previous item. | +| Insert | `` | Move to next item. | +| Insert | `` | Move to previous item. | +| Insert | `` | Move to next item. | +| Insert | `` | Scroll up in documentation window. | +| Insert | `` | Scroll down in documentation window. | +| Insert | `` | Cancel completion. | +| Insert | `` | Confirm completion. | +| Insert | `` | Confirm completion. | +| Insert | `` | Go to next placeholder in snippet. | +| Insert | `` | Go to previous placeholder in snippet. | +| Insert | `` | If completion menu is open, go to next item. Else, open completion menu. | +| Insert | `` | If completion menu is open, go to previous item. | + +## Plugin list + +| Name | Description | +| --- | --- | +| [paq-nvim](https://github.com/savq/paq-nvim) | Plugin manager. | +| [gruvbox.nvim](https://github.com/ellisonleao/gruvbox.nvim) | Gruvbox colorscheme for Neovim. | +| [nvim-web-devicons](https://github.com/kyazdani42/nvim-web-devicons) | Helper functions to show icons. | +| [nvim-colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua) | The fastest Neovim colorizer. | +| [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) | Pretty statusline. | +| [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) | Shows indent guides in current file. | +| [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) | Fuzzy finder. | +| [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) | Extension for telescope. Allows fzf-like syntax in searches. | +| [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) | Shows indicators in gutter based on file changes detected by git. | +| [vim-fugitive](https://github.com/tpope/vim-fugitive) | Git integration into Neovim/Vim. | +| [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) | Configures treesitter parsers. Provides modules to manipulate code. | +| [nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects) | Creates textobjects based on treesitter queries. | +| [telescope-file-browser.nvim](https://github.com/nvim-telescope/telescope-file-browser.nvim) | File Browser extension for telescope.nvim. | +| [Comment.nvim](https://github.com/numToStr/Comment.nvim) | Toggle comments. | +| [nvim-surround](https://github.com/kylechui/nvim-surround) | Add/change/delete surrounding delimiter pairs with ease. | +| [nvim-autopairs](https://github.com/windwp/nvim-autopairs) | Autopairs for neovim. | +| [hop.nvim](https://github.com/phaazon/hop.nvim) | Neovim motions on speed! | +| [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) | Collection of modules. Used internaly by other plugins. | +| [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) | Manage terminal windows easily. | +| [mason.nvim](https://github.com/williamboman/mason.nvim) | Portable package manager for Neovim. | +| [mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) | Integrates nvim-lspconfig and mason.nvim. | +| [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) | Quickstart configs for Neovim's LSP client. | +| [lspkind.nvim](https://github.com/onsails/lspkind.nvim) | vscode-like pictograms for neovim lsp completion items. | +| [lsp-format.nvim](https://github.com/lukas-reineke/lsp-format.nvim) | A wrapper around Neovims native LSP formatting. | +| [trouble.nvim](https://github.com/folke/trouble.nvim) | A pretty diagnostics, references, telescope results, quickfix and location list. | +| [nvim-dap](https://github.com/mfussenegger/nvim-dap) | Debug Adapter Protocol client implementation for Neovim | +| [nvim-dap-virtual-text](https://github.com/theHamsta/nvim-dap-virtual-text) | Virtual text support to nvim-dap | +| [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui) | A UI for nvim-dap | +| [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) | Autocompletion engine. | +| [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) | nvim-cmp source. Suggest words in the current buffer. | +| [cmp-path](https://github.com/hrsh7th/cmp-path) | nvim-cmp source. Show suggestions based on file system paths. | +| [cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip) | nvim-cmp source. Show suggestions based on installed snippets. | +| [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) | nvim-cmp source. Show suggestions based on LSP servers queries. | +| [cmp-nvim-lua](https://github.com/hrsh7th/cmp-nvim-lua) | nvim-cmp source for nvim lua. | +| [LuaSnip](https://github.com/L3MON4D3/LuaSnip) | Snippet engine. | +| [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) | Collection of snippets. | +| [telekasten.nvim](https://github.com/renerocksai/telekasten.nvim) | A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal | +| [calendar-vim](https://github.com/renerocksai/calendar-vim) | calendar in vimscript |