Module: ReadSource::VimSource

Defined in:
lib/read_source/vim_source.rb

Instance Method Summary collapse

Instance Method Details

#vim(servername = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/read_source/vim_source.rb', line 5

def vim servername=nil
  (file, line_num = send :source_location) || return
  read_only = !!/#{ENV["GEM_HOME"]}/.match(file) ? "-M" : ""
  remote = "#{('--servername ' + servername.to_s) if servername} --remote-silent"
  serverlist = `vim --serverlist`.split("\n")
  if serverlist.include?(servername.to_s) || serverlist.include?("VIM")
    `#{"vim #{remote} %s +%s %s" % [read_only, line_num, file]}` 
    :success
  else
    exec("vim #{remote} %s +%s %s" % [read_only, line_num, file])
  end
end