packer.nvim - A use-package inspired plugin manager for Neovim
nvim-tree.lua - A File Explorer written In Lua
indentBlankline - Adds indentation guides to all lines (including empty lines)
nvim-autopairs - A super powerful autopairs for Neovim
feline.nvim - A minimal, stylish and customizable statusline for Neovim written in Lua
nvim-web-devicons - A Lua fork of vim-devicons
vista.vim - View and search LSP symbols, tags in Vim/NeoVim
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
nvim-cmp - Auto completion plugin
nvim-lspconfig - A collection of common configurations for Neovim's built-in language server client
LuaSnip - Snippet Engine for Neovim written in Lua
gitsigns - Super fast git decorations implemented purely in lua/teal
alpha-nvim - A fast and highly customizable greeter for neovim.
├── lua
│ ├── plugins
│ │ ├── alpha-nvim.lua
│ │ ├── feline.lua
│ │ ├── indent-blankline.lua
│ │ ├── nvim-cmp.lua
│ │ ├── nvim-lspconfig.lua
│ │ ├── nvim-tree.lua
│ │ ├── nvim-treesitter.lua
│ │ ├── packer.lua
│ │ └── vista.lua
│ ├── colors.lua
│ ├── keymaps.lua
│ └── settings.lua
├── plugin
│ └── packer_compiled.lua
└── init.lua
-
init.lua: Main configuration file (call
lua
modules, load plugins etc.) -
lua: Folder of
lua
modules, here reside all the Lua modules that needed. These modules are called frominit.lua
file (See below). For plugins settings I use the convention/lua/plugins/<plugin_name>.lua>
. See: https://github.com/nanotee/nvim-lua-guide#where-to-put-lua-files -
settings.lua: General Neovim settings and configuration
-
keymaps.lua: Keymaps configuration file, vim/neovim and plugins keymaps.
-
colors.lua: Define Neovim and plugins colors
-
plugins/packer.lua: Plugin manager settings
-
plugins/alpha-nvim.lua: Dashboard
-
plugins/feline.lua: Statusline configuration file
-
plugins/indent-blankline.lua: Indent line
-
plugins/nvim-cmp.lua: Autocompletion settings
-
plugins/nvim-lspconfig.lua: LSP configuration (language servers, keybinding)
-
plugins/nvim-tree.lua: File manager settings
-
plugins/nvim-treesitter: Treesitter interface configuration
-
plugins/vista.lua: Tag viewer settings
Colorschemes:
Fonts: Cozette
Icons: nvim-web-devicons
Monokai
Rose Pine
-
Install neovim v0.6.x
-
Install npm (for download the packages of LSP language servers)
-
Download this repository with
git
and copy thenvim
folder
git clone https://github.com/brainfucksec/neovim-lua.git
cd neovim-lua/
cp -Rv nvim ~/.config/
- Install packer.nvim for manage the plugins, see: https://github.com/wbthomason/packer.nvim#quickstart
- Install LSP language servers with
npm
sudo npm install -g bash-language-server pyright vscode-langservers-extracted tsserver
-
Open a source file of one of the supported languages with
neovim
, in the Neovim cmd line run command :LspInfo for testing the LSP support
Bash - bashls
Python - pyright
C-C++ - clangd
HTML/CSS/JSON - vscode-html
JavaScript/TypeScript - tsserver
See: nvim-lspconfig #doc/server_configurations.md
- Add Lua to LSP configuration
- Improve Terminal
-
Lua in Y minutes - https://learnxinyminutes.com/docs/lua/
-
Lua Quick Guide - https://github.com/medwatt/Notes/blob/main/Lua/Lua_Quick_Guide.ipynb
-
Lua 5.4 Reference Manual - https://www.lua.org/manual/5.4/
-
This configuration is in development version. See:
Version
on init.lua file, anyway sometimes small changes are not included, so you always see git commits. -
As all my setups I try to follow the KISS principle, probably some concepts may not be valid for everyone, then feel free to take what you need but don't install anything without checking first!