From 42dc43f9e4f1c93040b47b951b80b42d17949b4f Mon Sep 17 00:00:00 2001 From: juancwu <46619361+juancwu@users.noreply.github.com> Date: Thu, 4 Sep 2025 16:39:04 -0400 Subject: [PATCH] updating fcd for zsh --- zsh/.zshrc | 53 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index 67d397c..319c16b 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -41,25 +41,54 @@ sf() { # fuzzy cd into specific folders fcd() { + # Common directories to exclude + local exclude_args=( + --exclude ".git" + --exclude "node_modules" + --exclude "vendor" + --exclude ".cache" + --exclude "dist" + --exclude "build" + --exclude "target" + --exclude ".next" + --exclude ".nuxt" + --exclude "__pycache__" + --exclude ".pytest_cache" + --exclude ".venv" + --exclude "venv" + --exclude "env" + --exclude ".env" + --exclude "coverage" + --exclude ".nyc_output" + --exclude ".sass-cache" + --exclude "bower_components" + --exclude ".idea" + --exclude ".vscode" + --exclude ".vs" + --exclude "*.egg-info" + --exclude ".tox" + --exclude ".mypy_cache" + --exclude ".ruff_cache" + --exclude ".turbo" + --exclude "out" + --exclude "tmp" + --exclude ".svn" + --exclude ".hg" + --exclude ".bzr" + --exclude "_remote" + ) + local selected_dir="" if [ $# -eq 1 ]; then selected_dir=$({ - find "$HOME/.config" -type d -maxdepth 1 - echo "$HOME/Documents/Obsidian Vault" - find "$HOME/notes" -type d - fd "$HOME/ghq" --min-depth 2 --max-depth 6 --type d --color never -aFH -E 'node_modules' -E 'vendor' -E '.git' --full-path - ls -d -1 "$HOME/"/*/ | grep -v \.git - ls -d -1 */ | perl -pe "s#^#$PWD/#" | grep -v \.git + # Search in ghq projects (your git repositories) + fd -t d --full-path --color never "${exclude_args[@]}" . "$HOME/ghq" 2>/dev/null } | fzf --filter="$1" --select-1 --exit-0 | head -1) else selected_dir=$({ - find "$HOME/.config" -type d -maxdepth 1 - echo "$HOME/Documents/Obsidian Vault" - find "$HOME/notes" -type d - fd "$HOME/ghq" --min-depth 2 --max-depth 6 --type d --color never -aFH -E 'node_modules' -E 'vendor' -E '.git' --full-path - ls -d -1 "$HOME/"/*/ | grep -v \.git - ls -d -1 */ | perl -pe "s#^#$PWD/#" | grep -v \.git + # Search in ghq projects (your git repositories) + fd -t d "${exclude_args[@]}" . "$HOME/ghq" 2>/dev/null } | fzf) fi