如何使用PUT in Tcl更改文本颜色 [英] How to change color text using puts in tcl
本文介绍了如何使用PUT in Tcl更改文本颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过使用Tcl中的PUT命令来更改控制台中显示的文本颜色,以简化调试。我看到很多文章都是关于tk的,但不是tcl。仅供参考,我正在Windows 7上使用Active Tcl。
我已经尝试了其他人提供的以下代码(http://www.tek-tips.com/viewthread.cfm?qid=1283356),但是没有成功:
puts "Why not 33[34mG 33[31mo 33[33mo 33[34mg 33[32ml 33[31me 33[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屋!
查看全文