My NeoVim Configuration

Neovim Configuration Screenshot

NeoVim Configuration for Audio Development in Python, Lua, C++, Markdown, LaTeX, MATLAB, and Obsidian

View on GitHub

Key Features

Advanced Features

LaTeX Editing Powerhouse

Complete LaTeX editing environment with VimTeX integration:

  • OS-aware PDF viewer configuration (Skim on macOS, Zathura on Linux)
  • Forward/reverse search with PDF viewers
  • Automatic compilation on save
  • UltiSnips integration for LaTeX snippets
  • Intelligent spell-checking with custom keybindings

Advanced Code Navigation

Multiple options for efficient movement through code:

  • Jump to definitions, implementations, and references with LSP
  • Flash.nvim for lightning-fast cursor movement
  • Treesitter-based code navigation with textobjects
  • Custom keymaps for function/class navigation
  • Illuminate for highlighting symbol occurrences

Multiple Language Support

First-class support for a wide range of languages:

  • TypeScript/JavaScript ecosystem with ESLint integration
  • Java/Kotlin with JDTLS and Gradle test runner
  • Ruby with StandardRB, RSpec, and debugging support
  • LaTeX with VimTeX
  • Elixir with ElixirLS and test framework integration
  • MATLAB support with vim-matlab
  • And many more through LSP and Treesitter

UI Enhancements

Beautiful and functional interface elements:

  • Custom Lualine status bar with intelligent segments
  • Noice.nvim for beautiful command line and notifications
  • Treesitter context for showing current scope
  • Telescope with custom pickers and extensions
  • Which-key for discoverability of keybindings

Terminal Integration

Multiple ways to work with the terminal:

  • ToggleTerm for floating terminals
  • Floaterm for additional terminal windows
  • AsyncRun for background command execution
  • Custom keybindings for quick terminal access

Multiplicity Tools

Tools for multiselect and batch operations:

  • vim-visual-multi for multiple cursor editing
  • Surround operations with nvim-surround
  • Treesitter-based text objects for structural selection

Installation

# Clone the repository
git clone https://github.com/yourusername/nvim-config.git ~/.config/nvim

# Install lazy.nvim (plugin manager)
git clone https://github.com/folke/lazy.nvim \
    ~/.local/share/nvim/lazy/lazy.nvim

# Open NeoVim to automatically install plugins
nvim

Custom UI with Alpha Dashboard

-- Custom Alpha dashboard configuration
dashboard.section.header.val = {
  [[⣿⣿⣿⣿⣿⣶⣄⣠⣴⣶⣶⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⡇⠀⣿⣿⠆⢰⣿⣷⠀ ]],
  [[⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⢀⣄⣀⠀⠀⠀⣀⣠⣄⣀⣀⣀⠀⠸⣿⣿⠀⠀⠀⢀⡀⠀⣀⡀⠀⠀⠀⠀⣀⣠⣄⣸⣿⡇⠀⢈⣉⡀⠀⣉⣁⠀ ]],
  [[⠛⠿⣿⣿⣿⣿⣿⣷⣹⣿⣿⣿⣧⠀⣰⣷⠀⠘⠿⣿⠇⠀⣾⣿⠿⠻⢿⣿⣿⠀⠀⣿⣿⠀⢀⣾⣿⡇⠀⢿⣿⣦⡀⢀⣾⣿⠟⠻⢿⣿⣿⠀⢸⣿⡇⠀⣿⣿⡆ ]],
  [[⠀⢸⣿⣿⣿⡛⣿⣿⣷⣿⣿⣿⠟⠀⣿⣿⠀⠀⠀⠀⠀⢸⣿⡏⠀⠀⠀⢻⣿⡆⠀⢹⣿⡇⢸⣿⡟⠀⠀⠀⠹⣿⣧⢸⣿⡏⠀⠀⠀⣿⣿⡄⠈⣿⣿⠀⢸⣿⡇ ]],
  [[⠀⠘⠿⣿⣿⣿⣾⣿⣿⣿⠏⠁⠀⠀⢻⣿⣧⡀⠀⠀⣀⠀⣿⣿⣄⠀⠀⢸⣿⣇⠀⢸⣿⣧⠘⣿⣿⣄⠀⠀⣠⣿⡟⠘⣿⣿⣄⠀⠀⢻⣿⡇⠀⣿⣿⡄⠘⣿⣧ ]],
  [[⠀⠀  ⢸⣿⣿⣿⡏⣿⠇⠀⠀⠀⠀⠙⠿⣿⣿⣿⡿⠆⠈⠻⢿⣿⠀⠘⣿⣿⣷⠘⣿⣿⠀⠘⠻⣿⡄⠀⣿⠿⠁⠀⠘⠿⣿⣿⠀⠸⣿⡷⠀⢻⣿⡇⠀⣿⣿⠀]],
  [[                                                                    ]],
  [[                        calodii studios 🐝                          ]],
  [[                                                                    ]],
}

Comprehensive Language Support

-- Treesitter configuration for syntax highlighting
configs.setup({
  ensure_installed = {
    "javascript", "typescript", "c", "lua", "vim", "vimdoc", "query",
    "elixir", "erlang", "heex", "eex", "java", "kotlin", "jq",
    "dockerfile", "json", "html", "terraform", "go", "tsx", 
    "bash", "ruby", "markdown", "java"
  },
  highlight = { enable = true },
  indent = { enable = true },
  incremental_selection = { enable = true },
  textobjects = { 
    select = { enable = true },
    move = { enable = true },
    swap = { enable = true }
  }
})

Key Commands and Shortcuts

:Format - Format the current buffer using LSP
:Specs - Toggle diagnostic display
:ToggleTerm - Toggle floating terminal
:Telescope - Fuzzy finder for files, buffers, etc.
:ChatGPT - Open ChatGPT interface
:ZenMode - Enter distraction-free writing mode
:Themery - Open theme selection menu
:Octo - GitHub PR review and management
:Oil - File explorer with buffer-like interface
:MarkdownPreview - Live preview of Markdown documents

Powerful Theme System

The configuration includes over 15 themes that can be easily switched using the :Atheme command.

Catppuccin

Rose Pine

Dracula

Tokyo Night

Gruvbox

Cyberdream

Kanagawa

Nord