Skip to content

Latest commit

 

History

History
80 lines (60 loc) · 3.24 KB

File metadata and controls

80 lines (60 loc) · 3.24 KB

⚡ Neovim Configuration

Neovim Header

📖 Overview

A highly customized, performance-oriented Neovim configuration built completely in Lua (with a sprinkle of Fennel). It aims to provide a modern IDE-like experience without the bloat, focusing on aesthetics, speed, and ergonomics.

Philosophy: "VS Code features, Vim speed."

✨ Key Features

  • 🚀 Plugin Management: Powered by lazy.nvim for blazing fast startup times.
  • 🧠 LSP: Native vim.lsp configuration enhanced with mason.nvim to easily install servers, linters, and formatters.
  • 🔮 Completion: Ultra-fast completion using blink.cmp and snippet support via LuaSnip.
  • 🌲 File Explorer: snacks.nvim explorer on the right sidebar with custom icons.
  • 🔭 Fuzzy Finding: snacks.nvim pickers for files, grep, git history, and more.
  • 🎨 Theme: Custom nitepal.nvim colorscheme (Work In Progress).
  • 🐘 PHP Support: Specialized setup for PHP development (DAP, PHPActor, Code Sniffer).

📂 File Structure

The configuration follows a modular structure for easy maintenance:

config/nvim/
├── init.lua              # Entry point (bootstraps lazy.nvim)
├── flsproject.fnl        # Fennel project configuration
├── lua/
│   ├── jascha030/        # Core configuration module
│   │   ├── core/         # Options, globals
│   │   └── ...
│   └── plugins/          # Plugin definitions (Lazy.nvim specs)
│       ├── lsp.lua       # LSP & Mason setup
│       ├── completion.lua# Autocompletion
│       └── ...
└── after/                # Filetype specific settings

⌨️ Keybindings

The Leader Key is set to <Space>.

Mode Key Action
Normal <Space>fe Toggle File Explorer (Snacks)
Normal <Space>ff Find Files (Snacks)
Normal <Space>fg Live Grep (Snacks)
Normal <Space>fb Find Buffers
Normal <C-h/j/k/l> Window Navigation

Tip: This config uses which-key.nvim. Press <Space> and wait to see a popup with all available keybindings!

🛠️ Prerequisites

Ensure you have the following installed on your system:

  • Neovim (>= 0.9.0)
  • Node.js (required for some LSPs/Mason)
  • Ripgrep (required for grep pickers)
  • fd (optional, improves file finding)
  • PHP (if using PHP features)
  • Composer

📦 Installation

This configuration is part of my dotfiles. To install it separately:

# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak

# Clone repo (assuming you just want the nvim config)
# Note: This repo is a full dotfiles repo, so you'd normally link it.
git clone https://github.com/jascha030/.dotfiles.git ~/tmp_dotfiles
mkdir -p ~/.config/nvim
cp -r ~/tmp_dotfiles/config/nvim/* ~/.config/nvim/