添加图片预览脚本
This commit is contained in:
parent
d136130771
commit
b1536af727
|
|
@ -27,6 +27,7 @@ fork自 oh my zsh,更纯净 更快速
|
|||
- fd
|
||||
- bat (可选 更好的文本预览效果)
|
||||
- exa (可选 更好的目录预览效果)
|
||||
- ueberzug (可选 可在x11终端下预览图片)
|
||||
|
||||
```plaintext
|
||||
请自行安装fd
|
||||
|
|
@ -88,6 +89,7 @@ omz
|
|||
├── cache/ -- 部分需要缓存的配置
|
||||
├── lib/ -- 部分依赖文件
|
||||
│ ├── omz.sh -- omz.sh
|
||||
│ ├── img_preview.sh -- 图片预览脚本 for fzf
|
||||
│ └── file_preview.sh -- 文件预览脚本 for fzf
|
||||
├── config/
|
||||
│ ├── fzf.zsh -- fzf 及 fzf-tab配置
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
alias fzf='fzf --preview "bat -p --color=always {} | head -100" --height 40%'
|
||||
alias fzf='fzf --preview "bash $OMZ/lib/file_preview.sh {}" --height 12'
|
||||
|
||||
export FZF_DEFAULT_OPTS="--height 50% --layout=reverse --history=$OMZ/cache/fzfhistory"
|
||||
export FZF_DEFAULT_OPTS="--height 12 --layout=reverse --history=$OMZ/cache/fzfhistory"
|
||||
export FZF_DEFAULT_COMMAND="fd --exclude={.git,.idea,.vscode,.sass-cache,node_modules,build,dist,vendor} --type f"
|
||||
export FZF_PREVIEW_COMMAND='bash $OMZ/lib/file_preview.sh {}'
|
||||
|
||||
|
|
@ -17,4 +17,5 @@ zstyle ':fzf-tab:complete:git-log:*' fzf-preview 'git log --color=always $word'
|
|||
zstyle ':fzf-tab:complete:git-show:*' fzf-preview 'git show --color=always $word'
|
||||
zstyle ':fzf-tab:complete:git-checkout:*' fzf-preview '[ -f "$realpath" ] && git diff --color=always $word || git log --color=always $word'
|
||||
zstyle ':fzf-tab:complete:*:*' fzf-preview 'less ${(Q)realpath}'
|
||||
zstyle ':fzf-tab:complete:*:*' fzf-flags --height=12
|
||||
export LESSOPEN='| bash $OMZ/lib/file_preview.sh %s'
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ if [ -d "$1" ]; then
|
|||
elif [ "$category" = text ]; then
|
||||
(bat -p --color=always "$1" || cat "$1") 2>/dev/null | head -100
|
||||
elif [ "$category" = image ]; then
|
||||
img2txt "$1"
|
||||
command -v ueberzug 2&>/dev/null && bash $OMZ/lib/img_preview.sh "$1"|| img2txt "$1"
|
||||
else
|
||||
echo $1 is a $category file
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
exec < /dev/tty
|
||||
oldstty=$(stty -g)
|
||||
stty raw -echo min 0
|
||||
echo -en "\033[6n" > /dev/tty
|
||||
IFS=';' read -r -d R -a pos
|
||||
stty $oldstty
|
||||
row=$((${pos[0]:2} - 1))
|
||||
col=$((${pos[1]} - 1))
|
||||
echo "export row=$row" > $OMZ/cache/cursor
|
||||
echo "export col=$col" >> $OMZ/cache/cursor
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
declare -r -x DEFAULT_PREVIEW_POSITION="right"
|
||||
declare -r -x UEBERZUG_FIFO="$(mktemp --dry-run --suffix "fzf-$$-ueberzug")"
|
||||
declare -r -x PREVIEW_ID="preview"
|
||||
|
||||
function start_ueberzug {
|
||||
mkfifo "${UEBERZUG_FIFO}"
|
||||
<"${UEBERZUG_FIFO}" \
|
||||
ueberzug layer --parser bash --silent &
|
||||
3>"${UEBERZUG_FIFO}" \
|
||||
exec
|
||||
}
|
||||
|
||||
function finalise {
|
||||
3>&- \
|
||||
exec
|
||||
&>/dev/null \
|
||||
rm "${UEBERZUG_FIFO}"
|
||||
&>/dev/null \
|
||||
kill $(jobs -p)
|
||||
}
|
||||
|
||||
function draw_preview {
|
||||
source $OMZ/cache/cursor
|
||||
X=$(($COLUMNS / 2 + 2))
|
||||
Y=$((row + 2))
|
||||
if [ $Y -gt $((LINES - 11)) ]; then
|
||||
Y=$((LINES - 11))
|
||||
fi
|
||||
|
||||
>"${UEBERZUG_FIFO}" declare -A -p cmd=( \
|
||||
[action]=add [identifier]="${PREVIEW_ID}" \
|
||||
[x]="${X}" [y]="${Y}" \
|
||||
[width]="$(($COLUMNS / 2 - 2))" [height]="10" \
|
||||
[scaler]=forced_cover [scaling_position_x]=0.5 [scaling_position_y]=0.5 \
|
||||
[path]="${@}")
|
||||
}
|
||||
|
||||
trap finalise EXIT
|
||||
start_ueberzug
|
||||
draw_preview $*
|
||||
sleep 999999
|
||||
|
|
@ -208,6 +208,7 @@ fzf-tab-debug() {
|
|||
}
|
||||
|
||||
fzf-tab-complete() {
|
||||
bash $OMZ/lib/get_cursor.sh
|
||||
# this name must be ugly to avoid clashes
|
||||
local -i _ftb_continue=1 _ftb_continue_last=0 _ftb_accept=0 ret=0
|
||||
# hide the cursor until finishing completion, so that users won't see cursor up and down
|
||||
|
|
|
|||
Loading…
Reference in New Issue