Skip to content

This is my 🦍🍌 Neovim setup ♻️ repository. It contains ❀️ and configuration files πŸ’Ύ for the best editor on earth 🌎!

License

Notifications You must be signed in to change notification settings

gorillamoe/neovimfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

logo

Gorilla Moe's Neovim configuration files

Made with love

List of Terms β€’ Install β€’ Features β€’ Language servers and treesitter

You probably guessed it already, but these are my personal Neovim configuration files.

Terms used in this README

  • Version Control System (VCS) A system that tracks changes to files over time. Examples include Git, Jujutsu, Mercurial, and Subversion.
  • Representational State Transfer (REST)
  • Language Server Protocol (LSP)
  • Treesitter: A syntax parser and highlighter
  • Greatest Of All Time (GOAT)
  • In My Opinion (IMO)
  • In My Humble Opinion (IMHO)
  • Video Home System (VHS) Pretty much obsolete technology for storing and playing video cassettes. Mainly used in the 80s and 90s.

Install

There are some prerequisites you need to have installed.

  • Neovim 0.11.5+ (tested, might work on older versions, but not guaranteed)
  • Node.js 22+ (for most LSP servers)

Clone this repository

Clone this repository to your local machine:

mkdir -p ~/projects/personal
git clone https://github.com/gorillamoe/neovimfiles ~/projects/personal/neovimfiles

Symlink the configuration

I use shazam.sh to symlink all my dotfiles, but you can just run this command manually:

ln -s ~/projects/personal/neovimfiles ~/.config/nvim

Install external dependencies

I use zana to manage most of my LSP servers, linters and formatters.

You should use whatever floats your boat. Zana works great for me, but your mileage may vary.

Start neovim

You should see a "Installing lazy.nvim.." and popup installing the plugins on the first run

Features

This isn't an exhaustive list of all the plugins I use, but these are some of the main ones:

  • lazy.nvim to manage my plugins. Until someone invents a better plugin manager (I doubt it), this is what I'll use.
  • which-key.nvim - Available keybindings in a beautiful popup. Just blissful.
  • trouble.nvim - A pretty diagnostics list.
  • time-machine.nvim - View local history for a file. Inspired by GitHub's file history view. Lets you easily browse and restore previous versions of a file.
  • kulala.nvim as a REST/GraphQL/Websocket/gRPC API client inside Neovim. It's a great way to test APIs without leaving Neovim. It even comes with a built-in LSP server and supports most of the features from JetBrains' HTTP Client.
  • snap.nvim - Beautiful screenshots, that use your theme's colors. Take screenshots of code snippets directly from Neovim, with syntax highlighting and your color scheme. It also supports html output which works in most email clients. I was using codesnap.nvim before, but since v2 broke compatibility with my setup, I built snap.nvim as a replacement.
  • kikao.nvim - Session persistence that gets out of your way. This mimics the way most IDEs handle project sessions. When you open Neovim in a project folder (if it detects a VCS folder), it'll automatically restore your last session for that project. Also makes it easy for other plugins to persist data per project.
  • vhs-era as color scheme. VHS Era is a dark, vibrant, and retro-futuristic color scheme inspired by the aesthetics of the 1980s and early 1990s.
  • LSP and Syntax:
    • nvim-lspconfig to configure LSP servers. It's comes with sensible defaults and is easy to use.
    • nvim-treesitter for syntax parsing and highlighting. Can't live without it.
  • fzf-lua as fuzzy finder. The best fuzzy finder out there, IMO.
  • lualine.nvim as status line. I love myself a good status line.
  • nvim-cmp as completion plugin. Simply the GOAT of completion plugins for Neovim.
  • File and buffer management:
    • bafa.nvim - Buffer management, easy πŸ¦₯ and uncomplicated. List buffers, close buffers, switch buffers, reorder buffers. Supports auto-sorting buffers by most recently used.
    • oil.nvim as file manager. Lightweight and minimal. Use it mostly for quick file operations (moving, renaming, deleting).
    • nvim-tree.lua as file explorer (barely used). (nice to have, if you're new to a project and want to quickly browse files)
  • Git integration:
    • gitsigns.nvim for git signs in gutter.
    • [blame.nvim] to know who to blame 😏
    • neogit as git client.
    • diffview.nvim to view git diffs.
    • diffconflicts.nvim to resolve merge conflicts.
    • ndoo.nvim to interact with GitHub, GitLab, and Bitbucket. Fetches issues and pull/merge requests. Also supports opening files at a given line, hash or branch (opens in your default browser).
  • Comments:

Language servers and treesitter

I have some languages configured for treesitter that I use regularly.

I also use some LSP servers for languages I use regularly.

I also have the TypeScript preview LSP server configured, which works great for JavaScript and TypeScript projects, IMHO.

About

This is my 🦍🍌 Neovim setup ♻️ repository. It contains ❀️ and configuration files πŸ’Ύ for the best editor on earth 🌎!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published