iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux中DomTerm怎么用
  • 881
分享到

linux中DomTerm怎么用

2023-06-16 08:06:15 881人浏览 安东尼
摘要

这篇文章主要介绍了linux中DomTerm怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。DomTerm  是一款现代化的终端模拟器,它使用浏览器引擎作为 “

这篇文章主要介绍了linux中DomTerm怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

DomTerm  是一款现代化的终端模拟器,它使用浏览器引擎作为 “GUI 工具包”。这就支持了一些相关的特性,例如可嵌入图像和链接、html  富文本以及可折叠(显示/隐藏)命令。除此以外,它看起来感觉就像一个功能完整、独立的终端模拟器,有着出色 xterm 兼容性(包括鼠标处理和 24  位色)和恰当的 “装饰” (菜单)。另外它内置支持了会话管理和副窗口(如同 tmuxGNU Screen 中一样)、基本输入编辑(如在 readline 中)以及分页(如在 less 中)。

linux中DomTerm怎么用

图 1: DomTerminal 终端模拟器。

在以下部分我们将看一看这些特性。我们将假设你已经安装好了 domterm 。开始之前先让我们概览一下这项技术。

前端 vs. 后端

DomTerm 大部分是用 javascript 写的,它运行在一个浏览器引擎中。它可以是像例如 Chrome 或者 Firefox  一样的桌面浏览器(见图  3),也可以是一个内嵌的浏览器。使用一个通用的网页浏览器没有问题,但是用户体验却不够好(因为菜单是为通用的网页浏览而不是为了终端模拟器所打造),并且其安全模型也会妨碍使用。因此使用内嵌的浏览器更好一些。

目前以下这些是支持的:

  • qdomterm,使用了 Qt 工具包 和 QtWEBEngine

  • 一个内嵌的 Electron(见图 1)

  • atom-domterm 以 Atom 文本编辑器(同样基于 Electron)包的形式运行 DomTerm,并和 Atom 面板系统集成在一起(见图 2)

  • 一个为 JavaFX 的 WebEngine 包装器,这对 Java 编程十分有用(见图 4)

  • 之前前端使用 Firefox-XUL ,但是 Mozilla 已经终止了 XUL

linux中DomTerm怎么用

图 2:在 Atom 编辑器中的 DomTerm 终端面板。

目前,Electron 前端可能是更好的选择,紧随其后的是 Qt 前端。如果你使用 Atom,atom-domterm 也工作得相当不错。

后端服务器是用 C 写的。它管理着伪终端(PTY)和会话。它同样也是一个为前端提供 Javascript 和其它文件的 Http 服务器domterm 命令启动终端任务和执行其它请求。如果没有服务器在运行,domterm 就会自己来服务。后端与服务器之间的通讯通常是用 websockets(在服务器端是libwebSockets)完成的。然而,JavaFX 的嵌入既不用 Websockets 也不用 DomTerm 服务器。相反 Java 应用直接通过 Java-Javascript 桥接进行通讯。

一个稳健的可兼容 xterm 的终端模拟器

DomTerm 看上去感觉像一个现代的终端模拟器。它处理鼠标事件、24 位色、Unicode、倍宽字符(CJK)以及输入方式。DomTerm 在 vttest 测试套件 上工作地十分出色。

其不同寻常的特性包括:

展示/隐藏按钮(“折叠”): 小三角(如上图 2)是隐藏/展示相应输出的按钮。仅需在提示符中添加特定的转义字符就可以创建按钮。

对于 readline 和类似输入编辑器的鼠标点击支持: 如果你点击输入区域,DomTerm 会向应用发送正确的方向键按键序列。(可以通过提示符中的转义字符启用这一特性,你也可以通过 Alt+点击 强制使用。)

用 CSS 样式化终端: 这通常是在 ~/.domterm/settings.ini 里完成的,保存时会自动重载。例如在图 2 中,设置了终端专用的背景色。

一个更好的 REPL 控制台

一个经典的终端模拟器基于长方形的字符单元格工作的。这在 REPL(命令行)上没问题,但是并不理想。这里有些通常在终端模拟器中不常见的 REPL 很有用的 DomTerm 特性:

一个能“打印”图片、图形、数学公式或者一组可点击的链接的命令: 应用可以发送包含几乎任何 HTML 的转义字符。(HTML 会被剔除部分,以移除 JavaScript 和其它危险特性。)

图 3 显示了来自 gnuplot 会话的一个片段。Gnuplot(2.1 或者跟高版本)支持 DORMTerm 作为终端类型。图形输出被转换成 SVG 图片,然后被打印到终端。我的博客帖子在 DormTerm 上的 Gnuplot 展示在这方面提供了更多信息。

linux中DomTerm怎么用

图 3:Gnuplot 截图。

Kawa 语言有一个创建并转换几何图像值的库。如果你将这样的图片值打印到 DomTerm 终端,图片就会被转换成 SVG 形式并嵌入进输出中。

linux中DomTerm怎么用

图 4:Kawa 中可计算的几何形状。

富文本输出: 有着 HTML 样式的帮助信息更加便于阅读,看上去也更漂亮。图片 1 的下面面板展示 dormterm help 的输出。(如果没在 DomTerm 下运行的话输出的是普通文本。)注意自带的分页器中的 PAUSED 消息。

包括可点击链接的错误消息: DomTerm 可以识别语法 filename:line:column 并将其转化成一个能在可定制文本编辑器中打开文件并定位到行的链接。(这适用于相对路径的文件名,如果你用 PROMPT_COMMAND 或类似的跟踪目录。)

编译器可以侦测到它在 DomTerm 下运行,并直接用转义字符发出文件链接。这比依赖 DomTerm 的样式匹配要稳健得多,因为它可以处理空格和其他字符并且无需依赖目录追踪。在图 4 中,你可以看到来自 Kawa Compiler 的错误消息。悬停在文件位置上会使其出现下划线,file: URL 出现在 atom-domterm 消息栏(窗口底部)中。(当不用 atom-domterm 时,这样的消息会在一个浮层的框中显示,如图 1 中所看到的 PAUSED 消息所示。)

点击链接时的动作是可以配置的。默认对于带有 #position 后缀的 file: 链接的动作是在文本编辑器中打开那个文件。

结构化内部表示:以下内容均以内部节点结构表示:命令、提示符、输入行、正常和错误输出、标签,如果“另存为 HTML”,则保留结构。HTML 文件与 XML 兼容,因此你可以使用 XML 工具搜索或转换输出。命令 domterm view-saved 会以一种启用命令折叠(显示/隐藏按钮处于活动状态)和重新调整窗口大小的方式打开保存的 HTML 文件。

内建的 Lisp 样式优美打印: 你可以在输出中包括优美打印指令(比如,grouping),这样断行会根据窗口大小调整而重新计算。查看我的文章 DomTerm 中的动态优美打印以更深入探讨。

基本的内建行编辑,带着历史记录(像 GNU readline 一样):  这使用浏览器自带的编辑器,因此它有着优秀的鼠标和选择处理机制。你可以在正常字符模式(大多数输入的字符被指接送向进程);或者行模式(通常的字符是直接插入的,而控制字符导致编辑操作,回车键会向进程发送被编辑行)之间转换。默认的是自动模式,根据  PTY 是在原始模式还是终端模式中,DomTerm 在字符模式与行模式间转换。

自带的分页器(类似简化版的 less):键盘快捷键控制滚动。在“页模式”中,输出在每个新的屏幕(或者单独的行,如果你想一行行地向前移)后暂停;页模式对于用户输入简单智能,因此(如果你想的话)你无需阻碍交互式程序就可以运行它。

多路复用和会话

标签和平铺: 你不仅可以创建多个终端标签,也可以平铺它们。你可以要么使用鼠标或键盘快捷键来创建或者切换面板和标签。它们可以用鼠标重新排列并调整大小。这是通过 GoldenLayout JavaScript 库实现的。图 1 展示了一个有着两个面板的窗口。上面的有两个标签,一个运行 Midnight Commander;底下的面板以 HTML 形式展示了 dormterm help 输出。然而相反在 Atom 中我们使用其自带的可拖拽的面板和标签。你可以在图 2 中看到这个。

分离或重接会话:tmux 和 GNU screen  类似,DomTerm  支持会话安排。你甚至可以给同样的会话接上多个窗口或面板。这支持多用户会话分享和远程链接。(为了安全,同一个服务器的所有会话都需要能够读取  Unix 域接口和一个包含随机密钥的本地文件。当我们有了良好、安全的远程链接,这个限制将会有所放松。)

domterm 命令 类似与 tmux 和 GNU screen,它有多个选项可以用于控制或者打开单个或多个会话的服务器。主要的差别在于,如果它没在 DomTerm 下运行,dormterm 命令会创建一个新的顶层窗口,而不是在现有的终端中运行。

tmuxgit 类似,dormterm 命令有许多子命令。一些子命令创建窗口或者会话。另一些(例如“打印”一张图片)仅在现有的 DormTerm 会话下起作用。

命令 domterm browse 打开一个窗口或者面板以浏览一个指定的 URL,例如浏览文档的时候。

感谢你能够认真阅读完这篇文章,希望小编分享的“linux中DomTerm怎么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: linux中DomTerm怎么用

本文链接: https://www.lsjlt.com/news/282889.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中DomTerm怎么用
    这篇文章主要介绍了linux中DomTerm怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。DomTerm  是一款现代化的终端模拟器,它使用浏览器引擎作为 “...
    99+
    2023-06-16
  • Linux中!怎么用
    小编给大家分享一下Linux中!怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!执行上一条命令例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令:$ whereis bas...
    99+
    2023-06-16
  • linux中shellcheck怎么用
    小编给大家分享一下linux中shellcheck怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shellcheckshellcheck就是这样的一个工具。...
    99+
    2023-06-15
  • linux中怎么用PiShrink
    小编给大家分享一下linux中怎么用PiShrink,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装 PiShrink要在 Linux 机器上安装 PiShri...
    99+
    2023-06-16
  • linux中Hegemon怎么用
    小编给大家分享一下linux中Hegemon怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hegemon 是什么?Hegemon 是一个正在开发中的模块化系...
    99+
    2023-06-16
  • linux中tmux怎么用
    小编给大家分享一下linux中tmux怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tmux 是终端复用器terminal multiplexer的缩写,它...
    99+
    2023-06-16
  • Linux中PING怎么用
    这篇文章主要为大家展示了“Linux中PING怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中PING怎么用”这篇文章吧。PING(Packet InterNet  G...
    99+
    2023-06-16
  • linux中grep怎么用
    这篇文章主要为大家展示了“linux中grep怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中grep怎么用”这篇文章吧。在linux中,grep命令用于查找文件里符合条件的字符...
    99+
    2023-06-22
  • linux中curl怎么用
    这篇文章将为大家详细讲解有关linux中curl怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 curl curl 是用于构造 HTTP 请求的命令行工具。我喜欢使用 curl,因为它能够很轻...
    99+
    2023-06-16
  • linux中rtop怎么用
    小编给大家分享一下linux中rtop怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!rtop 是一个基于 SSH 的直接的交互式远程系统监控工具,它收集并显...
    99+
    2023-06-16
  • Linux中systemctl怎么用
    这篇文章给大家分享的是有关Linux中systemctl怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进...
    99+
    2023-06-27
  • Linux中const怎么用
    这篇文章将为大家详细讲解有关Linux中const怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:int&nb...
    99+
    2023-06-16
  • Linux中RPM怎么用
    这篇文章主要介绍了Linux中RPM怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用...
    99+
    2023-06-28
  • Linux中tcpreplay怎么用
    这篇文章将为大家详细讲解有关Linux中tcpreplay怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令tcpreplay是一种pcap包的重放工具,它可以将用ethreal、wi...
    99+
    2023-06-28
  • Linux中make怎么用
    这篇文章将为大家详细讲解有关Linux中make怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令make命令 是GNU的工程化编译工具,用于编译众多相互关联的源代码文件,以实现工程化...
    99+
    2023-06-28
  • linux中for怎么用
    这篇文章主要为大家展示了“linux中for怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中for怎么用”这篇文章吧。在linux中,for命令用于创建一个循环,该循环通过一系列...
    99+
    2023-06-22
  • linux中expect怎么用
    这篇文章主要为大家展示了“linux中expect怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中expect怎么用”这篇文章吧。在linux中,expect是一个自动化交互套件...
    99+
    2023-06-22
  • Linux中MySQL怎么用
    这篇文章将为大家详细讲解有关Linux中MySQL怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。show databases;2.use mysql转换database3.show tables 显...
    99+
    2023-06-03
  • linux中cgroups怎么用
    这篇文章主要介绍了linux中cgroups怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。从 2.6.24 版本开始,linux 内核提供了一个叫做 cgroups(控...
    99+
    2023-06-13
  • linux中kvm怎么用
    这篇文章主要为大家展示了“linux中kvm怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中kvm怎么用”这篇文章吧。一、kvm的安装及状态查看1、安装软件yum -y...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作