3.5 KiB
3.5 KiB
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:
Requirements
Structure
init.lua
is the configuration file, with the required includes.lua/
is the folder where specific configuration and plugins are.lua/core
contains the basic configuration:options.lua
with the global neovim options.keymaps.lua
with the global neovim key mappings.
lua/config
contains the Lazy plugin manager installation and configuration.lua/plugins
of course contains all other plugins installation and configuration.
Plugins
lazy.nvim
as plugins manager.plenary
to get lua functions used by many plugins.- Adwaita for the colorscheme.
which-key.nvim
to find out shortkeys.nvim-tree
as file explorer.telescope.nvim
for the fuzzy finder interface. It has some specific dependencies:telescope-fzf-native.nvim
to get a C implementation of fzf, with improved performances.telescope-luasnip.nvim
to search for snippets. LuaSnip is a dependency fornvim-cmp
which provides completion.telescope-ag
to use Ag or Ripgrep to filter results.
nvim-web-devicons
as a dependency to add icons to the interface, when it is used (file explorer, fuzzy finder).treesitter
for language grammar support (withtreesitter-textobjects
as dependency, to improve bloc selection and navigation. It is deactivated for markdown.- Markdown:
vim-pandoc
andvim-pandoc-syntax
to support the pandoc markdown, nice concealing, easy folding and hard wrap automatic formatting.mkdnflow.nvim
to improve links navigation, table formatting, file creation, and so on. It improves also the link concealing.markdown-preview.nvim
to provide a live HTML preview.
- Completion with
nvim-cmp
with the following dependencies:cmp-buffer
to get text completion from the current buffer text.cmp-path
to get path completion.cmp-cmdline
to get vim cmdline completion.LuaSnip
to get snippet expansion, with the nvim-cmp source for it:cmp_luasnip
.friendly-snippets
which adds some user-friendly snippets.cmp-emoji
for emoji completion after ':'.lspkind.nvim
to add text symbols to spot the type of source completion.
- Language servers:
lsp-zero.nvim
to ease LSP configuration.nvim-lspconfig
to configure LSP support and completion, with dependencies:cmp-nvim-lsp
to get LSP results in completion.nvim-lsp-file-operations
to add some code actions.
mason.nvim
withmason-lspconfig.nvim
to install automatically the needed LSP.
lazdev.nvim
to improve lua_ls configuration.vim-fugitive
.vim-speeddating
to increment dates, times, etc.vim-sleuth
to detect tabstop and shiftwidth automatically.vim-surround
to improve surroundings management.autopairs.nvim
.Comment.nvim
to comment lines and blocs.ident-blankline.nvim
to improve readability of indentation.