mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 08:43:00 +00:00
feat(shell): Quick Jump to frequently used directories
This commit is contained in:
parent
2c014e281f
commit
bab5604731
3 changed files with 65 additions and 62 deletions
|
|
@ -154,3 +154,4 @@ end
|
||||||
function __last_history_item; echo $history[1]; end
|
function __last_history_item; echo $history[1]; end
|
||||||
|
|
||||||
abbr -a !! --position anywhere --function __last_history_item
|
abbr -a !! --position anywhere --function __last_history_item
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,28 +7,41 @@
|
||||||
# Linking: Link the whole directory for submodules
|
# Linking: Link the whole directory for submodules
|
||||||
# ln -sf $DOTFILES/tools/fish ~/.config/fish
|
# ln -sf $DOTFILES/tools/fish ~/.config/fish
|
||||||
|
|
||||||
|
set __CD_CMD "cd"
|
||||||
|
|
||||||
|
|
||||||
if command -v zoxide > /dev/null
|
if command -v zoxide > /dev/null
|
||||||
|
set __CD_CMD "z"
|
||||||
zoxide init fish | source
|
zoxide init fish | source
|
||||||
alias ..="z .."
|
end
|
||||||
alias ...="z ../.."
|
|
||||||
alias ....="z ../../.."
|
|
||||||
alias .....="z ../../../.."
|
|
||||||
alias ......="z ../../../../.."
|
|
||||||
|
|
||||||
abbr --add \- 'z -'
|
|
||||||
|
alias ..="$__CD_CMD .."
|
||||||
|
alias ...="$__CD_CMD ../.."
|
||||||
|
alias ....="$__CD_CMD ../../.."
|
||||||
|
alias .....="$__CD_CMD ../../../.."
|
||||||
|
alias ......="$__CD_CMD ../../../../.."
|
||||||
|
|
||||||
|
abbr --add \- "$__CD_CMD -"
|
||||||
|
|
||||||
|
|
||||||
function zls
|
function zls
|
||||||
z $argv[1] && ls
|
$__CD_CMD $argv[1] && ls
|
||||||
end
|
end
|
||||||
else
|
|
||||||
alias ..="cd .."
|
|
||||||
alias ...="cd ../.."
|
|
||||||
alias ....="cd ../../.."
|
|
||||||
alias .....="cd ../../../.."
|
|
||||||
alias ......="cd ../../../../.."
|
|
||||||
|
|
||||||
abbr --add \- 'cd -'
|
alias cdls=zls
|
||||||
|
|
||||||
|
function __source_quick_jump
|
||||||
|
set dir (fd --type d --max-depth 1 . ~/Source/ | fzf --preview 'lsd --color always --icon always {}')
|
||||||
|
if test -n "$dir"
|
||||||
|
cd "$dir"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
# Quick Jump Directories
|
||||||
|
test -d $DOTFILES && abbr --add dot "$__CD_CMD $DOTFILES"
|
||||||
|
test -d $HOME/Downloads && abbr --add down "$__CD_CMD $HOME/Downloads"
|
||||||
|
test -d $HOME/.config && abbr --add conf "$__CD_CMD $HOME/.config"
|
||||||
|
test -d $HOME/Obsidian && abbr --add ob "$__CD_CMD $HOME/Obsidian"
|
||||||
|
test -d $HOME/Source && alias src="__source_quick_jump"
|
||||||
|
test -d $HOME/Source/Scripts && alias scr="fd --type f --hidden --exclude .git --exclude '.*' . ~/Source/Scripts/ | fzf --preview 'bat --color=always --style=numbers {}' | xargs -r nvim"
|
||||||
|
test -d $HOME/OrgFiles && abbr --add org "$__CD_CMD $HOME/OrgFiles"
|
||||||
|
|
|
||||||
|
|
@ -3,48 +3,37 @@
|
||||||
# Author: js0ny
|
# Author: js0ny
|
||||||
# Sourced by user's zshrc 在用户的 zshrc 中被引用
|
# 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"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# macOS specific, no OneDrive & Google Drive on Linux
|
# Define __CD_CMD as "cd" by default
|
||||||
if [ "$(uname)" = "Darwin" ]; then
|
__CD_CMD="cd"
|
||||||
alias one="cd $HOME/OneDrive"
|
|
||||||
alias gdrive="cd $HOME/Google Drive"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if command -v zoxide >/dev/null 2>&1; then
|
# If zoxide is available, use it
|
||||||
|
if command -v zoxide >/dev/null; then
|
||||||
|
__CD_CMD="z"
|
||||||
eval "$(zoxide init zsh)"
|
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
|
fi
|
||||||
|
|
||||||
|
# Define aliases for quick navigation
|
||||||
|
alias ..="$__CD_CMD .."
|
||||||
|
alias ...="$__CD_CMD ../.."
|
||||||
|
alias ....="$__CD_CMD ../../.."
|
||||||
|
alias .....="$__CD_CMD ../../../.."
|
||||||
|
alias ......="$__CD_CMD ../../../../.."
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue