diff --git a/bin/fzf-preview.sh b/bin/fzf-preview.sh index ecec41ae..e74e46e2 100755 --- a/bin/fzf-preview.sh +++ b/bin/fzf-preview.sh @@ -9,11 +9,23 @@ # - https://iterm2.com/utilities/imgcat if [[ $# -ne 1 ]]; then - >&2 echo "usage: $0 FILENAME" + >&2 echo "usage: $0 FILENAME[:LINENO][:IGNORED]" exit 1 fi file=${1/#\~\//$HOME/} + +center=0 +if [[ ! -r $file ]]; then + if [[ $file =~ ^(.+):([0-9]+)\ *$ ]] && [[ -r ${BASH_REMATCH[1]} ]]; then + file=${BASH_REMATCH[1]} + center=${BASH_REMATCH[2]} + elif [[ $file =~ ^(.+):([0-9]+):[0-9]+\ *$ ]] && [[ -r ${BASH_REMATCH[1]} ]]; then + file=${BASH_REMATCH[1]} + center=${BASH_REMATCH[2]} + fi +fi + type=$(file --brief --dereference --mime -- "$file") if [[ ! $type =~ image/ ]]; then @@ -32,7 +44,7 @@ if [[ ! $type =~ image/ ]]; then exit fi - ${batname} --style="${BAT_STYLE:-numbers}" --color=always --pager=never -- "$file" + ${batname} --style="${BAT_STYLE:-numbers}" --color=always --pager=never --highlight-line="${center:-0}" -- "$file" exit fi