vim-config

Docs Dotfiles Hub Theme: Catppuccin Mocha Vim 8.2+ / 9.0+ License: MIT

A lightweight, zero-plugin Vim configuration crafted in the official Catppuccin Mocha palette. Built with native Vimscript for sub-10ms startup times, pure XDG file hygiene, dynamic statusline telemetry, and keybindings synchronized with Neovim.

Note

Part of the Arch Dotfiles Ecosystem: Built for Arch Linux as part of arch-dotfiles, this Vim configuration is engineered as a robust, dependency-free editor setup that runs out-of-the-box on any Arch Linux system, minimal SSH servers, containers, other Linux distributions, or macOS without package managers or plugin compilers.


Key Highlights

  • ⚡ Zero External Plugins: 100% self-contained native Vimscript. No vim-plug, no pathogen, and no network dependencies needed during editor startup.

  • 🎨 Native Catppuccin Mocha: Complete 16-color pastel theme defined natively in GUI colors (#1e1e2e base, #89b4fa pastel blue, #cba6f7 mauve, #a6e3a1 green).

  • 📊 Dynamic Statusline: Custom modular statusline displaying live mode colors (NORMAL, INSERT, VISUAL, REPLACE), line number state (NUM:REL, NUM:ABS, NUM:OFF), file encoding, and cursor telemetry.

  • 🔢 Hybrid Line Number Toggling: Instant switching between relative (hybrid) and absolute line numbers via <Space>un, <Space>rn, <Space>n, or <F3>. Complete toggle with <Space>uN.

  • 🧹 XDG Directory Compliance: No .swp clutter in project trees. Persistent undo history is neatly stored in ~/.local/state/vim/undo/ and session data in ~/.local/state/vim/viminfo.

  • 🔄 Neovim Harmony: Shares identical <Space> Leader key, split navigation (Ctrl+h/j/k/l), and buffer management (Shift+H, Shift+L) with nvim-config.


Table of Contents


Quick Start

Standalone Installation

# Clone repository to ~/.config/vim
git clone https://github.com/MichaelWeissDEV/vim-config.git ~/.config/vim

# Symlink to ~/.vimrc and ensure undo directory exists
ln -sfn ~/.config/vim/vimrc ~/.vimrc
mkdir -p ~/.local/state/vim/undo

In the Arch Dotfiles Repository

This repository is maintained as a Git Subtree at vim/ inside ~/git/dotfiles:

# Update everything (system, dotfiles & all subtrees):
adot update
# (also available as: arch-dot update / arch-dotfiles update)

# Update only the vim subtree from upstream:
adot update vim

# Inspect status or Vim keybindings:
adot status
adot keys vim

# Push local changes back to upstream:
adot push vim

Connected Dotfiles Ecosystem

  • Arch Dotfiles Hub (arch-dotfiles): Central repository uniting the Arch Linux + Hyprland desktop, window manager, and shell environments.

  • nvim-config: Reproducible, offline-capable Neovim IDE powered by native Lua, LSP, and Tree-sitter.

  • tmux-config: Terminal multiplexer sharing identical navigation semantics.

  • ghostty-config: High-performance GPU terminal with matching Catppuccin theme.

  • kitty-config: GPU terminal with Powerline tabs and transparency.