- Allows me to better understand what are doing the installed plugins and depedencies. - Improves the structure of the configuration, in order to ease the maintenance. - Improves markdown experience, even if it can still be improved. - Documents the configuration in the README file. Co-Authored-by: iGor milhit <igor@milhit.ch> |
||
|---|---|---|
| after/ftplugin | ||
| lua | ||
| my_snippets | ||
| .gitignore | ||
| README.md | ||
| init.lua | ||
| init.lua.save | ||
| minit.lua | ||
README.md
| title | date | id | tags | ||||
|---|---|---|---|---|---|---|---|
| My neovim setup | 2024-05-16T12:16:06+0200 | 20240516121606 |
|
Neovim setup
This new configuration is written with the help of:
kickstart.nvim. This is a good project to kickstart a configuration, but then it takes time to understand what it makes, how to use it, and how to modify it.- Tutoriel : configurer Neovim comme IDE/éditeur de code à partir de zéro. This blog post, in French, helped me a lot to understand better my configuration and to rewrite it.
Requirements
- Neovim > 0.10.
- Ripgrep.
- A nerd font.
vscode-langservers-extracted. It's mandatory for the JSON LSP.
Structure
init.luais the configuration file, with the required includes.lua/is the folder where specific configuration and plugins are.lua/corecontains the basic configuration:options.luawith the global neovim options.keymaps.luawith the global neovim key mappings.
lua/configcontains the Lazy plugin manager installation and configuration.lua/pluginsof course contains all other plugins installation and configuration.
Plugins
I won't provide links for each of these plugins as they are easily to be found.
lazy.nvimas plugins manager.plenaryto get lua functions used by many plugins.- Adwaita for the colorscheme.
which-key.nvimto find out shortkeys.nvim-treeas file explorer.telescope.nvimfor the fuzzy finder interface. It has some specific dependencies:telescope-fzf-native.nvimto get a C implementation of fzf, with improved performances.telescope-luasnip.nvimto search for snippets. LuaSnip is a dependency fornvim-cmpwhich provides completion.telescope-agto use Ag or Ripgrep to filter results.
nvim-web-deviconsas a dependency to add icons to the interface, when it is used (file explorer, fuzzy finder).treesitterfor language grammar support (withtreesitter-textobjectsas dependency, to improve bloc selection and navigation. It is deactivated for markdown.- Markdown:
vim-pandocandvim-pandoc-syntaxto support the pandoc markdown, nice concealing, easy folding and hard wrap automatic formatting.mkdnflow.nvimto improve links navigation, table formatting, file creation, and so on. It improves also the link concealing.markdown-preview.nvimto provide a live HTML preview.
- Completion with
nvim-cmpwith the following dependencies:cmp-bufferto get text completion from the current buffer text.cmp-pathto get path completion.cmp-cmdlineto get vim cmdline completion.LuaSnipto get snippet expansion, with the nvim-cmp source for it:cmp_luasnip.friendly-snippetswhich adds some user-friendly snippets.cmp-emojifor emoji completion after ':'.lspkind.nvimto add text symbols to spot the type of source completion.
- Language servers:
lsp-zero.nvimto ease LSP configuration.nvim-lspconfigto configure LSP support and completion, with dependencies:cmp-nvim-lspto get LSP results in completion.nvim-lsp-file-operationsto add some code actions.fidget.nvimfor LSP progress message and neovim notifications.
mason.nvimwithmason-lspconfig.nvimto install automatically the needed LSP. And also withmason-tool-installerto extend it's package manager capabilities.schemastore.nvimwhich provides the schemas needed by JSON and YAML validators.
trouble.nvimto display all trouble messages (LSP, diagnostics, etc.) in a pretty list.lazdev.nvimto improvelua_lsconfiguration.vim-fugitive.gitsigns.nvimto see changes in the sign column.vim-speeddatingto increment dates, times, etc.vim-surroundto improve surroundings management.autopairs.nvim.Comment.nvimto comment lines and blocs.ident-blankline.nvimto improve readability of indentation.true-zen.nvimfor a good zen mode.toggleterm.nvimto quickly get a terminal. Might find a better one.rainbow-csv.nvimto manage CSV files.venv-selector.nvimto ease python virtual env.vim-grammalecteto get a good grammar checker for French.