- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我希望在 golang 中实现远程客户端它通过 nc
连接到 Linux 并启动 bash
。所以我需要告诉 bash
我可以从它发送给我的 stdout
中解析哪些功能,以及我将如何将键码和其他内容发送到它的 stdin
,以便它也可以解析它们。
这是通过 TERM=something
环境变量完成的,我需要将其设置为某个值。如果我不设置它,各种程序就会开始报错:
$ mc
The TERM environment variable is unset!
我发现我可以将 TERM 设置为 dumb
来表示我的客户端真的很有限。而且我似乎仍然遗漏了一些东西。
$ export TERM=dumb
$ mc
Your terminal lacks the ability to clear the screen or position the cursor.
从这里看来,dumb
终端没有这两个能力,但它还有哪些能力值得期待呢?是否有关于它的规范或一些事实上的标准?
最佳答案
寻找源代码会有所帮助。终端数据库有评论。这是一个 slice from that :
#### Specials
#
# Special "terminals". These are used to label tty lines when you don't
# know what kind of terminal is on it. The characteristics of an unknown
# terminal are the lowest common denominator - they look about like a ti 700.
#
dumb|80-column dumb tty,
am,
cols#80,
bel=^G, cr=^M, cud1=^J, ind=^J,
unknown|unknown terminal type,
gn, use=dumb,
假定了“哑”和“未知”终端类型,但很少使用:
“dumb”有自动边距(文本在右边距“换行”),假定有 80 列,以及一个 ASCII BEL 和回车符。由于缺少更好的东西,cud1
(向下光标)是一个 ASCII 换行符。 ind
(索引)值相同,表示当您到达屏幕底部时文本会向上滚动。
没有游标寻址(cup
)也没有交替(例如沿行或列任意移动)。
“unknown”添加了“generic”标志,将其标记为不适合 curses 应用程序使用。把它想象成一台打印机。
至于最低要求,这实际上取决于个人应用。 ncurses 可以设法在屏幕上四处移动,而无需实际使用 cup
。它适用于六种策略。如果您阅读 mvcur
的源代码,您可以了解它需要什么。
但是,诸如 mc
之类的应用程序并不简单地依赖 ncurses 来决定它是否有效,因为(在这种情况下)它可能与俚语相关联(它不会仔细检查)。所以 mc
会进行自己的检查,这可能会增加限制。
在实践中,除非您选择有限的终端描述,例如“dumb”,否则您可能遇到的大多数终端都可以工作。
进一步阅读:
关于linux - TERM=dumb 终端必须具备的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001517/
我遇到了随机森林抛出错误的问题。 我有这个数据框,其中包含已经采用矩阵形式的推文数据,其中包含我试图预测的情绪列。 'data.frame': 1000 obs. of 2155 variabl
在 ansi-term 和 multi-term 中,在我 cd 到一个目录后,我收到一条错误消息和乱码输出,其中 ls 的内容打印但与提示重叠。这是我得到的 $ cd /Users/crippled
我是否必须设置诸如.emacs.d/init_bash.sh之类的东西(对于shell模式),或者它可以读取我的~/.bash_profile直接地?如果是后者,如何设置配置 ansi-term/mu
我有一个类似这样的查询 select city_desc from mst_city where upper(city_desc) like upper('%branch%') 它填充结果以分支开头的
在这里,我试图获取多个术语的搜索结果。说 fulltext="Lee jeans",然后 regexresult={"lee","jeans"}。 代码: IProviderSearchContext
我有一个看起来像这样的方法: public void UpdateTermInfo(List termInfoList) { foreach (Term termInf
With your perfect help here我已经了解了如何计算热门话题(标准分数 + float 平均值)。 我的下一个问题:我的数据库中的术语(由 1-3 个单词组成)与它们被提及的时间
我需要有目的地再创建 2 个表:一个表将存储标签和类别数据(类别可以有层次结构,但标签没有),另一个表存储标签、类别和内容之间的关系。但我对那两张 table 的名称很困惑。我确实是网络开发的新手。经
我在 Elasticsearch 文档 (6.8) 中看到了关于跨度查询的部分, 请求和结果类似于一些术语级别的查询,但它提到跨度是“低级别位置”,闻起来更像是偏好(也许我错了)。 问题是如果我想使用
我在使用 Solr 4.2.0 的“/terms”请求处理程序方面遇到困难。 使用 Web 浏览器,以下 url 返回 fieldName INDUSTRY 的术语列表 http://localhos
我目前正尝试在 elasticsearch 中做一些有趣的事情……而且它几乎可以工作。 用例:我必须将每个特定字段的结果数限制为 (x) 个结果。 示例:在餐厅的结果集中,我只想为每个餐厅名称返回两个
在 term.el ,我们可以从一种子模式更改为另一种子模式。但是,有没有办法用一个功能(和一个键绑定(bind))在它们之间切换? 另一个问题:有没有办法在term-char-mode 中用键盘标记
我有一个按以下顺序列出的员工姓名和薪水列表 我需要按以下格式创建输出表。即,每当累计工资总额超过 3000 时,我必须检测到并标记该行。 我试图做 row_cumsum 并在它超过 3000 时重置
当使用 eshell 或 ansi-term 和 bash emacs 时,会根据您所在的目录更改默认目录变量。 因此,如果我移动到 /home/user/code/project,然后使用 ido-
我可以在我的数据集上使用 R 包“e1071”运行 svm,但我无法使用任何两个预测变量绘制图形。即使谷歌搜索了很多,我也无法找到它的解决方案。请高手帮我解决这个问题: 我有一个具有以下属性的数据集:
Term::ReadLine::Stub::new(/usr/lib/perl5/5.8.8/Term/ReadLine.pm:243): 我期待看到Term::ReadLine::new ,这通常是
我要搜索这个: Post Cereal 得到这个: Post Honey Nut Cereal 通配符是空格。 我知道我可以执行 SPLIT 和一系列 AND 和 Contains() 并将每个术语作
我想根据聚合数据在换句话说过滤数据中放置一个条件。 目前,我有一个查询 GET sense/_search { "size": 0, "aggs": { "dates": {
我在一个围绕化学式的项目上遇到了麻烦。我有两个类(class),Term 和 Formula。 Term 接收诸如“H”或“C2”之类的输入 - 只有一个字母和任意数量的后续数字。它的字段是 elem
我尝试使用 boost::numerics::odeint 来积分微分方程组。我的代码是 dMat Equation::solveODE(dMat u_i, double t_i) { dVec u_
我是一名优秀的程序员,十分优秀!