N-oob-vim icon indicating copy to clipboard operation
N-oob-vim copied to clipboard

A set of configurations for Neovim made in Lua by someone who doesn't know Lua but has a lot of free time.

N(oob)vim

A set of configurations for Neovim made in Lua by someone who doesn't know Lua but has a lot of free time.

How it looks

My objective

I like Neovim. A lot. I tried using VsCode for my really basic programming needs, but I was both a bit overwhelming and kind of dissappointing, specially when it comes to resource usage. So I went back to Neovim, and found out that almost none of the pre-configured configs out there really felt like home, and decided to create my own, using a mix of familiar keybindings for VsCode users and Vim users alike.

With no experience in Lua, a lot of procrastination time that should have gone to college work poured into it and a lot of trial and error, it's alive! So now I want to maintain it and make it public so people who actually know what they are doing can help make it better.

Requirements

Installation

  • First, install neovim, preferably through your package manager;
  • Install the patched font to get all the icons;
  • Then install packer.nvim, in order to manage your plugins:

git clone --depth 1 https://github.com/wbthomason/packer.nvim\ ~/.local/share/nvim/site/pack/packer/start/packer.nvim

  • Now, download and extract the package in the releases or (if you want the bleeding edge), clone the repo:

git clone https://github.com/not-a-dev-stein/N-oob-vim ~/.config/nvim

  • Now run nvim +PackerSync to install and update all the plugins
  • Install the language servers you need with :LspInstall
  • Install the extras for whatever extra feature you want;
  • That's it!

Colorscheme used:

Language servers pre-configured with:

Plugins included and pre-configured are:

  • autopairs - for automatic pairing of brackets, parenthesis, etc.
  • barbar - A nice tab/buffer bar
  • colorizer - for showing color on HEX codes (ex. #ffffff)
  • comment - for easier line commenting (pre-configured with 'SPACE+//')
  • dashboard - Nice and clean dashboard for when you open nvim cleanly
  • gitsigns - for git signs for when and where you have diffs, and checking blame
  • indent-blankline - for better indentation, showing visible signs for tabs and spaces
  • lualine - a better statusline in both looks and functionality
  • markdown-preview - An easy way to preview how your markdown files will look like
  • nvim-tree - an easy and fast file explorer to the side of the screen
  • suda - for automatically running nvim with sudo when needed
  • telescope - really powerful searching tool
  • treesitter - for better syntax highlighting, indenting and folding (which you can use with z+a)
  • ts-rainbow - for color matching of brackets, parenthesis, etc.
  • web-devicons - icons for other extensions, like nvim-tree and lualine

Extra plugins outside of nvim

  • live-server - for people who do web development, no need to keep refreshing your page after every change

Non-default keybindings

space is your leader key by default, press it twice to quickly switch between the last two buffers;

< > to change indentation levels multiple times on visual mode, instead of having to use . to repeat;

shift+j and shift+k to easily move an entire line up or down;

ctrl+shift+i to automatically format your code with Nformat;

ctrl+hjkl to navigate between splits in your screen (including nvim-tree);

leader+t to open a terminal in split;

ctrl+a in terminal mode to return to normal mode;

ctrl+m to toggle the preview of your Markdown files with markdown-preview;

Custom commands

:LiveServer to start your live server

Biggest references and help

Props to the NvChad guys, I have used their config for a long while before using VsCode and used most of the extensions they use as a base for mine, removing what I don't use and adding what's more convenient for me. LunarVim also had a big part in it, specially due to ChrisAtMachine's videos and livestreams, it was probably the best help I got in porting my old config to Lua.

What you can do to help

Everything. No joke. I have no experience in Lua, so I'm sure there's a lot that can be optimized and improved. If you want to check it out (and probably cringe a little) feel free to check the code, and use it for whatever you need. It's all yours, my friend.