This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This repository contains personal dotfiles for configuring various development tools including:
- Zsh (with Oh-My-Zsh)
- Vim
- Tmux
- Git
- Ruby gems
- RSpec
- Claude
- VS Code
The dotfiles are installed by creating symbolic links from this repository to the user's home directory. The README contains the necessary commands:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
ln -s ~/code/personal/dotfiles/zshrc ~/.zshrc
ln -s ~/code/personal/dotfiles/zprofile ~/.zprofile
ln -s ~/code/personal/dotfiles/gemrc ~/.gemrc
ln -s ~/code/personal/dotfiles/tmux.conf ~/.tmux.conf
ln -s ~/code/personal/dotfiles/vimrc ~/.vimrc
ln -s ~/code/personal/dotfiles/gitignore_global ~/.gitignore_global
ln -s ~/code/personal/dotfiles/gitconfig ~/.gitconfig
ln -s ~/code/personal/dotfiles/tool-versions ~/.tool-versions
ln -s ~/code/personal/dotfiles/claude_settings.json ~/.claude/settings.json
mkdir -p ~/Library/Application\ Support/Claude
ln -s ~/code/personal/dotfiles/claude_desktop_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
mkdir -p ~/Library/Application\ Support/Code/User
ln -s ~/code/personal/dotfiles/vscode_settings.json ~/Library/Application\ Support/Code/User/settings.json
ln -s ~/code/personal/dotfiles/vscode_keybindings.json ~/Library/Application\ Support/Code/User/keybindings.json
mkdir -p ~/.config/ghostty
ln -s ~/code/personal/dotfiles/ghostty_config ~/.config/ghostty/configVim plugins can be installed with:
mkdir -p ~/.vim/pack/plugins/opt
cd ~/.vim/pack/plugins/opt
git clone git@github.com:tpope/vim-sensible.git
git clone git@github.com:christoomey/vim-tmux-navigator.git
git clone git@github.com:junegunn/fzf.git
git clone git@github.com:junegunn/fzf.vim.git
git clone git@github.com:dense-analysis/ale.git
git clone git@github.com:slim-template/vim-slim.git
git clone git@github.com:airblade/vim-gitgutter.git
git clone git@github.com:pantharshit00/vim-prisma.gitVim colorscheme can be installed with:
mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vimKey aspects of the zshrc configuration:
- Uses Oh-My-Zsh with the "robbyrussell" theme (customized to show project name instead of directory)
- Sets vim as the default editor
- Contains aliases for Rails, npm, and git workflow
- Configures environment for Ruby (asdf), and other development tools
- Supports private project name aliases via
~/.project_aliases(not committed to this repo)
The tmux configuration includes:
- Sets the prefix to C-s
- Configures vim-tmux-navigator for seamless navigation between panes
- Custom key bindings for splitting windows, resizing panes, and other operations
- Plugin management with tpm (Tmux Plugin Manager)
The vim configuration includes:
- Space as leader key
- Custom settings for indentation, line numbers, and text width
- No backup/swap files
- Custom key mappings
- Integration with tmux
- FZF integration for fuzzy file finding (requires FZF executable to be installed via
brew install fzfon macOS) - ALE for asynchronous linting and fixing
- Slim template syntax highlighting
- GitGutter for showing git diff markers in the sign column
The gitconfig sets up:
- User information
- Vim as the default editor
- Custom aliases for git commands
- Default branch name set to "main"
The gitignore_global excludes:
- Editor files (.vscode, .idea, .swp)
- OS files (.DS_Store)
- Compiled sources and packages
- Logs and databases
- npm lock files when using yarn
The VS Code settings are currently empty and can be customized as needed.
The VS Code keybindings include:
- `ctrl+`` - Focus next terminal when in terminal
ctrl+\\- Close panel
After making changes to the dotfiles in this repository, remember to:
- Commit the changes to keep track of your configurations
- If needed, update the symbolic links to reflect changes