Мне не удалось реализовать функцию копирования и вставки из API-интерфейсов xterm.js. Я хочу, чтобы терминал мог копировать строки из буфера обмена.
я использую
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);
}
}
}
но он может получить скопированный текст только в терминале, а ключевое событие не может обнаружить командную клавишу на MAC (сейчас я использую ctl + c и ctl + v)
Если я использую onData(), событие запускается, когда я нажимаю команду + V, и я вижу, что оно выводит строки вне терминала.
this.term.onData((data) => {
console.log(data.toString()); // prints "strings I copied with command + c"
});
Но «данные» — это просто строка, и событие также запускается нажатием клавиши, поэтому term.onData будет конфликтовать с событием onKey(), и я не уверен, как установить условие для «данных», поскольку это не так. объект.