From abdf894edf5dbbe8eaa734a6a4dce39c9f174e33 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 8 Dec 2016 13:30:06 +0900 Subject: [PATCH] [fzf#vim#with_preview] Expand relative path Close #261 --- bin/preview.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/preview.rb b/bin/preview.rb index 6a3898b..cf5e713 100755 --- a/bin/preview.rb +++ b/bin/preview.rb @@ -11,14 +11,18 @@ RESET = "\x1b[m" split = ARGV.delete('-v') -if ARGV.empty? +def usage puts "usage: #$0 [-v] FILENAME[:LINENO][:IGNORED]" exit 1 end -file, center = ARGV.first.split(':') +usage if ARGV.empty? -unless File.readable? file +file, center = ARGV.first.split(':') +usage unless file + +path = File.expand_path(file) +unless File.readable? path puts "File not found: #{file}" exit 1 end @@ -29,7 +33,7 @@ height /= 2 if split height -= 2 # preview border offset = [1, center - height / 3].max -IO.popen(['sh', '-c', COMMAND.gsub('{}', Shellwords.shellescape(file))]) do |io| +IO.popen(['sh', '-c', COMMAND.gsub('{}', Shellwords.shellescape(path))]) do |io| io.each_line.drop(offset - 1).take(height).each_with_index do |line, lno| if lno + offset == center puts REVERSE + line.chomp.gsub(ANSI) { |m| m + REVERSE } + RESET