summaryrefslogtreecommitdiff
path: root/dotfiles/system/.profile.d/fzf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/system/.profile.d/fzf.sh')
-rw-r--r--dotfiles/system/.profile.d/fzf.sh49
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
}
-