feat(shell): Quick Jump to frequently used directories

This commit is contained in:
js0ny 2025-02-27 03:04:31 +00:00
parent 2c014e281f
commit bab5604731
3 changed files with 65 additions and 62 deletions

View file

@ -3,48 +3,37 @@
# Author: js0ny
# Sourced by user's zshrc 在用户的 zshrc 中被引用
# Absolute navigation #
alias dotfiles="cd $DOTFILES && ls"
if [ "$IS_WSL" = true ]; then # IS_WSL is defined in $DOTFILES/platforms/wsl/zshrc
winuser=$(whoami.exe | cut -d'\' -f2 | tr -d '\r')
alias dt="cd /mnt/c/Users/$winuser/Desktop && ls"
alias doku="cd /mnt/c/Users/$winuser/Documents && ls"
alias down="cd /mnt/c/Users/$winuser/Downloads && ls"
alias src="cd /mnt/d/Source"
alias one="cd /mnt/c/Users/$winuser/OneDrive"
alias gdrive="cd /mnt/g"
else
alias dt="cd $HOME/Desktop && ls"
alias doku="cd $HOME/Documents && ls"
alias down="cd $HOME/Downloads && ls"
alias src="cd $HOME/Documents/Source"
# Define __CD_CMD as "cd" by default
__CD_CMD="cd"
# If zoxide is available, use it
if command -v zoxide >/dev/null; then
__CD_CMD="z"
eval "$(zoxide init zsh)"
fi
# macOS specific, no OneDrive & Google Drive on Linux
if [ "$(uname)" = "Darwin" ]; then
alias one="cd $HOME/OneDrive"
alias gdrive="cd $HOME/Google Drive"
fi
# Define aliases for quick navigation
alias ..="$__CD_CMD .."
alias ...="$__CD_CMD ../.."
alias ....="$__CD_CMD ../../.."
alias .....="$__CD_CMD ../../../.."
alias ......="$__CD_CMD ../../../../.."
if command -v zoxide >/dev/null 2>&1; then
eval "$(zoxide init zsh)"
# Relative navigation #
alias ..="z .."
alias ...="z ../.."
alias ....="z ../../.."
alias .....="z ../../../.."
alias ......="z ../../../../.."
# Use `-` to jump to the previous directory
# Oh-My-Zsh defines a similar one
alias - "z -"
zls() {
cd $1 && ls
}
else
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."
alias - "cd -"
fi
# Abbreviation for "cd -"
alias - "$__CD_CMD -"
# Define zls function for cd + ls
zls() {
"$__CD_CMD" "$1" && ls
}
alias cdls=zls
# Quick Jump Directories
[[ -d "$DOTFILES" ]] && alias dot="$__CD_CMD $DOTFILES"
[[ -d "$HOME/Downloads" ]] && alias down="$__CD_CMD $HOME/Downloads"
[[ -d "$HOME/.config" ]] && alias conf="$__CD_CMD $HOME/.config"
[[ -d "$HOME/Obsidian" ]] && alias ob="$__CD_CMD $HOME/Obsidian"
[[ -d "$HOME/Source" ]] && alias src="$__CD_CMD $HOME/Source"
[[ -d "$HOME/Source/Scripts" ]] && alias scr="$__CD_CMD $HOME/Source/Scripts"
[[ -d "$HOME/OrgFiles" ]] && alias org="$__CD_CMD $HOME/OrgFiles"