   }
 
   public func newTab() {
-    self.exec(command: "tabe")
+    self.nvim.command(command: "tabe", expectsReturnValue: false)
   }
 
   public func `open`(urls: [URL]) {

      }
    }

    self.nvim.command(command: "tab sb \(buffer.handle)")
  }

  /// Closes the current window.
  public func closeCurrentTab() {
    // We don't have to wait here even when neovim quits since we wait in gui.async() block in neoVimStopped().
    self.exec(command: "q")
  }

  public func saveCurrentTab() {
    self.exec(command: "w")
  }

  public func saveCurrentTab(url: URL) {
    let path = url.path
    guard let escapedFileName = self.uiClient.escapedFileName(path) else {
      self.logger.fault("Escaped file name returned nil.")
      return
    }

    self.exec(command: "w \(escapedFileName)")
  }

  public func closeCurrentTabWithoutSaving() {
    self.exec(command: "q!")
  }

  public func quitNeoVimWithoutSaving() {
    self.exec(command: "qa!")
    self.delegate?.neoVimStopped()
    self.waitForNeoVimToQuit()
  }

  public func vimOutput(of command: String) -> String {
    return self.nvim.commandOutput(str: command) ?? ""
  }

  public func cursorGo(to position: Position) {

          && self.uiClient.neoVimQuitCondition.wait(until: Date(timeIntervalSinceNow: neoVimQuitTimeout)) {}
  }

  private func `open`(_ url: URL, cmd: String) {
    self.nvim.command(command: "\(cmd) \(url.path)", expectsReturnValue: false)
  }

  private func neoVimBuffer(for buf: NvimApi.Buffer, currentBuffer: NvimApi.Buffer?) -> NvimView.Buffer? {
