什么时候在命令行应用程序中使用颜色合适?


14

目前,我在C中一个名为的命令行应用程序btcwatch。它具有一个-C可以作为参数接收的选项,该选项将比特币的当前价格与预先存储的价格进行比较。-S。使用此选项的示例输出是:

$ btcwatch -vC  # -v = verbose
buy: UP $ 32.000000 USD (100.000000 -> 132.000000)
sell: UP $ 16.000000 USD (100.000000 -> 116.000000)

难题是是否要为UPDOWN字符串使用颜色(分别为绿色和红色)。我知道的大多数命令行应用程序(除git之外)在输出中都远离颜色。在我希望btcwatch外观和相当“标准”(使用getopt,Makefiles等)的愿望中,我不确定在这种情况下颜色是否看起来不合适。


git输出有颜色吗?我是否还没有遇到执行该命令的特定命令?
2013年

下面的绝佳答案。但是请始终记住关于颜色的问题,用户的重要部分将无法区分红色和绿色之间的差异。
Ross Patterson

Izkata: git diffgit pull等等
马可Scannadinari


@marcoms那些没有颜色输出给我。不过,我没有做任何特殊的配置来启用它。
2013年

Answers:


21

适当的做法是使颜色可选,默认为“关闭”并通过命令行标志进行控制。这样,不喜欢它或终端不支持它的人就不会受到影响,喜欢它的人可以使用它,而真正喜欢它的人可以定义别名或快捷方式来预定义该选项。大家都开心


5
这是的功能lsls --color需要启用该选项)。

@MichaelT:真的吗?我想这取决于您使用的分布。输出(几乎)总是具有颜色,我从不指定--color
FrustratedWithFormsDesigner 2013年

1
@FrustratedWithFormsDesigner BSD风格。 /bin/ls/bin/ls -G纯色的,是彩色的(尽管如果您在环境中定义了CLICOLOR,则该选项将作为默认启用)。在gnu影响的分布中,人们看到了--color它及其相关的环境变量。

1
对于“是否必须使用颜色是个好主意”,对于“何时才是合适的颜色”要
好得多

3
@FrustratedWithFormsDesigner例如,在ubuntu alias ls='ls --color=auto'上是默认设置.bashrc(或者,如果不再使用,它​​会在8.04左右的时间里花上一年的时间,而我只是将.bashrc
放在

9

我认为在以下情况下使用颜色是合适的:

  • 有项目的“组”,颜色组将有助于在视觉上对项目进行分组。

  • 有“标签:值”字段的集合,并且您希望标签(或值)突出。

  • 有一些项目会因以红色/绿色显示而受益,例如停止/执行,良好/不良等。

  • 大多数信息是背景信息,但其中一项关键信息应突出。


5

要考虑的另一个主要因素是,根据平台的不同,颜色可以添加字符转义序列。对于在这些平台上的版本,如果当前/默认模式是输出颜色,则习惯上是检测程序输出是否是PIPE并在这种情况下剥离颜色。

这样一来,颜色转义序列就不会抛出读取其输出的下游程序。


好点,我想实施--colour(或--no-colour)选项将对此类程序更友好
Marco Scannadinari
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.