Consolidated vim, tmux, and zsh configurations in one portable repository.
~/.config/
├── vim/ # Vim configuration
├── tmux/ # Tmux configuration
└── zsh/ # Zsh configuration with Oh-My-Zsh
- Git
- Vim (or MacVim on macOS)
- Tmux 3.1+ (for automatic ~/.config/tmux support)
- Zsh
# HTTPS
git clone https://github.com/jlconlin/dotfiles.git ~/.config
# or SSH
git clone git@github.com:jlconlin/dotfiles.git ~/.config
cd ~/.config
./install.shThe install script will:
- Initialize git submodules
- Create
~/.zshrcsymlink (backs up existing file if needed) - Install vim plugins automatically
- Provide next steps for completion
After installation, reload your shell:
source ~/.zshrcThis repository is configured for automatic setup in GitHub Codespaces. Simply name it dotfiles in your GitHub account, and Codespaces will automatically run install.sh when creating new dev environments.
- Location:
~/.config/vim/ - Portable: Uses
$MYVIMDIRvariable for all paths - Plugins: Managed by vim-plug, installed to
~/.config/vim/plugged/ - Runtime files: Backup, swap, and undo in
~/.config/vim/files/
The vim configuration automatically sets $MYVIMDIR to its own directory, making it location-independent.
- Location:
~/.config/tmux/ - Auto-discovered: Tmux 3.1+ automatically looks in
~/.config/tmux/tmux.conf - Plugins: Managed by TPM (Tmux Plugin Manager)
- Location:
~/.config/zsh/ - Framework: Oh-My-Zsh with custom plugins
- Platform-specific: Separate configs for macOS (
macos.zsh) and Linux (linux.zsh) - Load order: Oh-My-Zsh loads first, then platform-specific configs override defaults
This repository uses git submodules for:
tmux/plugins/tpm- Tmux Plugin Managerzsh/ohmyzsh- Oh-My-Zsh frameworkzsh/custom/plugins/zsh-autosuggestions- Command suggestionszsh/custom/plugins/zsh-syntax-highlighting- Syntax highlighting
Update all submodules:
git submodule update --remote --merge- Uses MacVim as the default editor
- Custom aliases in
zsh/macos.zsh - Color support enabled with
-Gflag forls
- Uses system vim
- Custom aliases in
zsh/linux.zsh - Color support with
--color=autoflag
Create ~/.zshrc.local for machine-specific settings that won't be committed:
# Example: local proxy settings, API keys, etc.
export CUSTOM_VAR="value"Edit vim/Plug.vim to add or remove plugins, then run:
vim +PluginInstall +qallEdit the plugins array in zsh/ohmy.zsh:
plugins=(
gitfast
zsh-autosuggestions
zsh-syntax-highlighting
# add more here
)cd ~/.config
git pull
git submodule update --init --recursiveTo add more tool configurations to this repo:
- Create a new directory (e.g.,
git/) - Add relevant
.gitignoreentries if needed - Update this README
- Commit and push
This repository was created by merging three separate git repositories (vim, tmux, zsh) while preserving their complete commit history. The merge was performed using git filter-branch with subdirectory prefixes.
Personal configuration files - use at your own risk.