问题标签 [xtermjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3601 浏览

javascript - 如何正确模拟 DOM,以便可以使用 Jest 测试使用 Xterm.js 的 Vue 应用程序?

我有一个渲染 Xterm.js 终端的 Vue 组件。

终端.vue

我想测试这个组件。

Terminal.test.js

当我jest在这个测试文件上运行时,我得到这个错误:

深入堆栈跟踪,我可以看到它与 Xterm 的 ColorManager 有关。

如果我查看他们的代码,我会看到一个相对令人困惑的事情:

xterm.js/ColorManager.ts

我不太清楚如何canvas.getContext明显地返回通过布尔检查(at if(!ctx))但后来cannot set globalCompositeOperation of null在同一个变量上导致错误的东西。

我对如何成功进行模拟渲染并因此测试这个组件感到非常困惑——在 xterm 自己的测试文件中,他们似乎正在使用以下方法创建一个假 DOM jsdom

xterm.js/ColorManager.test.ts

但我相信,在幕后,vue-test-utils也在使用jsdom. 此外,文档表明该mount函数既附加又呈现 vue 组件。

创建一个包含已安装和渲染的 Vue 组件的 Wrapper。

https://vue-test-utils.vuejs.org/api/#mount

我怎样才能成功地模拟一个 DOM,以便我可以使用 Jest 测试一个实现 Xterm.js 的 Vue 组件?

0 投票
1 回答
745 浏览

terminal-emulator - 在 xterm js 中运行 Python 命令?

是否可以通过 xterm js 执行 python 命令?我想在下面轻松打印一个“Hello World”语句,但不确定如何正确实现它。

0 投票
1 回答
1632 浏览

xtermjs - 如何删除 xterm.js 中的最后一行

我正在尝试删除 xtermjs 终端的最后一行。在文档中我只找到了clearandreset方法,但我只想删除最后一行。

0 投票
0 回答
53 浏览

xtermjs - 检查终端是否空闲

我正在为 Graviton ( https://graviton.ml ) 编写一个“编译和/或运行”插件,这是一个为终端提供 xtermjs 的代码编辑器。

有什么方法可以检查当前终端是否空闲?

所谓空闲,我的意思是在 bash / cmd 提示符处等待输入。

0 投票
1 回答
75 浏览

java - 在不同线程中启动的 ServerSocket 使 JavaFX 应用程序冻结

我正在尝试使用 pty.js 和 xterm.js 创建一个终端模拟器。我以前从未尝试过这样的事情,所以如果我说错了,我道歉,这是因为我没有正确理解它。无论如何,终端应该显示在 JavaFXWebView中,并且所有 GUI 都已准备好并经过测试。根据我的发现,我了解到必须在 localhost 上运行一个服务器,以便 pty.js 在那里生成一个 shell,并通过 xterm.js 在WebView. 现在,我正在尝试创建一个使用ServerSocket新的服务器Thread但是当我测试应用程序并单击终端按钮时,应用程序会冻结。我已经通过访问我的本地主机测试了服务器是否正在运行,并且它已经启动并正在运行。所以,我得到的是应用程序的主线程在服务器线程启动时优先级较低。我对吗?如果是这样,我该如何解决这个问题?

下面的函数在initialize从主控制器加载的终端场景的方法中调用。有人可以解释为什么会这样吗?

0 投票
2 回答
9140 浏览

javascript - 如何在本地构建和使用 xterm.js?

我想对xterm.js的源代码进行一些更改,并在进行 PR 之前对其进行测试。我未能成功生成有效的“分布”。

(如果我的术语不正确,我深表歉意——我对 Web 开发很陌生)

设置

我用以下内容建立了一个简单的测试网站index.html

在该位置%PUBLIC_URL%,我将从以下任一位置放置一个 JS 源文件xterm.js

  • node_modules/xterm/dist/xterm.js- 通过 npm 添加
  • xterm.js/lib/xterm.js- 从 GitHub 存储库构建

为了构建本地副本,xterm.js我采取了以下步骤:

(注意:如果你在家里跟着我,我无法在 Windows 或 Mac 上构建 xterm.js——我只能使用 Ubuntu 18.04 完成这些步骤)

命令全部成功运行,最后一个创建xterm-local/lib包含xterm.js. 我使用该文件来替换可以从 NPM 安装中获得的副本。

结果

普通的

使用 NPM 时,dist/xterm.js我成功地看到我的终端元素呈现并且日志读取

使用本地构建

当使用我本地构建的输出时,xterm-local/lib/xterm.js没有呈现终端元素,出现错误:Uncaught TypeError: Terminal is not a constructor并且日志读取

期望

我希望在构建 xterm.js 的本地副本之后,我可以将它与 NPM 发行版互换使用。但是我很好奇为什么该命令npm run package不生成dist文件夹而是生成文件lib夹。我是否缺少其他步骤来制作我自己的可用副本xterm.js

0 投票
1 回答
2872 浏览

javascript - 如何在 Xterm.js 中实现“BackSpace”、“arrow”?

我正在设计一个包含使用 Xterm.js 的终端的 Web,并希望将字符串传输到服务器。我可以在上面输入一些字符串,但不能使用“退格”、“删除”、“主页”功能。

我尝试自己完成这些功能,但有很多功能需要做。

例如退格

我可以删除最后一个字符,但不能删除字符串内...这些功能是我自己做的吗?有没有更方便的模块?

谢谢!

0 投票
1 回答
1349 浏览

javascript - 如何在 exterm.js 中格式化文本颜色

我使用 xterm.js 作为 Web 控制台。虽然它允许更改控制台颜色和背景,但我找不到任何方法来用不同的颜色编写每一行。这可能吗?

0 投票
1 回答
79 浏览

xtermjs - 如何在 xtermjs 上使用触摸事件(iPad)进行选择

xtermjs 的首页有演示部分。我可以通过鼠标单击进行选择,以便复制选择。但是,在 iPad 上,我无法通过触摸进行选择。有没有办法在 xtermjs 上为 iPad 等触摸设备选择?

我添加了 touchstart 事件并且可以获得 pageY 但我不确定如何将坐标转换为列和行。只要列和行在那里,我认为我们可以使用 xterm api 进行选择,但我找不到方法。 .

0 投票
1 回答
163 浏览

uwp - UWP WebView 中的 Xterm.js - 以编程方式粘贴

我正在开发一个基于 Xterm.js 的终端应用程序,它在 UWP WebView 中运行。一切正常,我可以使用 Ctrl+V 将任何文本粘贴到终端 - 看起来它是由 Xterm.js 自动处理的。

但我无法实现“粘贴”菜单选项。我试图做类似的事情:

var value = await _webView.InvokeScriptAsync("eval", new []{"document.execCommand('paste')"});

(根据https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)但没有运气。没有粘贴任何内容,并且调用返回空字符串。

任何想法如何从 UWP 应用程序菜单实现粘贴?谢谢!