interactive cd

This commit is contained in:
2026-01-22 22:38:02 +08:00
parent d037c9e2eb
commit a15863b0e5
2 changed files with 29 additions and 12 deletions

View File

@@ -0,0 +1,19 @@
function cdi() {
selected_dir=""
if (( $+commands[fzf] )); then
if (( $+commands[fd] )); then
if [[ $1 == "-I" ]]; then
selected_dir=$(fd --type d --hidden --no-ignore --exclude .git | fzf)
else
selected_dir=$(fd --type d --hidden --exclude .git | fzf)
fi
else
selected_dir=$(find . -type d -name '.git' -prune -o -type d -print | fzf)
fi
if [[ -n $selected_dir ]]; then
cd $selected_dir
fi
else
echo "[fzf] is not installed"
fi
}

View File

@@ -2,18 +2,20 @@
# path -> settings -> alias -> functions -> plugins -> prompt # path -> settings -> alias -> functions -> plugins -> prompt
if [ -n "${ZSH_VERSION}" ]; then if [ ! -n "${ZSH_VERSION}" ]; then
_source="${(%):-%x}"
_path=$(dirname "$(realpath "$_source")")
unset _source
else
echo "Unsupported shell" echo "Unsupported shell"
exit 1 return 1
fi fi
# get the dir name that current file in
function get_current_dir_name {
_source="${(%):-%x}"
_path=$(dirname "$(realpath "$_source")")
echo $_path
}
# Set basic path to zsh-polyjuice installation # Set basic path to zsh-polyjuice installation
export ZSH_POLYJUICE_PATH="$_path" export ZSH_POLYJUICE_PATH=$(get_current_dir_name)
unset _path
export ZSH_PLUGINS_PATH="$ZSH_POLYJUICE_PATH/plugins" export ZSH_PLUGINS_PATH="$ZSH_POLYJUICE_PATH/plugins"
export ZSH_ALIAS_PATH="$ZSH_POLYJUICE_PATH/alias" export ZSH_ALIAS_PATH="$ZSH_POLYJUICE_PATH/alias"
export ZSH_SETTINGS_PATH="$ZSH_POLYJUICE_PATH/settings" export ZSH_SETTINGS_PATH="$ZSH_POLYJUICE_PATH/settings"
@@ -51,10 +53,6 @@ source $ZSH_PLUGINS_PATH/ohmyzsh/plugins/zoxide/zoxide.plugin.zsh
source $ZSH_PLUGINS_PATH/ohmyzsh/plugins/python/python.plugin.zsh source $ZSH_PLUGINS_PATH/ohmyzsh/plugins/python/python.plugin.zsh
function cdi() {
cd $(find . -type d | fzf)
}
# using starship as prompt # using starship as prompt
if (( $+commands[starship] )); then if (( $+commands[starship] )); then
eval "$(starship init zsh)" eval "$(starship init zsh)"