dotfiles/dot_config/nvim
2024-04-28 08:07:29 +02:00
..
lua Update config for new setup 2024-04-28 08:07:29 +02:00
init.lua.tmpl Adopt nvim config. Remove passwds from mail setup 2024-04-26 14:31:04 +02:00
README.md Add README for nvim config 2023-02-24 13:01:57 +01:00
stylua.toml Introduce lazyvim for macos and linux 2023-10-13 21:54:13 +02:00

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, the build tool.
  • npm cli. Javascript package manager.
  • nodejs. Javascript runtime. Required by the language servers listed above.
  • ripgrep. Improves project wide search speed.
  • fd. Improves file search speed.
  • A patched font to display icons. I hear nerdfonts has a good collection.

Keybindings

Leader key: Space.

Mode Key Action
Normal <leader>h Go to first non empty character in line.
Normal <leader>l Go to last non empty character in line.
Normal <leader>a Select all text.
Normal cp Copy selected text to clipboard.
Normal cv Paste clipboard content.
Normal <leader>w Save file.
Normal <leader>bq Close current buffer.
Normal <leader>bc Close current buffer while preserving the window layout.
Normal <leader>bl Go to last active buffer.
Normal <leader>? Search oldfiles history.
Normal <leader><space> Search open buffers.
Normal <leader>ff Find file in current working directory.
Normal <leader>fg Search pattern in current working directory. Interactive "grep search".
Normal <leader>fd Search diagnostics in current file.
Normal <leader>fs Search pattern in current file.
Normal <leader>e Open file explorer.
Normal <Ctrl-g> 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 <F2> Renames all references to the symbol under the cursor.
Normal <F3> Format code in current buffer.
Normal <F4> Selects a code action available at the current cursor position.
Visual <F4> 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 <Up> Move to previous item.
Insert <Down> Move to next item.
Insert <Ctrl-p> Move to previous item.
Insert <Ctrl-n> Move to next item.
Insert <Ctrl-u> Scroll up in documentation window.
Insert <Ctrl-d> Scroll down in documentation window.
Insert <Ctrl-e> Cancel completion.
Insert <C-y> Confirm completion.
Insert <Enter> Confirm completion.
Insert <Ctrl-f> Go to next placeholder in snippet.
Insert <Ctrl-b> Go to previous placeholder in snippet.
Insert <Tab> If completion menu is open, go to next item. Else, open completion menu.
Insert <Shift-Tab> If completion menu is open, go to previous item.

Plugin list

Name Description
paq-nvim Plugin manager.
gruvbox.nvim Gruvbox colorscheme for Neovim.
nvim-web-devicons Helper functions to show icons.
nvim-colorizer.lua The fastest Neovim colorizer.
lualine.nvim Pretty statusline.
indent-blankline.nvim Shows indent guides in current file.
telescope.nvim Fuzzy finder.
telescope-fzf-native.nvim Extension for telescope. Allows fzf-like syntax in searches.
gitsigns.nvim Shows indicators in gutter based on file changes detected by git.
vim-fugitive Git integration into Neovim/Vim.
nvim-treesitter Configures treesitter parsers. Provides modules to manipulate code.
nvim-treesitter-textobjects Creates textobjects based on treesitter queries.
telescope-file-browser.nvim File Browser extension for telescope.nvim.
Comment.nvim Toggle comments.
nvim-surround Add/change/delete surrounding delimiter pairs with ease.
nvim-autopairs Autopairs for neovim.
hop.nvim Neovim motions on speed!
plenary.nvim Collection of modules. Used internaly by other plugins.
toggleterm.nvim Manage terminal windows easily.
mason.nvim Portable package manager for Neovim.
mason-lspconfig.nvim Integrates nvim-lspconfig and mason.nvim.
nvim-lspconfig Quickstart configs for Neovim's LSP client.
lspkind.nvim vscode-like pictograms for neovim lsp completion items.
lsp-format.nvim A wrapper around Neovims native LSP formatting.
trouble.nvim A pretty diagnostics, references, telescope results, quickfix and location list.
nvim-dap Debug Adapter Protocol client implementation for Neovim
nvim-dap-virtual-text Virtual text support to nvim-dap
nvim-dap-ui A UI for nvim-dap
nvim-cmp Autocompletion engine.
cmp-buffer nvim-cmp source. Suggest words in the current buffer.
cmp-path nvim-cmp source. Show suggestions based on file system paths.
cmp_luasnip nvim-cmp source. Show suggestions based on installed snippets.
cmp-nvim-lsp nvim-cmp source. Show suggestions based on LSP servers queries.
cmp-nvim-lua nvim-cmp source for nvim lua.
LuaSnip Snippet engine.
friendly-snippets Collection of snippets.
telekasten.nvim A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal
calendar-vim calendar in vimscript