diff options
Diffstat (limited to 'dotfiles/system/.profile.d/fzf.sh')
| -rw-r--r-- | dotfiles/system/.profile.d/fzf.sh | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/dotfiles/system/.profile.d/fzf.sh b/dotfiles/system/.profile.d/fzf.sh index 5a13dd4..ea5d3dc 100644 --- a/dotfiles/system/.profile.d/fzf.sh +++ b/dotfiles/system/.profile.d/fzf.sh @@ -1,6 +1,4 @@ #!/bin/sh - -# fzf.sh # Craig Jennings <c@cjennings.net> # fuzzy find settings and utilities, sourced by .profile @@ -11,66 +9,65 @@ export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" export FZF_DEFAULT_COMMAND='rg --files --no-ignore-vcs --hidden' -### NAVIGATION +### NAVIGATION # cdff - change directory find file # change to the directory where the file resides. cdff() { - file=$(fzf +m -q "$1") - dir=$(dirname "$file") - cd "$dir" || exit + file=$(fzf +m -q "$1") + dir=$(dirname "$file") + cd "$dir" || exit } # CD to a directory with fzf cdd () { - destdir=$(find "${1:-.}" -path '*/\.*' -prune \ - -o -type d -print 2> /dev/null | fzf +m) && - cd "$destdir" + destdir=$(find "${1:-.}" -path '*/\.*' -prune \ + -o -type d -print 2> /dev/null | fzf +m) && + cd "$destdir" } ### SYSTEM ADMIN # Kill a process with fzf kp () { - pid=$(ps -ef | sed 1d | eval "fzf ${FZF_DEFAULT_OPTS} -m --header='[kill:process]'" | awk '{print $2}') + pid=$(ps -ef | sed 1d | eval "fzf ${FZF_DEFAULT_OPTS} -m --header='[kill:process]'" | awk '{print $2}') - if [ "x$pid" != "x" ] - then - echo "$pid" | xargs kill -${1:-9} - kp - fi + if [ "x$pid" != "x" ] + then + echo "$pid" | xargs kill -${1:-9} + kp + fi } # list available packages, show info in preview, and install selection yinstall() { - yay -Slq | fzf --multi --preview 'yay -Si {1}' | xargs -ro yay -S --noconfirm + yay -Slq | fzf --multi --preview 'yay -Si {1}' | xargs -ro yay -S --noconfirm } yinstall-skipverify() { - yay -Slq | fzf --multi --preview 'yay -Si {1}' | xargs -ro yay -S --noconfirm --mflags --skipinteg + yay -Slq | fzf --multi --preview 'yay -Si {1}' | xargs -ro yay -S --noconfirm --mflags --skipinteg } # list installed packages, show info in preview, and remove selection yrm() { - yay -Qq | fzf --multi --preview 'yay -Qi {1}' | xargs -ro yay -Rns + yay -Qq | fzf --multi --preview 'yay -Qi {1}' | xargs -ro yay -Rns } # find-in-file - usage: fif <searchTerm> fif() { - if [ ! "$#" -gt 0 ]; then echo "Need a string to search for!"; return 1; fi - rg --files-with-matches --no-messages "$1" | fzf --preview "highlight -O ansi -l {} 2> /dev/null | rg --colors 'match:bg:yellow' --ignore-case --pretty --context 10 '$1' || rg --ignore-case --pretty --context 10 '$1' {}" + if [ ! "$#" -gt 0 ]; then echo "Need a string to search for!"; return 1; fi + rg --files-with-matches --no-messages "$1" | fzf --preview "highlight -O ansi -l {} 2> /dev/null | rg --colors 'match:bg:yellow' --ignore-case --pretty --context 10 '$1' || rg --ignore-case --pretty --context 10 '$1' {}" } -### CONVENIENCE +### CONVENIENCE # Find a book in the calibre library and open it in emacs client. # previously: find ~/books \( -iname \*.epub -o -iname \*.pdf -o -iname \*.djvu \) | fzf | xargs emacs bk() { - bkfile=$(find ~/sync/books/ \( -iname "*.pdf" -o -iname "*.epub" -o -iname "*.djvu" \) -print | fzf) - if [ -n "$bkfile" ]; then - emacsclient -c -a '' "$bkfile" & - fi + bkfile=$(find ~/sync/books/ \( -iname "*.pdf" -o -iname "*.epub" -o -iname "*.djvu" \) -print | fzf) + if [ -n "$bkfile" ]; then + xdg-open "$bkfile" & + fi } - |
