/nvim

Neovim configuration :tada:

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

Worthant's Neovim configuration

Showcase

  • LaTeX live preview
image
  • Debugger
image
  • Stylish markdown & flexible kitty terminal layout
image
  • Telescope (find anything)
image image
image image
image image
image image
  • Session-scoped terminal
image image
horizontal vertical
image <- floating
  • Autocomplete commands
image image
  • Sessions management
image
  • Lazygit
image image
  • btop / btm
image image

🛠️ Installation

Generally, there are 2 ways of installing anything into .config/

1. Clone repo anywhere you want, and create a soft link there

Clone the repository

git clone https://github.com/worthant/nvim.git <your_path>

Go into ~/.config and create a symbolic link

cd ~/.config
ln -s <path_to_cloned_repo> nvim

2. Backup your files and just clone the repo into .config/

Make a backup of your current nvim and shared folder

mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak

Clone the repository

git clone https://github.com/worthant/nvim.git ~/.config/nvim

Usage

Start Neovim

nvim

Mappings

Important

If you want to discover all the keymaps - just press leader and then consecutively choose any command you want, they're well documented:

image

UX

Action Mappings
Glow Markdown Leader + gw
Preview Markdown Leader + md
Toggle btop Leader + tt
Toggle lazygit Leader + tl

Compile on the go

Action Mappings
Compile cpp Leader + cp
Compile python Leader + pp
Run js in node Leader + nn
Run js in bun Leader + nb

Terminal

Action Mappings
Toggle any terminal F2
Float terminal Leader + tf
Horizontal terminal Leader + th
Vertical terminal Leader + tv

Sessions

Action Mappings
Search sessions Leader + r

Colorscheme

Action Mappings
Select scheme Leader + ft

Telescope

Action Mappings
Find files Leader + ff
Find all files Leader + fF
Find words Leader + fw
Find words in all files Leader + fW
Find marks Leader + f'
Find man Leader + fm
Find History (old files) Leader + fo
Find registers Leader + fr
Find keymap Leader + fk

TODOs:

  • Add discord rich presence for fun
  • Change rendermarkdownh6bg colors (h1-h6) to match my colorscheme
  • Add jupyter inside nvim
  • Add a preview for images in Markdown (use this plugin)
  • Add all configs for lsp's, there shouldn't be any errors
  • Add support for clojure (lsp, debug, e.t.c.)
  • Add debugger for cpp, learn how to use it
  • fix Themery plugin for changing themes
  • Setup lsp, formatter and linter correctly
    • Python (ruff, black, mypy)
    • Tex (added preview via zathura)
    • Js/Ts
    • Rust
    • C
    • C++
    • Fish
    • Go
    • Java
    • Html, CSS, tailwind css, SCSS
    • Json, Yaml
    • CSV
      • Add rainbow_csv plugin to align and view csv inside of neovim
      • Add mappings for it
    • Note: they shouldn't interfere with eachother. Now javascript is getting formatted by clang and other bs xD
  • Add custom mappings for compiling cpp files using my cmp script
  • Add custom mappings for neatly opening a terminal (th can't close terminal - map to cntrl k and then close)
  • Setup formatter(black) and linter(ruff) for Python, using null-ls plugin
  • Add lsp for java
  • Add xml formatter (lemminx)
  • Add custom mappings for markdown preview and glow
  • Merge base & user configs into monolithic config
  • Create a separate repo for mantaining merged config
  • Popup astronvim's notifications are annoying as hell - move them to the background or remove completely
  • add confiluration for null_ls and prettier formatters
  • add multi-cursor plugin for my setup
  • add preview plugins for markdown
    • markdown-preview
    • glow
  • Use those for a while and customise what i feel is needed
  • add wakatime plugin
  • add lazygit
  • add bottom
  • add lsp servers for js, ts, html, css, twcss
  • configure highlighting & personal theme
  • add config for clangd lsp server (need for cpp)