# shellcheck shell=bash # Zsh configuration for AI coding agent devcontainer # Add user-installed agent CLIs to PATH export PATH="$HOME/.local/bin:$PATH" # fnm (Fast Node Manager) export FNM_DIR="$HOME/.fnm" export PATH="$FNM_DIR:$PATH" eval "$(fnm env --use-on-cd)" # History settings export HISTFILE=/commandhistory/.zsh_history export HISTSIZE=200000 export SAVEHIST=200000 setopt SHARE_HISTORY setopt HIST_IGNORE_DUPS setopt HIST_IGNORE_ALL_DUPS # Remove older duplicate entries setopt HIST_REDUCE_BLANKS # Remove extra blanks from commands setopt HIST_VERIFY # Show command before executing from history # Directory navigation setopt AUTO_CD # cd by typing directory name setopt AUTO_PUSHD # Push directories onto stack setopt PUSHD_IGNORE_DUPS # Don't push duplicates setopt PUSHD_SILENT # Don't print stack after pushd/popd # Completion setopt COMPLETE_IN_WORD # Complete from both ends of word setopt ALWAYS_TO_END # Move cursor to end after completion # Aliases alias fd=fdfind alias sg=ast-grep alias claude-yolo='claude --dangerously-skip-permissions' alias codex-yolo='codex --dangerously-bypass-approvals-and-sandbox' alias ll='ls -lah --color=auto' alias la='ls -A --color=auto' alias l='ls -CF --color=auto' alias grep='grep --color=auto' # fzf configuration - use fd for faster file finding export FZF_DEFAULT_COMMAND='fdfind --type f --hidden --follow --exclude .git' export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" export FZF_ALT_C_COMMAND='fdfind --type d --hidden --follow --exclude .git' export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border --info=inline' # Use fd for ** completion (e.g., vim **) _fzf_compgen_path() { fdfind --hidden --follow --exclude .git . "$1" } _fzf_compgen_dir() { fdfind --type d --hidden --follow --exclude .git . "$1" } # Source fzf shell integration (built-in since fzf 0.48+) eval "$(fzf --zsh)"