This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Personal dotfiles repository for a zsh + sheldon + vim development environment. The setup script symlinks config files into $HOME.
Run setup.zsh to bootstrap the environment. It:
- Creates
~/.vim/plugins/and symlinksrc/,syntax/,dict/, andvimrcinto~/.vim/ - Links
sheldon/plugins.tomlinto~/.config/sheldon/ - Symlinks
zprofileto~/.zprofileandzshrcto~/.zshrc - Symlinks
tmux.confto~/.tmux.conf - Links
.claude/agents, commands (per-file) and skills (per-directory) into~/.claude/
After running:
sheldon lock # download all plugins- zsh, sheldon, ghq, peco, starship, fnm, uv
| File/Dir | Purpose |
|---|---|
setup.zsh |
Bootstrap script — symlinks all configs |
zprofile |
Login shell — env vars (BROWSER, EDITOR, PAGER, LANG, LESS), PATH (includes $HOME/.local/bin for uv) |
zshrc |
Interactive shell — zsh options, sheldon plugin loading, peco-src keybind (Ctrl+]), compinit |
sheldon/plugins.toml |
Sheldon plugin manifest — zsh-completions, zsh-autosuggestions, zsh-syntax-highlighting |
vimrc |
Vim config using dein.vim plugin manager |
tmux.conf |
tmux config — prefix is C-q, vim-style pane navigation |
rc/dein.toml |
Always-loaded vim plugins |
rc/dein_lazy.toml |
Filetype-lazy vim plugins (JS, Go, PHP, Vue, etc.) |
syntax/php.vim |
PHP syntax file |
dict/php.dict |
PHP dictionary for neocomplete |
.claude/agents/ |
Custom Claude Code review agents (reviewer, simplify-reviewer, codex-reviewer) |
.claude/commands/ |
Custom slash commands (self-review, self-review-and-comment) |
.claude/skills/ |
Custom skills (fix-review-comments) |
zprofile/zshrc split: Login-shell env vars live in zprofile; interactive config (options, plugins, keybinds) lives in zshrc.
zshrc: Ctrl+] triggers peco-src — fuzzy-finds ghq-managed repos and cds into them. Sheldon loads plugins (completions, autosuggestions, syntax-highlighting), then compinit runs. fnm is initialized via eval "$(fnm env --use-on-cd)" — automatically switches Node.js version when entering a directory with .node-version or .nvmrc. Starship prompt is initialized via eval "$(starship init zsh)" at the end.
vimrc: Uses dein.vim (plugins in ~/.vim/plugins/). Key plugins: neocomplete, neosnippet, NERDTree (nt), unite.vim, ALE (lint on save only), vim-fugitive, neoformat (auto-formats JS on save).
tmux.conf: Prefix C-q, vim-style pane selection (h/j/k/l), split with v/s, mouse enabled.