My awesome Neovim configuration - DEPRECATED replaced by renso.lazy
To install this config just copy these files to ~/.config/nvim/
or create a symlink to this repo in the same directory. You will need a Nerd Font installed to see all the pretty icons and Node for some plugins (e.g. Copilot).
This configuration uses Lazy.nvim as a Plugin manager, therefore the full configuration for each plugin is in its file. The plugins are structured as follows:
Click here to see the plugin structure
plugins
├── comments
│ ├── Comment.lua
│ ├── init.lua
│ ├── neogen.lua
│ └── todo-comments.lua
├── completion
│ ├── cmp.lua
│ ├── copilot.lua
│ ├── debugprint.lua
│ ├── init.lua
│ ├── nvim-autopairs.lua
│ ├── nvim-surround.lua
│ └── template.lua
├── editor
│ ├── gitsigns.lua
│ ├── init.lua
│ ├── neo-tree.nvim
│ ├── telescope.lua
│ ├── toggleterm.lua
│ ├── trouble.lua
│ └── which-key.lua
├── lsp
│ ├── settings
│ │ ├── jdtls.lua
│ │ ├── jsonls.lua
│ │ ├── lua_ls.lua
│ │ └── rust_analyzer.lua
│ ├── format.lua
│ ├── init.lua
│ ├── keymaps.lua
│ ├── lspconfig.lua
│ └── null-ls.lua
├── ui
│ ├── barbecue.lua
│ ├── bufferline.lua
│ ├── illuminate.lua
│ ├── init.lua
│ ├── lualine.lua
│ ├── noice.lua
│ ├── notify.lua
│ └── theme.lua
├── chatgpt.lua
├── competitest.lua
├── deps_manager.lua
├── treesitter.lua
└── ufo.lua
Click here to see the main plugins list
- comments
- completion
- lsp
- editor
- ui
- misc
In the user
folder are present 6 configuration files:
autocommands.lua
: Here are present autocommands that run based on the filetype opened.keymaps.lua
: Basic keymaps for basic functionalities, independent from plugins.lazy_bootstrap.lua
: Copy-paste snippet for bootstrapping Lazy.nvim.util.lua
: Some utils from LazyVim.options.lua
: Vim options.settings.lua
: Centralized place for some config such as lsp servers, linters & formatters, icons.
You can find out about other keybindings by starting one (most likely with <space>
). The main commands and categories are the following:
<space>x
: Close current buffer.<space>e
: Open and close Neotree.<space>Y
: Copy the whole file to the clipboard.<space>y
: Works likey
, but copies to the clipboard.<C-\>
: Open a terminal inside Neovim, use the same keybinding to close it.
Here you can find help for all commands, keymaps, options, etc. Just select what you want help with by pressing <space>h
.
u
: Set the root directory to the parent of the current one..
: Set the root directory to the one under the cursor.
You can use <space>l
to see diagnostics for the opened files, <space>lt
to see all the TODO, FIXME, NOTE, etc. in the current working directory.
gl
: Show diagnostics for the current line.gd
: Go to the definition of the function / class / method / type under the cursor.gr
: Show references to this function / class / method / type.K
: Open documentation about function / class under cursor.KK
: Open and navigate documentation.<M-l>
: Accept Copilot's suggestions.<C-f>
: scroll documentation downwards.<C-b>
: scroll documentation upwards.<C-e>
: close autocomplete list.<C-n>
: next list item.<C-p>
: previous list item.
<space>cg
: Open a ChatGPT prompt, you must set the API key as an environment variable, for more info see the docs.<space>ca
: Perform Code Actions.<space>cp
: Add a debug print.<space>cv
: Add a debug print of the current variable.<space>cd
: Deletes all debug prints in the current buffer.
All git commands start with <space>g
, here are the more interesting ones:
<space>gt
: Open a terminal with Lazygit.<space>ga
: Add the hunk under the cursor to changes.<space>gA
: Add all changes in the file.<space>gr
: Remove the hunk under the cursor from the changes.<space>gb
: Show blame for the current line.
You can perform actions on files with <space>f
and on buffer / history with <space>s
, more notably:
<space>ff
: Search files in the current working directory by the filename.<space>fr
: Search recently opened files by the filename.<space>ft
: Search and insert a template.<space>sf
: Search text inside the files in the current working directory.<space>sb
: Search text inside the current buffer.
<space>tr
: Compile and run all tests.<space>ta
: Add a test case.<space>te
: Edit test cases.
<space>rp
: Open a Python repl (opensipython
).<space>rn
: Open a Node.js repl.<space>rh
: Opens Htop.
You can use <space>n
to create documentation for the current function / class / type.