我正在编写各种实用程序,我真的很喜欢彩色文本.没有什么好看的,只是使用转义序列.我创建了一个具有pprint(msg,color)函数的简单类.在这里找到代码后,我已经很容易地工作了.
我遇到的问题是我应该能够在打印后关闭颜色.例如,假设一个用户运行我的程序,它打印几乎所有的默认终端颜色,但有一个错误,我想以红色打印错误.我的错误消息前缀为'\ 033 [0; 32m',消息为红色.不幸的是,在我更改之前,所有文本都是红色的.在我的程序运行时,这通常很好,因为我知道消息应该是什么颜色.但是,程序结束后颜色仍然存在.基本上,我想在程序启动时读取当前颜色,并在完成后恢复它.与退出时脚本恢复pwd的方式相同.
如何读取当前的转义序列?
系统:Red Hat 5.x Bash Python 2.3
谢谢您的帮助.
当我尝试在我的服务器上纳米时,我收到此错误"错误打开终端:xterm-256color." 这是我以前从未见过的,而且上周纳米曾经很好用.即使我使用vi,文件也会打开,但我无法使用普通的vi命令进行操作.当我按下i启动插入模式,然后尝试浏览文档,它只是一个类型A或者B什么的.
唯一改变的是我丢失了我的私钥并且必须生成一个新密钥,所以我必须将新的公钥上传到我的服务器.任何人都知道为什么会这样吗?
服务器正在运行Ubuntu 8.04 Hardy.
解
打开终端,从菜单终端>首选项>设置>高级菜单中选择,然后在仿真下选择"将终端声明为:xterm-color not xterm-256color"
参考:http://ricochen.wordpress.com/2011/07/23/mac-os-x-lion-terminal-color-remote-access-problem-fix/
我正在用Swift编写命令行工具,我在shell中显示颜色时遇到问题.我正在使用以下代码:
println("\033[31;32mhey\033[39;39m")
Run Code Online (Sandbox Code Playgroud)
甚至
NSFileHandle.fileHandleWithStandardOutput().writeData("\033[31;32mhey\033[39;39m".dataUsingEncoding(NSASCIIStringEncoding, allowLossyConversion: true)!)
Run Code Online (Sandbox Code Playgroud)
当我在php中使用一个简单的echo(文本显示为绿色)时,它有效,但是有一个原因它在Swift命令行工具中不起作用吗?
谢谢!
我想运行xterm -e file.sh而不终止.
在文件中,我将命令发送到后台,当脚本完成后,它们仍然没有完成.
我目前正在做的是:
(cd /myfolder; /xterm -ls -geometry 115x65 -sb -sl 1000)
Run Code Online (Sandbox Code Playgroud)
然后窗口弹出后
sh file.sh
exit
Run Code Online (Sandbox Code Playgroud)
我想做的是:
(cd /myfolder; /xterm -ls -geometry 115x65 -sb -sl 1000 -e sh file.sh)
Run Code Online (Sandbox Code Playgroud)
没有终止并等到后台的命令完成.
谁知道怎么做?
简短版本:当使用emacs的xterm-mouse-mode时,Somebody(emacs?bash?xterm?)拦截xterm的控制序列并用\ 0替换它们.这是宽屏显示器的痛苦,因为只有前223列有鼠标.
罪魁祸首是什么,我该如何解决?
据我所知,这与Unicode/UTF-8支持有关,因为5 - 6年前我上次使用大显示器时不是问题.
血腥细节如下......
谢谢!
Emacs xterm-mouse-mode有一个众所周知的弱点,处理从x = 95开始的鼠标点击.最近版本的emacs采用的解决方法将问题推迟到x = 223.
几年前,我发现xterm以7位八位字节编码位置.给定位置'x'进行编码,X = x-96,发送:
\40+x (x < 96)
\300+X/64 \200+X%64 (otherwise)
Run Code Online (Sandbox Code Playgroud)
我们必须从emacs中添加一个给定的x位置,因为xterm中的位置从1开始,而不是零.因此,魔术x = 95数字会弹出,因为它被编码为"\ 300\200" - 第一个转义的数字.有人(emacs?bash?xterm?)对待那些来自ISO 2022的 "C0"控制序列.从x = 159开始,我们改为"C1"序列(\ 301\200),它们也是ISO 2022的一部分.
使用\ 302序列遇到问题,这与当前的x = 223限制相对应.几年前,我能够扩展黑客手动拦截\ 302和\ 303序列,从而解决了这个问题.快进几年,今天我发现我被困在x = 223,因为有人用\ 0取代了这些序列.
所以,我期望点击第1行,第250列来制作
ESC [ M SPC \303\207 ! ESC [ M # \303\207 !
Run Code Online (Sandbox Code Playgroud)
相反,emacs报告(对于任何col> 223)
ESC [ M SPC C-@ ! ESC [ M # C-@ !
Run Code Online (Sandbox Code Playgroud)
我怀疑Unicode/UTF-8支持是罪魁祸首.一些挖掘表明,Unicode标准允许C0和C1序列作为UTF-8的一部分,直到2000年11月,我猜有人没有得到备忘录(幸运的是).但是,\ 302\200 - …
我刚换了台式电脑.我以前的计算机和这台计算机都有Windows XP.为了使用我们拥有的许多Linux服务器,我安装了Cygwin及其xterm包.但是,我无法像以前的计算机一样运行startx来启动X-window服务器.我一直在网上看看为什么我的安装中缺少startx,但我还没有找到任何东西.任何帮助将不胜感激.
[做更多的研究]好吧,我刚刚安装了xinit软件包,我以前不记得了.(上次我安装Cygwin时可能需要xterm包.)startx现在存在,但我不会说它有效.它启动的X窗口服务器创建了一个窗口,覆盖我的整个监视器,其中有三个终端,不像我以前使用的旧的25行x 80列单终端窗口.更糟糕的是,我不能像以前一样生成子窗口,这是使用Cygwin和X-windows的真正力量.
是否有像' Term :: ANSIColor '这样的宝石可以使用256色终端?perl脚本256colors2.pl在我的终端中运行良好,我想在我的ruby脚本中使用其中一些颜色,而无需手动插入ANSI代码.
我在屏幕上使用vim进行开发,如果我退出vim,当前的屏幕内容仍然存在...
在屏幕外(xterm),退出vim将恢复以前的缓冲区(如:
[ server1 ]~$ cmd
some stuff, some stuff
[ server1 ]~$ cmd
[ server1 ]~$ cmd
Run Code Online (Sandbox Code Playgroud)
)
但不是在屏幕内.
我尝试使用xterm作为屏幕内的终端 - 但不是想要的效果.
感谢帮助!
我正在使用xterm.js进行项目,但我无法接受输入.每当我尝试输入终端时,没有任何事情发生,并且没有文档或示例告诉如何实现此目的.
这就是我所拥有的:
const term = new XTerm({
cols: 100,
cursorBlink: true,
rows: 120
});
term.open(document.getElementById('terminal-window'), true)
term.fit()
term.writeln('Hello World!')
Run Code Online (Sandbox Code Playgroud)