mirror of
https://github.com/junegunn/fzf.vim.git
synced 2025-12-09 05:54:46 +08:00
@@ -33,9 +33,13 @@ if `file --mime "#{file}"` =~ /binary/
|
|||||||
end
|
end
|
||||||
|
|
||||||
center = (center || 0).to_i
|
center = (center || 0).to_i
|
||||||
|
if ENV['FZF_PREVIEW_HEIGHT']
|
||||||
|
height = ENV['FZF_PREVIEW_HEIGHT'].to_i
|
||||||
|
else
|
||||||
height = File.readable?('/dev/tty') ? `stty size < /dev/tty`.split.first.to_i : 40
|
height = File.readable?('/dev/tty') ? `stty size < /dev/tty`.split.first.to_i : 40
|
||||||
height /= 2 if split
|
height /= 2 if split
|
||||||
height -= 2 # preview border
|
height -= 2 # preview border
|
||||||
|
end
|
||||||
offset = [1, center - height / 3].max
|
offset = [1, center - height / 3].max
|
||||||
|
|
||||||
IO.popen(['sh', '-c', COMMAND.gsub('{}', Shellwords.shellescape(path))]) do |io|
|
IO.popen(['sh', '-c', COMMAND.gsub('{}', Shellwords.shellescape(path))]) do |io|
|
||||||
|
|||||||
@@ -31,19 +31,22 @@ if [ -z "$CENTER" ]; then
|
|||||||
CENTER=1
|
CENTER=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$FZF_PREVIEW_HEIGHT" ]; then
|
||||||
|
LINES=$FZF_PREVIEW_HEIGHT
|
||||||
|
else
|
||||||
if [ -r /dev/tty ]; then
|
if [ -r /dev/tty ]; then
|
||||||
LINES=$(stty size < /dev/tty | awk '{print $1}')
|
LINES=$(stty size < /dev/tty | awk '{print $1}')
|
||||||
else
|
else
|
||||||
LINES=40
|
LINES=40
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SPLIT" ]; then
|
if [ -n "$SPLIT" ]; then
|
||||||
LINES=$(($LINES/2)) # using horizontal split
|
LINES=$(($LINES/2)) # using horizontal split
|
||||||
fi
|
fi
|
||||||
LINES=$(($LINES-2)) # remove preview border
|
LINES=$(($LINES-2)) # remove preview border
|
||||||
|
fi
|
||||||
|
|
||||||
FIRST=$(($CENTER-$LINES/3))
|
FIRST=$(($CENTER-$LINES/3))
|
||||||
FIRST=$(($FIRST < 1 ? 1 : $FIRST))
|
FIRST=$(($FIRST < 1 ? 1 : $FIRST))
|
||||||
LAST=$((${FIRST}+${LINES}-1))
|
LAST=$((${FIRST}+${LINES}-1))
|
||||||
|
|
||||||
awk "NR >= $FIRST && NR <= $LAST {if (NR == $CENTER) printf(\"\x1b[7m%5d %s\n\x1b[m\", NR, \$0); else printf(\"%5d %s\n\", NR, \$0)}" $FILE
|
awk "NR >= $FIRST && NR <= $LAST {if (NR == $CENTER) printf(\"$REVERSE%5d %s\n$RESET\", NR, \$0); else printf(\"%5d %s\n\", NR, \$0)}" $FILE
|
||||||
|
|||||||
Reference in New Issue
Block a user