def command(*commands)
      return @command if @command && commands.empty?

      execs = self.class.available(*commands)
      if execs.empty?
        raise EditorNotFoundError,
              'Could not find editor to use. Please specify $VISUAL or $EDITOR'
      end
      exec = choose_exec_from(execs)
      @command = TTY::Which.which(exec.to_s)
    end
def command(*commands)
      return @command if @command && commands.empty?

      execs = self.class.available(*commands)
      if execs.empty?
        raise EditorNotFoundError,
              'Could not find editor to use. Please specify $VISUAL or $EDITOR'
      end
      exec = choose_exec_from(execs)
      @command = TTY::Which.which(exec.to_s)
    end
Finds command using a configured command(s) or detected shell commands.

 @param [Array[String]] commands
   the optional command to use, by default auto detecting

 @raise [TTY::CommandInvocationError]

 @return [String]

 @api public