class Torkify::Vim::Remote
Public Class Methods
from_first_server()
click to toggle source
# File lib/torkify/vim/remote.rb, line 12 def self.from_first_server servers = self.servers if servers.any? new(self.servers.first) else raise RemoteError, "No vim servers are available" end end
new(servername)
click to toggle source
# File lib/torkify/vim/remote.rb, line 21 def initialize(servername) Torkify.logger.debug { "[vim] using remote vim server #{servername}" } @servername = servername ping end
servers()
click to toggle source
# File lib/torkify/vim/remote.rb, line 8 def self.servers `vim --serverlist`.split("\n") end
Public Instance Methods
expr(expression)
click to toggle source
# File lib/torkify/vim/remote.rb, line 31 def expr(expression) exec('expr', expression) end
send(keys)
click to toggle source
# File lib/torkify/vim/remote.rb, line 27 def send(keys) exec('send', keys) end
Protected Instance Methods
exec(remote_command, argument)
click to toggle source
# File lib/torkify/vim/remote.rb, line 36 def exec(remote_command, argument) cmd = "vim --servername #{@servername}" cmd << " --remote-#{remote_command}" cmd << " #{Shellwords.escape(argument)} 2>&1" Torkify.logger.debug { "[vim] sending remote command: #{cmd}" } parse_output(`#{cmd}`) end
parse_output(output)
click to toggle source
# File lib/torkify/vim/remote.rb, line 44 def parse_output(output) output = output.strip Torkify.logger.debug { "[vim] output from command: #{output}" } if output =~ /^E\d+:/ raise RemoteError, output else output end end
ping()
click to toggle source
# File lib/torkify/vim/remote.rb, line 54 def ping expr("winnr()") end