Skip to content

cyrillus31/nvim-config

Repository files navigation

nvim-config

My own NeoVim config from ground up.

NVIM v0.11.2
Build type: RelWithDebInfo
LuaJIT 2.1.1744318430 Lua 5.1

How to install

Backup your current NeoVim files

# required
mv ~/.config/nvim ~/.config/nvim.bak

# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
# {,.bak} is a brace expansion command which translates to the same thing

Clone the repository and watch Lazy install everything

git clone https://github.com/cyrillus31/nvim-config.git ~/.config/nvim && nvim

Use alias to run new configuration from a different directory

git clone https://github.com/cyrillus31/nvim-config.git ~/.config/new-nvim-config
echo alias newnvim="'NVIM_APPNAME=new-nvim-config nvim'" >> ~/.bashrc
source ~/.bashrc
newnvim

Test installation in a self-destructing Docker contianer with Fedora

source run_in_container.sh

Dependencies

  • neovim
  • git
  • ripgrep
  • fzf
  • wget
  • unzip
  • npm -> yarn (for markdown-preview)

Cheatsheet

lua_neovim_cheatsheet.md

TODO


  • Nvim-Treesitter

  • Lazy (Package Manager)

  • Status Line (Lualine or Mini)

  • Mason.nvim: LSP/DAP/Linter/Formatter package manager

    • mason-lspconfig: automatically install and enable LSPs with Mason
    • mason-null-ls: to just install formatters automatically via Mason (but configure with conform.nvim)
    • mason-nvim-lint: to install and enable linters
    • fidget.nvim: for bottom right corner LSP status updates
    • Lua
      • folke/lazydev.nvim (make LSP knowledgeable about global 'vim' variable and so on)
      • lua_ls (lsp)
      • stylua (formatter)
    • Go
      • gopls (lsp)
    • Python
      • pyright (linter)
    • c / cpp
      • clangd
    • js/ts (?)
  • nvim-lspconfig: repo with basic default LSP configurations

  • Formatting (done by 'conform.nvim')

    • On command ()
    • On save
  • Autocompletion ( works by default omni completion)

  • Telescope

    • Various searches + key maps
  • Harpoon (v2)

  • Floating terminal

  • File tree manager

  • Markdown-preview

  • DEBUGGING

  • Which-key

  • Colorschemes

    • Nightfox (the best theme)
    • kanagawa
    • tokyonight
    • catppuccin
    • gruvbox
    • github-nvim-theme
  • autopairs

  • gitsigns

  • indent-blankline indentation guidelines

  • nvim-highlight-colors show hex values colors as inline text

  • nvim-ts-autotag autoclose html tags

  • Quality of life keymaps (moving around splits, clipbaord, etc.)

  • Filetype plugins: 'after/ftplugin'

    • lua.lua
    • python.lua
    • go.lua
  • Custom scripts

    • Visual mode multiline append
    • Visual mode multiline prepend (not ready yet)
  • Startup screen

  • From kickstart.nvim

    • vim.highlight.on_yank()
    • whichkey setup

About

My NeoVim config from ground up

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages