Skip to content

theopn/theovim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Theovim

theovim-banner

Overview

Theovim is my personal Neovim configuration, featuring a complete Telescope, Treesitter, and LSP setup, ~30 carefully selected plugins, and custom UI components in Lua.

Theovim:

  1. prioritizes built-in Neovim features and Lua over plugins to avoid duplicate keybindings and features
  2. keeps the stock configuration as much as possible when using external plugins -- the plugin author knows more about the plugin than I do
  3. follows the Open-closed Principle when organizing Lua configuration modules

For more information, read the Highlights section and the built-in help documentation using :help theovim.

Prerequisites

  • A terminal emulator with true color support. A few recommendations:
  • Neovim version > 0.8.3
    • Unfortunately, my school's Debian server uses outdated Neovim, forcing me to use some deprecated APIs and older versions of plug-ins
    • These will be indicated in code comments and will be fixed as soon as possible
    • Thanks to my friend Shriansh for at least making them upgrade from 0.5 to 0.8
  • NerdFonts to render glyphs
  • make and some C compiler to compile telescope-fzf-native.nvim
  • npm, g++ (gcc-c++), and unzip for some LSP servers
  • git to update Theovim

Installation

Note

I highly recommend you to fork this repository and tweak settings on your own.

# Optional backup
[[ -e ~/.config/nvim ]] && mv ~/.config/nvim ~/.config/nvim.bak
# Install Theovim files in ~/.config/nvim
git clone --depth 1 https://github.com/theopn/theovim.git ~/.config/nvim

Highlights

  • :help theovim-tldr: Summary of the Theovim help documentation

Core

Theovim creates a solid base Neovim experience by maximizing built-in features. The core module initializes sensible default options, autocmds, and keybindings without external plugins or modules.

  • Automatically adjust indentation settings using ftplugin
  • Spell check in relevant buffers
  • Fold using Tree-sitter
  • Smarter window navigation

For more information:

  • :help theovim-core-options
  • :help theovim-core-keymaps
  • :help theovim-core-commands
  • :help theovim-core-autocmds
  • :help theovim-core-netrw

Plugins

Theovim provides ~30 carefully selected plugins managed by lazy.nvim. Here are some of the plugins that will make your life easier.

  • oil.nvim is a file manager that lets you manage files like a Vim buffer
  • nvim-autopairs automatically insert matching parentheses, quotes, etc.
  • which-key.nvim displays a popup with all possible keybindings
  • nvim-colorizer.lua highlight color codes (hex codes, ANSI color name such as "Magenta", CSS functions, etc.)
  • todo-comments.nvim highlights keywords such as TODO, WARN, etc.
  • gitsigns.nvim provides Git signs in the gutter (+, -, ~, etc.) as well as other useful Git functionalities, such as diff, navigating hunks, and blame tool
  • Tokyo Night is a beautiful default theme for Theovim
  • Markdown Preview offers a real-time previewer for markdown files in your browser
  • VimTeX is a LaTeX integration for Vim, providing syntax highlights and real-time compilation.

For more information:

  • :help theovim-plugins

Telescope

Telescope.nvim is a fuzzy finder for Neovim. It allows you to jump between files, buffers, and anything you could think of in a matter of a few keystrokes.

My Telescope configuration is heavily inspired by Kickstart.nvim, a configuration template written by TJ DeVries who is the author of Telescope.nvim and the core maintainer of Neovim.

A few of my favorite Telescope features:

  • :Telescope buffers (<leader><leader>): lists all open buffers
  • :Telescope oldfile (<leader>s.): finds recently opened files
  • :Telescope (<leader>ss): searches Telescope functions using Telescope
  • :Telescope find_files (<leader>sf): searches files in the current and children directories
  • :Telescope live_grep (<leader>sg): searches for a word in the all the files in the current and children directories
  • :Telescope git_commits (<leader>gc): searches for Git commits

For more information:

  • :help theovim-telescope

Treesitter

Treesitter (TS) is an incremental parser generator for more accurate syntax highlighting compared to the default regex-based highlighting. TS also integrates with Vim's folding and selection mechanism to provide a more efficient navigation and editing experience.

For more information:

  • :help theovim-treesitter

LSP

Neovim's built-in LSP offers modern IDE features for any language you want (assuming one of the 350+ Neovim LSP servers supports the language you use) with flexible customizability and low resource usage. Like Telescope, my LSP configuration is heavily inspired by TJ's Kickstart.nvim.

There are three main parts of LSP:

  • Diagnostics: error diagnostics and fix suggestions
  • LSP: hover documentation, formatting, refactoring, and much more
  • Completion: auto-completion for keywords, variables, templates (snippets), buffer words, and paths

For more information:

  • :help theovim-diagnostic
  • :help theovim-lsp
  • :help theovim-completion

UI

Theovim features unique UI components written in Lua.

  • Tabline: A simple and unique Tabline with buffer information to keep track of open buffers without sacrificing Vim's built-in tab system
  • Statusline: A simple and informative Statusline inspired by Mini.nvim (https://github.com/echasnovski/mini.nvim), featuring Git and LSP information
  • Dashboard: Startup dashboard with a random ASCII art that resemble my chunky cat Oliver

For more information:

  • :help theovim-ui

References

About

My Neovim configuration, geared toward CS studies

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published