My neovim config for a smooth programming experience, everyday.
- Comfort: I use this everyday, it has to be nice and enjoyable.
- Fast: it must be Blazingly fast!!!
- Evolutive: I'm constantly improving my workflow adding valuable features and unpluging those which I do not use.
You can clone this repo, change whatever you want and build your own setup on top of it.
- Install Neovim (at least 0.9 version)
- Clone this repository.
- Check you don't have a previous
~/.config/nvim/
directory. - Start neovim and let
Lazy
do its magic! - You're good to go 🚀
- Most of the bindings are behind
<leader>
which is set toSpace
. Relies on WhichKeys for discoverability. - Telescope and FZF.
- LSP centric.
- Treesitter for syntax highlighting and manipulations.
- DAP for debuggin in nvim.
- Organized as following:
init.lua
bootstrapcore
utils (keymaps, options, etc.) and Lazy along with its plugins.lua/emicastro/plugins
contains all the plugins and their configuration. You can setup your own configs, remove some plugins you don't want or add new ones.- LSP and debbugging (DAP) capabilities are contained in their own subdirectories whitin the
/plugins
directory.
- LSP and debbugging (DAP) capabilities are contained in their own subdirectories whitin the
lua/emicastro/core
contains general mappings and neovim options.lua/emicastro/plugins/init.lua
file contains the url of the plugins that do not need configuration to be initialized.
That way, to install a new plugin it only needs to be added into lua/emicastro/plugins
as a file usually called <plugin_name>.lua
and must return a table with its repository's url and a config function.
You can see the Lazy repository to see more details about how plugins work or just look into one of the already installed and you'll catch up the ritght way to install them. For plugins that do not need a setup, you just add the name of their repository to the
lua/emicastro/plugins/init.lua
file.
You always can run the command :Lazy
to check the status of your plugins.
List of languages that this configuration accomodates for:
- Go ( via go.nvim)
- Rust (via rustaceanvim)
- Lua
I've also included some tools like language parsers, linters or LSP servers for 'c', 'html', 'json', among many others because I use them, but you should not hesitate on remove them if you don't need them.
You can find them in the lua/emicastro/plugins/treesitter.lua
file where there are plenty of language parsers for highlighting, and in the lua/emicastro/plugins/mason.lua
for lsp servers, daps and linters.
- Themes: Current theme is
rose-pine
but can change in the future. - Font:
FiraCode Nerdfont Retina
used from the MacOs iTerm settings, do not specify one just for nvim.