问题标签 [terminal-emulator]

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 投票
0 回答
44 浏览

android - 为与远程服务器通信的 Android 终端编写代码

我正在用一些额外的信息重新制定问题,因为它处于“搁置”状态。我将删除另一个问题。

我正在尝试构建一个应用程序,它是一个控制台(如 cmd),我可以在其中发送订单(命令)并接收来自服务器的响应。

所以我应该在屏幕上看到的是我的订单,然后是服务器的响应。

为此我应该怎么做?

我正在尝试使用Service. 但是服务不能与网络一起使用。

AsyncTask当我发送第一个命令时将完成。所以每次我决定发送订单时都必须重新连接(效率低下?)

IntentService绑定到Activity的生命。并以同样的方式完成Asynctask

我怎样才能做一个线程,它第一次连接到服务器。然后,每次我向线程发送消息时,它都会联系服务器并从服务器检索我的 TextEdit 信息?


针对 [on hold] 状态进行了编辑。添加更多信息


这是我所拥有的:

  • Activity带有 a TextView(用于终端提示)、a EditText(允许用户输入他想要发送的命令)和 a来Button发送它。
  • Activity是有界的Service

    /li>
  • 应该与Service服务器交互并将信息检索到TextView,所以我实现了:

    /li>

其中 controlOut 是 a PrintWriter, controlIn a DataInputStream,都在方法中初始化connect如下:

所以我想做的是:

  1. connect第一次运行服务时使用方法连接到服务器。
  2. 每次我想向远程服务器发送订单时,我都应该mServer.sendMessage(command);在我的活动中进行。
  3. 因此Service与 Remote 交互Server,当它获得响应时,Service检索对ActivityUI 更新的响应。

如果有比Activity-Service-Thread/Whatever...让我知道的其他正确方法,请感谢您的帮助。感谢您的耐心等待。

0 投票
2 回答
2132 浏览

python - 终端中的行与行

终端仿真器中似乎有一些行与行的概念,我想了解更多。

演示我所说的行与行的意思

下面的 Python 脚本显示三行“a”并等待,然后显示三行“b”。

在此处输入图像描述

如果在此中断期间将终端窗口宽度缩小一个字符,您会看到

在此处输入图像描述

这似乎很合理——每一行都被单独包装。当我们再次按回车键打印bs 时,

在此处输入图像描述

一切都按预期工作。我使用了绝对光标定位,并写入了我之前写入的相同行——这当然不会覆盖所有的 a,因为它们中的许多都在其他行上。

但是,当我们将窗口再缩小一个字符时,换行的工作方式会有所不同:

在此处输入图像描述

为什么第二行和第三行bwrap在一起,为什么'的最后一行a和b'的第一行合并了?为什么在上面可见的顶部行中给出了一个提示——我们看到了两个a,因为它们的两行仍然是链接的——当然,如果我们再次移动窗口,那一行将继续以相同的方式换行。即使对于我们替换了一整行的行,这似乎也在发生。

事实证明,之前包装的行现在链接到它们相应的父行;更明显的是,一旦我们将终端扩大很多,它们属于同一条逻辑线:

在此处输入图像描述

我的问题

实际上,我的问题是如何防止或预测这些行组合成行。清除整个屏幕可以消除这种行为,但如果可能的话,最好只对需要它的个别行执行此操作,这样我就可以按行保持缓存,这显着加快了我的应用程序。清除到行尾会取消该行与其下方行的链接,但清除到行首不会取消该行与其上方行的链接。

我很好奇 - 这些线是什么?我在哪里可以了解它们?我可以找出哪些行是同一行的一部分吗?

我已经使用 terminal.app 和 iterm 观察到了这种行为,使用和不使用 tmux。我想即使没有规范,深入研究其中任何一个都会产生答案——但我想某处有规范!


背景:我想制作一个终端用户界面,如果用户减小窗口宽度,它可以预测终端换行的方式。我知道全屏模式( ncurses 使用的 'tput smcuppython -c 'print "\x1b[?1049h"')之类的东西可以防止换行,但不想在这里使用它。

编辑:更清楚地表明我已经了解脚本的覆盖行为并想要解释包装行为。

0 投票
1 回答
862 浏览

linux - 根据终端背景颜色更改 echo 命令中的字体颜色

我正在编写一个 bash 脚本。我想通过echo命令将彩色字符串打印到终端,并根据终端的背景颜色更改字符串的颜色。

我目前只是用白色打印字符串,如下所示:echo -e "$(tput setaf 7)my string here"

如果终端背景颜色也是白色,有没有办法以不同的颜色打印字符串?我不希望自己设置背景颜色以确保我的字符串可见。

提前致谢!

0 投票
1 回答
1012 浏览

emacs - 从没有查找文件的 Emacs 终端打开文件

如果我在term-mode缓冲区中并且显示了文件路径,我将如何使路径“可点击”,在新缓冲区中打开文件?它不必是鼠标可点击的,事实上我更喜欢当点在文件路径上时有效的键绑定。除了使用的常见情况外ls,查看日志文件时也可以使用此功能。一些调试信息包含文件路径和行号。例如,类似的东西lib/library.rb:34。理想情况下,Emacs 可以打开一个新缓冲区并将光标移动到 line 34

0 投票
1 回答
328 浏览

ios - 通过 telnet 发送到 Fedora 服务器的 Ctrl-Z 不会停止进程

客观的:

我正在开发一个 iOS 终端模拟器,用于通过 telnet 协议访问我的 Unix 服务器。我正在针对 AIX 和 Fedora Linux 进行测试。

问题:

如果我将 Ctrl-Z (ASCII 26) 发送到 AIX 服务器,它会按预期运行:我会返回一个类似 的字符串stopped programname,然后我发送的任何其他字符都会得到回显。

当我将它发送到 Fedora 服务器时,在我第二次发送 Ctrl-Z 之前,我没有得到回声。该程序在 Fedora 机器上的 Bash 下运行。

为什么我会看到这种行为差异?

0 投票
1 回答
558 浏览

terminal-emulator - xfce4-terminal 可以设置行间距吗?或者哪个终端枚举器支持设置它?

GVim通过可以达到这个目标set linespace=12,但它不起作用xfce4-terminal

我已经尝试了此页面中列出的几乎所有终端,但没有找到。

感谢帮助!

0 投票
1 回答
131 浏览

ios - 快速文本绘制期间应用程序挂起

我正在开发终端仿真应用程序以通过 telnet 连接到我的 unix 服务器,我正在使用 tableview(一个单元格用于一个文本行)。令我困扰的是,当服务器发送大量文本数据以响应某些命令时,这会使应用程序对触摸屏幕上的任何按钮或任何手势的响应速度降低(延迟),因为绘图位于主线程中,除非它允许其他进程工作完成的。

什么应该是解决此问题的完美方法,我是否需要 OperationQueue,我对此了解不多。

我需要一些东西,比如在绘图时,我可以与应用程序顺利交互(这可以暂停绘图)。

我认为drawRect需要更长的时间,实际上我在做的不是reloadData或ReloadTableCell,我在tableview的文本行单元格中有一个可变的属性字符串,当需要将文本添加到该单元格时,我只是替换该可变属性字符串中的字符并为调用drawRect的单元格调用setNeedsDisplay。在 drawRect 我的代码如下 -

执行 textReplacement 的其他方法如下 -

0 投票
3 回答
2549 浏览

linux - 更改 man 命令输出的宽度

我经常使用 Guake 终端模拟器。这是自切片培育 IMO 以来最好的事情。

但有一件事一直困扰着我,当我想阅读手册页时,输出的默认宽度是终端窗口的宽度,在我的情况下它总是全屏的,所以有点难以阅读。

有没有一种方法可以使 man 命令 a 的输出的默认宽度为 80 个字符,易于阅读?

man 的手册页有这部分:

但我不知道在哪里改变它。

我尝试添加该行:

人宽 80

到 /etc/manpath.config 和 ~/.bashrc,但没有结果。

0 投票
1 回答
5770 浏览

android - Android:如何从命令行(终端模拟器或 shell 脚本)创建通知?

我想从我在我的 android 设备上运行的 shell 脚本创建一个通知(通知栏中的图标加上通知抽屉中的消息)。我有 CyanogenMod11,它带有 BusyBox v1.22.1 仿生。

我发现了如何创建吐司(http://forum.xda-developers.com/showthread.php?t=773232),但我需要的是通知。对于吐司和通知之间的区别,请参阅这个优秀的线程:https ://android.stackexchange.com/questions/52789/popups-dialogs-notifications-toasts-whats-the-difference

谁能指出我正确的方向?我猜它会涉及到 Android 活动管理器(am),但我已经搜索了互联网的每一个角落,但找不到从 android 命令行创建通知的方法。

0 投票
0 回答
5583 浏览

javascript - 要启用并行构建,请添加“/m”开关

我想运行这个示例https://github.com/Gottox/node-webterm,但是当我执行命令 npm install 它显示错误消息。

  1. 我已经安装了https://github.com/TooTallNate/node-gyp#installation中提到的 python 2.7.3、windows 7 SDK 。但仍然得到同样的错误。