config/shell/browse: consolidate zoxide helpers
This commit is contained in:
parent
49810e6239
commit
aef761baaa
|
@ -1,4 +1,4 @@
|
||||||
# Utilities regarding file system navigation
|
# Utilities for file system navigation
|
||||||
|
|
||||||
# Useful when the current directory was recreated
|
# Useful when the current directory was recreated
|
||||||
alias recd='cd $PWD'
|
alias recd='cd $PWD'
|
||||||
|
@ -39,7 +39,7 @@ cd() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# LOCATE
|
# LOCATE {{{1
|
||||||
alias fselect='fzf -0 -1 --reverse --height=30% | while read f; do test -d "$f" && cd "$f" || b "$f"; done'
|
alias fselect='fzf -0 -1 --reverse --height=30% | while read f; do test -d "$f" && cd "$f" || b "$f"; done'
|
||||||
loci() {
|
loci() {
|
||||||
locate --all --ignore-case --basename --existing "$@" |
|
locate --all --ignore-case --basename --existing "$@" |
|
||||||
|
@ -53,11 +53,28 @@ alias loce='noglob locei'
|
||||||
# locate all
|
# locate all
|
||||||
alias loca='noglob sudo updatedb --prunenames "" --prunefs "" --prunepaths "/var/cache" -o /var/lib/mlocate/all.db && loci --database /var/lib/mlocate/all.db'
|
alias loca='noglob sudo updatedb --prunenames "" --prunefs "" --prunepaths "/var/cache" -o /var/lib/mlocate/all.db && loci --database /var/lib/mlocate/all.db'
|
||||||
|
|
||||||
# ZOXIDE
|
# ZOXIDE {{{1
|
||||||
alias c=z
|
alias c=z
|
||||||
|
# Listing for quick directory switcher based on zoxide and fzf
|
||||||
|
alias zoxide-list='noglob zoxide query -sl'
|
||||||
|
# fzf for zoxide
|
||||||
|
zoxide-fzf() {
|
||||||
|
# returns the selected path stripped of its score
|
||||||
|
fzf -0 -1 -n2.. --tiebreak=index \
|
||||||
|
--preview-window=20% --preview="ls -a --color --human-readable --group-directories-first --file-type {2..}" \
|
||||||
|
--height=80% --reverse |
|
||||||
|
sed 's|.* /|/|'
|
||||||
|
}
|
||||||
|
# Locate directories and add 0 zoxide score
|
||||||
|
locate-zox() {
|
||||||
|
locate --basename --ignore-case "$@" |
|
||||||
|
while read -r file; do test -d "$file" && echo "$file"; done |
|
||||||
|
sed 's/^/ 0 /'
|
||||||
|
}
|
||||||
|
# Switch directory heuristically using zoxide and locate
|
||||||
d() {
|
d() {
|
||||||
test "$1" != "-" -a ! -d "$1" -a $# -eq 1 || { cd "$@" && return }
|
test "$1" != "-" -a ! -d "$1" -a $# -eq 1 || { cd "$@" && return }
|
||||||
local query="$(zf "$@")"
|
local query="$(zoxide-list "$@")"
|
||||||
# First find out whether there is an obvious match
|
# First find out whether there is an obvious match
|
||||||
# (score at least ten times above runner-up and score above 20)
|
# (score at least ten times above runner-up and score above 20)
|
||||||
# If not select with fzf, using locate to find extra options
|
# If not select with fzf, using locate to find extra options
|
||||||
|
@ -65,10 +82,11 @@ d() {
|
||||||
expr "$(echo "$query" | head -1 | cut -d' ' -f1)" \> 20 \& \
|
expr "$(echo "$query" | head -1 | cut -d' ' -f1)" \> 20 \& \
|
||||||
$(echo "$query" | sed 'N;s|/.* \([0-9]\)|> 10 * \1|;q' | sed 's| */.*||') >/dev/null #2>&1
|
$(echo "$query" | sed 'N;s|/.* \([0-9]\)|> 10 * \1|;q' | sed 's| */.*||') >/dev/null #2>&1
|
||||||
then echo "$query" | head -1
|
then echo "$query" | head -1
|
||||||
else test -n "$query" && echo "$query"; locz "$@"
|
else test -n "$query" && echo "$query"; locate-zox "$@"
|
||||||
fi | zfz)"
|
fi | zoxide-fzf)"
|
||||||
}
|
}
|
||||||
|
# Switch directory interactively using zoxide and locate
|
||||||
di() {
|
di() {
|
||||||
test "$1" = "-" || local dir=$({ zf "$@"; locz "$@" } | zfz)
|
test "$1" = "-" || local dir=$({ zoxide-list "$@"; locate-zox "$@" } | zoxide-fzf)
|
||||||
cd "${dir:-$1}"
|
cd "${dir:-$1}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Locate existing directories in zoxide format
|
|
||||||
locate --basename --ignore-case "$@" |
|
|
||||||
while read -r file; do test -d "$file" && echo "$file"; done |
|
|
||||||
sed 's/^/ 0 /'
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Listing for quick directory switcher based on zoxide and fzf
|
|
||||||
set -o noglob
|
|
||||||
zoxide query -sl "$@"
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# fzf for zoxide
|
|
||||||
# returns the selected path stripped of its score
|
|
||||||
fzf -0 -1 -n2.. --tiebreak=index \
|
|
||||||
--preview-window=20% --preview="ls -a --color --human-readable --group-directories-first --file-type {2..}" \
|
|
||||||
--height=80% --reverse |
|
|
||||||
sed 's|.* /|/|'
|
|
Loading…
Reference in New Issue