问题标签 [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.
javascript - 如何正确模拟 DOM,以便可以使用 Jest 测试使用 Xterm.js 的 Vue 应用程序?
我有一个渲染 Xterm.js 终端的 Vue 组件。
终端.vue
我想测试这个组件。
Terminal.test.js
当我jest
在这个测试文件上运行时,我得到这个错误:
深入堆栈跟踪,我可以看到它与 Xterm 的 ColorManager 有关。
如果我查看他们的代码,我会看到一个相对令人困惑的事情:
我不太清楚如何canvas.getContext
明显地返回通过布尔检查(at if(!ctx)
)但后来cannot set globalCompositeOperation of null
在同一个变量上导致错误的东西。
我对如何成功进行模拟渲染并因此测试这个组件感到非常困惑——在 xterm 自己的测试文件中,他们似乎正在使用以下方法创建一个假 DOM jsdom
:
但我相信,在幕后,vue-test-utils
也在使用jsdom
. 此外,文档表明该mount
函数既附加又呈现 vue 组件。
创建一个包含已安装和渲染的 Vue 组件的 Wrapper。
https://vue-test-utils.vuejs.org/api/#mount
我怎样才能成功地模拟一个 DOM,以便我可以使用 Jest 测试一个实现 Xterm.js 的 Vue 组件?
terminal-emulator - 在 xterm js 中运行 Python 命令?
是否可以通过 xterm js 执行 python 命令?我想在下面轻松打印一个“Hello World”语句,但不确定如何正确实现它。
xtermjs - 如何删除 xterm.js 中的最后一行
我正在尝试删除 xtermjs 终端的最后一行。在文档中我只找到了clear
andreset
方法,但我只想删除最后一行。
xtermjs - 检查终端是否空闲
我正在为 Graviton ( https://graviton.ml ) 编写一个“编译和/或运行”插件,这是一个为终端提供 xtermjs 的代码编辑器。
有什么方法可以检查当前终端是否空闲?
所谓空闲,我的意思是在 bash / cmd 提示符处等待输入。
java - 在不同线程中启动的 ServerSocket 使 JavaFX 应用程序冻结
我正在尝试使用 pty.js 和 xterm.js 创建一个终端模拟器。我以前从未尝试过这样的事情,所以如果我说错了,我道歉,这是因为我没有正确理解它。无论如何,终端应该显示在 JavaFXWebView
中,并且所有 GUI 都已准备好并经过测试。根据我的发现,我了解到必须在 localhost 上运行一个服务器,以便 pty.js 在那里生成一个 shell,并通过 xterm.js 在WebView
. 现在,我正在尝试创建一个使用ServerSocket
新的服务器Thread
但是当我测试应用程序并单击终端按钮时,应用程序会冻结。我已经通过访问我的本地主机测试了服务器是否正在运行,并且它已经启动并正在运行。所以,我得到的是应用程序的主线程在服务器线程启动时优先级较低。我对吗?如果是这样,我该如何解决这个问题?
下面的函数在initialize
从主控制器加载的终端场景的方法中调用。有人可以解释为什么会这样吗?
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
?
javascript - 如何在 Xterm.js 中实现“BackSpace”、“arrow”?
我正在设计一个包含使用 Xterm.js 的终端的 Web,并希望将字符串传输到服务器。我可以在上面输入一些字符串,但不能使用“退格”、“删除”、“主页”功能。
我尝试自己完成这些功能,但有很多功能需要做。
例如退格
我可以删除最后一个字符,但不能删除字符串内...这些功能是我自己做的吗?有没有更方便的模块?
谢谢!
javascript - 如何在 exterm.js 中格式化文本颜色
我使用 xterm.js 作为 Web 控制台。虽然它允许更改控制台颜色和背景,但我找不到任何方法来用不同的颜色编写每一行。这可能吗?
xtermjs - 如何在 xtermjs 上使用触摸事件(iPad)进行选择
xtermjs 的首页有演示部分。我可以通过鼠标单击进行选择,以便复制选择。但是,在 iPad 上,我无法通过触摸进行选择。有没有办法在 xtermjs 上为 iPad 等触摸设备选择?
我添加了 touchstart 事件并且可以获得 pageY 但我不确定如何将坐标转换为列和行。只要列和行在那里,我认为我们可以使用 xterm api 进行选择,但我找不到方法。 .
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 应用程序菜单实现粘贴?谢谢!