Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PowerTools Dotfiles

Modern dotfiles configuration for macOS with vim, wezterm, ranger, and custom scripts.

Overview

This repository manages development environment configurations using GNU Stow for symlink management. Originally created in 2021, comprehensively modernized in 2026.

What's Configured

  • Vim - Modern vim setup with 7 essential plugins (linter, file explorer, fuzzy finder, git integration)
  • WezTerm - Terminal emulator configuration
  • Ranger - Console file manager settings
  • Scripts - Custom utility scripts (gum commit helper)
  • Shell - ZSH configurations and environment variables

Quick Start

Prerequisites

  • macOS (Catalina or later)
  • Homebrew installed
  • Git

Installation

# Clone the repository
git clone <your-repo-url> ~/Dev/powerTools
cd ~/Dev/powerTools

# Run the installation script (idempotent - safe to run multiple times)
./install_dependencies.sh

The script will:

  • Update vim plugins (git submodules)
  • Install Homebrew dependencies
  • Install modern CLI tools (ripgrep, fd, bat, delta, fzf, eza)
  • Create symlinks using stow
  • Configure .zshrc and git settings

Post-Installation

# Restart your terminal or source .zshrc
source ~/.zshrc

# Test vim (should start without errors)
vim

# Test ranger
ranger

What Gets Installed

Vim Plugins (in ~/.vim/pack/vendor/start/)

  • ALE - Asynchronous Lint Engine (linter/fixer for multiple languages)
  • NERDTree - File explorer (Ctrl+t to toggle)
  • CtrlP - Fuzzy file finder (Ctrl+p)
  • Lightline - Beautiful statusline
  • MRU - Most Recently Used files (Enter to open)
  • vim-argwrap - Wrap/unwrap function arguments (backtick+a)
  • vim-gitgutter - Git diff in the gutter

Modern CLI Tools

  • ripgrep (rg) - Faster grep
  • fd - Better find
  • bat - Cat with syntax highlighting
  • delta - Beautiful git diffs
  • fzf - Fuzzy finder
  • eza - Modern ls replacement
  • ranger - Console file manager
  • pipx - Python tool installer

Configurations

  • ~/.vimrc - Vim configuration
  • ~/.wezterm.lua - WezTerm terminal config
  • ~/.config/ranger/ - Ranger file manager config

Usage

Vim Keybindings

Default leader key: backtick (`)

Key Action
Ctrl+t Toggle NERDTree
Ctrl+p Open CtrlP fuzzy finder
Ctrl+n Open NERDTree
Enter Open MRU (Most Recently Used files)
`a Toggle ArgWrap (wrap/unwrap arguments)
`ak ALE next error
`aj ALE previous error

Vim Features

  • Line numbers enabled
  • Smart case-insensitive search
  • System clipboard integration (macOS)
  • Mouse support
  • Split windows open below
  • 4-space tabs
  • Syntax highlighting and filetype detection

Updating Vim Plugins

cd ~/Dev/powerTools
git submodule update --remote --merge
git add -A
git commit -m "chore: update vim plugins"

Re-running Installation

The installation script is idempotent - you can run it multiple times safely:

./install_dependencies.sh

It will:

  • Skip already-installed packages
  • Not create duplicate .zshrc entries
  • Safely restow configurations

Project Structure

powerTools/
├── install_dependencies.sh    # Main installation script
├── .gitmodules                # Git submodules (vim plugins)
├── vim/                       # Vim configuration
│   ├── .vimrc                 # Main vim config
│   └── .vim/pack/vendor/start/  # Vim plugins (submodules)
├── wezterm/                   # WezTerm configuration
│   └── .wezterm.lua
├── ranger/                    # Ranger configuration
│   └── ranger/
│       └── rc.conf
└── scripts/                   # Custom scripts
    └── gum_commit.sh          # Interactive commit helper

Customization

Adding Vim Plugins

  1. Add as git submodule:

    cd ~/Dev/powerTools
    git submodule add <plugin-url> vim/.vim/pack/vendor/start/<plugin-name>
  2. Update .gitmodules and commit

  3. Plugin will load automatically on vim start

Modifying Vim Configuration

Edit ~/Dev/powerTools/vim/.vimrc then:

cd ~/Dev/powerTools
stow --restow -t ~ vim

Or just edit ~/.vimrc directly (it's a symlink).

Adding Shell Aliases

Add to your ~/.zshrc or create ~/.zsh_aliases:

# Add to .zshrc
echo 'alias ll="eza -la"' >> ~/.zshrc
source ~/.zshrc

Troubleshooting

Vim plugins not loading

# Ensure submodules are initialized
cd ~/Dev/powerTools
git submodule update --init --recursive

Stow conflicts

If stow reports conflicts (existing files):

# Backup existing files
mv ~/.vimrc ~/.vimrc.backup

# Re-run stow
stow --restow -t ~ vim

.zshrc modifications duplicated

The script should prevent duplicates, but if they occur:

# Remove duplicates manually
vim ~/.zshrc

# Or use uniq (backup first!)
cp ~/.zshrc ~/.zshrc.backup
cat ~/.zshrc | awk '!seen[$0]++' > ~/.zshrc.tmp && mv ~/.zshrc.tmp ~/.zshrc

Vim starts with errors

Check which plugin causes the issue:

# Start vim in verbose mode
vim -V9vim_debug.log

# Check the log
cat vim_debug.log

Uninstallation

cd ~/Dev/powerTools

# Unstow all packages
stow -D -t ~ vim
stow -D -t ~ wezterm
stow -D -t ~/.config ranger

# Remove installed tools (optional)
brew uninstall ripgrep fd bat delta fzf eza ranger pipx

# Remove .zshrc entries manually if desired
vim ~/.zshrc

Migration Notes

From Old Setup (Pre-2026)

This modernization includes:

  • All vim plugins updated from 2021→2026 versions
  • Removed all pyenv references
  • Added modern CLI tools
  • Made installation script idempotent
  • Fixed critical bugs (vim runtimepath, duplicate .gitmodules)
  • Added comprehensive documentation

Your existing configs are preserved. The installation script is safe to run over existing setups.

Planning Neovim Switch

When ready to switch to Neovim:

  1. Keep this vim config as fallback
  2. Create separate nvim/ directory
  3. Neovim will use ~/.config/nvim/ (won't conflict)
  4. Gradually migrate configs and test

Contributing

This is a personal dotfiles repository. Feel free to fork and adapt to your needs.

License

MIT License - Feel free to use and modify

Changelog

See CHANGELOG.md for version history.

Resources


Last Updated: 2026-04-02 Maintained by: @danwork

About

my dotfiles and vim setup

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages