Xtermjs无法复制和粘贴

时间:2019-11-20 07:23:44

标签: angular typescript xtermjs

我无法通过xterm.js API实现复制和粘贴功能。我希望终端能够从剪贴板复制字符串。

我正在使用

c++

但是它只能在终端中获取复制的文本,并且按键事件无法检测到MAC上的命令键(现在我正在使用ctl + c&ctl + v)

如果使用onData(),则在按下命令+ V时触发该事件,并且可以看到它在终端上输出了字符串

  this.term.onKey((key) => {
    if (key.domEvent.code === 'KeyC'){
     if (key.domEvent.ctrlKey) {
     this.copiedText = this.term.getSelection();
    }
   } else if (key.domEvent.code === 'KeyV'){
     if (key.domEvent.ctrlKey) {
     this.term.write(this.copiedText);
    } 
   }
  }

但是“ data”只是一个字符串,并且该事件也是由按键触发的,因此term.onData将与onKey()事件发生冲突,并且我不确定如何在“ data”上设置条件,因为它不是对象。

1 个答案:

答案 0 :(得分:0)

对于ctrl / cmd + c / v,您可以使用Terminal.attachCustomKeyEventHandler来拦截按键并防止终端对其进行评估。

在该处理程序中,您可以处理按键并使用相关的Web API复制和粘贴文本(document.execCommand,最好是navigator.clipboard)。