This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a personal dotfiles repository containing configuration files and setup scripts for a macOS development environment. The repository follows a modular approach with symlinks managed by the installation script.
- nvim/: Neovim configuration using Lazy plugin manager
init.lua: Entry point that sets up lazy.nvim and loads custom configurationlua/lazy_plugins/: Plugin configurations for various tools (LSP, completion, telescope, etc.)lua/yvhn/: Personal configuration modules (settings, keymaps, commands)
- zsh/: Shell configuration with modular structure
.zshrc: Sources environment variables and modular configuration filesthemes/: Custom zsh theme (lambda_minimal)
- karabiner/: Keyboard remapping configuration (Caps Lock to Hyper key or Escape)
- tmux utilities: Session management and cheat sheet scripts
The Neovim configuration follows a two-tier plugin system:
lazy_plugins/- Contains individual plugin configurationsyvhn/- Contains personal settings, keymaps, and custom commands loaded viayvhn/init.lua
The zsh configuration uses a modular approach where .zshrc sources separate module files for different concerns (aliases, settings, theme, etc.).
# Install the dotfiles (creates symlinks to ~/.config and home directory)
cd ~/code/dotfiles
./install.shThe install script creates symlinks for all configuration files and installs required global npm packages and brew dependencies.
nvim/lua/yvhn/settings.lua- Core Neovim settingsnvim/lua/yvhn/keymap.lua- Custom key mappingszsh/.zshrc- Main shell configuration entry pointkarabiner/karabiner.json- Keyboard remapping rules
Global tools installed by the setup:
- ripgrep (for telescope search)
- prettier, tldr, typescript, @vue/language-server (npm globals)
- Neovim plugins managed by lazy.nvim
- oh-my-zsh with custom theme
When modifying configurations:
- Edit files directly in the dotfiles repository
- Changes are immediately reflected due to symlinks
- For Neovim plugins, use
:Lazycommands to manage - Restart relevant applications to pick up configuration changes