如何使用PUT in Tcl更改文本颜色 [英] How to change color text using puts in tcl

查看:48
本文介绍了如何使用PUT in Tcl更改文本颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过使用Tcl中的PUT命令来更改控制台中显示的文本颜色,以简化调试。我看到很多文章都是关于tk的,但不是tcl。仅供参考,我正在Windows 7上使用Active Tcl。

我已经尝试了其他人提供的以下代码(http://www.tek-tips.com/viewthread.cfm?qid=1283356),但是没有成功: puts "Why not 33[34mG33[31mo33[33mo33[34mg33[32ml33[31me33[0m first ?"

请提供建议。

推荐答案

您引用的代码可以在我身上运行(OSX,Terminal.app;TCL8.4、8.5和8.6),我希望它在LINUX上也能运行得一样好。(这在Windows上会有所不同,因为控制台的工作方式非常不同。)在Linux上失败表明问题不在Tcl,而在其他地方;我猜问题出在您的终端,它不想遵守颜色代码。另一种可能性是,由于某些原因,您的终端喜欢不同的转义序列。

解决第二个问题的方法如下:

proc color {foreground text} {
    # tput is a little Unix utility that lets you use the termcap database
    # *much* more easily...
    return [exec tput setaf $foreground]$text[exec tput sgr0]
}

puts "Why not [color 4 G][color 1 o][color 3 o][color 4 g][color 2 l][color 1 e] first?"
# Hmm, that's clearer than using those escapes directly too!

如果这是第一个问题-您的终端就是不能着色-那么您就会被卡住,直到您更换终端。对不起,就这么简单。

这篇关于如何使用PUT in Tcl更改文本颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆