Sha256: 375c4e3423c66cef27d9128667a58a467dd36bd72c3f6013c67947a42030cc64

Contents?: true

Size: 1.33 KB

Versions: 6

Compression:

Stored size: 1.33 KB

Contents

#!/usr/bin/env ruby

require 'spruz/go'
include Spruz::GO
require 'utils/edit'
include Utils::Edit
require 'tempfile'

$opt = go 'w'

vim = locate_vim_binary
servername  = [ '--servername', "G#{ENV['USER'].upcase}" ]
serverlist = `#{vim} -g --serverlist`.split
remote = $opt['w'] ? '--remote-wait' : '--remote'

argv = ARGV.dup
if argv.empty?
  if !STDIN.tty?
    file = File.new(File.join(Dir.tmpdir, "edit_tmp.#$$"), 'w')
    until STDIN.eof?
      buffer = STDIN.read(8192)
      file.write buffer
    end
    file.close
    argv << file.path
  elsif serverlist.member?(servername)
    system *cmd(vim, '-g', servername, remote, "stupid_trick#{rand}")
    sleep 1
    exec *cmd(vim, '-g', servername, '--remote-send', '<ESC>:bw<CR>')
  else
    exec *cmd(vim, '-g', servername, remote)
  end
end
unless argv.empty?
  lineno_re = /^\s*([^:]+):(\d+)/
  if argv.first =~ lineno_re
    for a in argv
      if a =~ lineno_re
        system *cmd(vim, '-g', servername, remote, $1)
        sleep 1
        system *cmd(vim, '-g', servername, '--remote-send', "<ESC>:#$2<CR>")
      else
        system *cmd(vim, '-g', servername, remote, a)
      end
      if a != argv.last
        STDOUT.print "Press enter to edit the next file."
        STDOUT.flush
        STDIN.gets
      end
    end
  else
    exec *cmd(vim, '-g', servername, remote, *argv)
  end
end
exit 0

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
utils-0.0.10 bin/edit
utils-0.0.8 bin/edit
utils-0.0.7 bin/edit
utils-0.0.6 bin/edit
utils-0.0.5 bin/edit
utils-0.0.4 bin/edit