如何使用tcl中的puts更改文本颜色

2024-02-28

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

我尝试过其他人提供的以下代码(http://www.tek-tips.com/viewthread.cfm?qid=1283356 http://www.tek-tips.com/viewthread.cfm?qid=1283356)但徒劳:puts "Why not \033\[34mG\033\[31mo\033\[33mo\033\[34mg\033\[32ml\033\[31me\033\[0m first ?"

请建议。


您引用的代码适用于我(OSX、Terminal.app;Tcl 8.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!

如果这是第一个问题——你的终端无法显示颜色——那么你就会陷入困境,直到你更换终端。抱歉,事情确实就是这么简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用tcl中的puts更改文本颜色 的相关文章

  • 在 TCL 中使用多个参数启动程序 (vcom) 时出现问题

    我正在尝试使用额外选项从 TCL 脚本启动程序 vcom set compilationArgs quiet 93 vcom compilationArgs work work polar2rect sc corproc vhd 但是当我运
  • 当从 tcl 调用 rpmbuild 时,为什么 topdir 设置为其默认值?

    我有一个 执行 rpmbuild 的 tcl 脚本 这样做时 rpmbuild 使用的 topdir 是错误的 我的主目录中有一个 rpmmacros 文件 如果我手动调用 rpmbuild 它工作正常 即 topdir 不是默认的 我添加
  • 了解分发冻结的 Python Tkinter 应用程序需要 TCL 中的哪些文件

    我试图找出 Python Python 2 6 Python 2 7 tcl 文件夹中的哪些文件是必需的 以便使用 Py2exe 或类似工具分发冻结的 Python Tkinter 应用程序 快速而肮脏的方法 使用 pyexe 作为示例 是
  • 如何在Tcl中安装软件包?

    我正在尝试安装critlib在我的机器上 http equi4 com critlib http equi4 com critlib 这样我就可以在 Tcl 中动态创建 zip 文件 问题是我不知道如何安装 Tcl 软件包 您是否有放置文件
  • tcl lsearch 在列表列表中

    Tcl中有一个list列表 set somelist aaa 1 bbb 2 ccc 1 如何搜索列表中第一项是 bbb 的元素 我尝试了这种方法 但它不起作用 lsearch somelist bbb Thanks Use index 它
  • Tcl 扩展:扩展的 ClientData 的生命周期

    重要的本机扩展将需要每个解释器的数据 动态分配的结构 我目前正在使用Tcl SetAssocData 有一个对应的密钥 扩展名和适当的删除例程 以防止此内存泄漏 然而 Tcl PkgProvideEx 也允许记录这样的 信息 该信息可以通过
  • TCL - 按任意数量的空格将字符串拆分为列表

    假设我有一个像这样的字符串 set str AAA B C DFG 142 56 现在我想得到一个列表 如下所示 AAA B C DFG 142 56 为此 我想使用 split 函数 但在这种情况下我会得到一些额外的空列表 我怎样才能得到
  • 生成和执行之间有什么区别?

    我正在学习编写 TCL 期望 脚本 我注意到一些示例显示了如何使用 spawn 而其他示例则显示了命令 exec 我尝试谷歌搜索 但找不到有什么区别 假设我在一个很长的期望脚本中间调用 exec 我会期望发生什么 spawn is an e
  • TCL 的通用字符串引用

    我正在编写一个实用程序 恰好是在 python 中 它以 TCL 脚本的形式生成输出 给定 python 中的一些任意字符串变量 不是 unicode 我想生成一个 TCL 行 例如 set s something 这将设置 TCL 变量
  • 我可以从 Tcl 中的文件句柄中找到文件名吗?

    如同我可以从 Perl 中的文件句柄中找到文件名吗 https stackoverflow com questions 2813092 can i find a filename from a filehandle in perl但在 Tc
  • 从 PDF 中搜索文本的脚本

    Problem 在 Mac OS X 平台上 我想用 Python 或 Tcl 编写一个脚本来搜索 PDF 文件中的文本并提取相关部分 我很感激任何帮助 背景 我正在编写脚本来查看 PDF 中的内容 以确定它是否是账单 来自哪家公司以及持续
  • 解析 tcl 中的文本文件并创建键值对字典,其中值采用列表格式

    如何分离以下文本文件并仅保留相应的所需数据 例如文本文件的格式 Name Roll number Subject Experiment name Marks Result Joy 23 Science Exp related to magn
  • 从另一个应用程序通过 Rscript 启动后,如何将 R Tk 窗口置于前面?

    我有一个脚本 大致如下 if require tcltk2 install packages tcltk2 repos http cran us r project org require tcltk2 base lt NULL done
  • 执行 tail -F 直到匹配模式

    我想做一个tail F在文件上直到匹配模式 我找到了一种使用方法awk 但恕我直言 我的命令并不是很干净 问题是我need由于某些限制 只能用一行来完成 tail n 0 F tmp foo awk W interactive if 1 E
  • 如何让proc更有效?

    有一个顶点集合 x1 y1 x2 y2 xn yn 我想改变这些坐标的中心 所以我尝试 proc changeCenter vertices X Y set myList list foreach element vertices lapp
  • 正则表达式文字-文本范围

    有什么方法可以向正则表达式指示要显式搜索的文本块吗 我问这个问题是因为我必须匹配一段非常非常长的文本 其中包含各种元字符 并且 并且必须完全匹配 然后是一些灵活的内容 足以值得使用正则表达式 然后是更多文本必须完全匹配 冲洗 重复 不用说
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • TCL 中的 if 语句

    我对以下代码的 tcl 中的 if 语句有疑问 if number 1 name hello number 0 name yes do something here 上面的代码是有效的 但是如果我这样写 if number 1 name h
  • 带 Expect 的 Telnet 自动化:身份验证速度慢?

    我正在使用 Telnet 向 Mikrotik 路由器发送命令 telnet 192 168 100 100 l admin Password pass1234 admin ZYMMA gt interface pppoe server r
  • TCL类C10K事件服务器开发进展如何?

    TCL 是一种很好的简单编程语言 但似乎没有得到认可和 或尊重它deserves http antirez com articoli tclmisunderstood html 我 1995 年在大学时就学过它 但很快就忘记了 直到最近才再

随机推荐