Quando è appropriato usare il colore in un'applicazione della riga di comando?

14

Attualmente ho un'applicazione della riga di comando in C denominata btcwatch . Ha un'opzione -C che può ricevere come argomento che confronta il prezzo corrente di Bitcoin con un prezzo che è stato precedentemente memorizzato con -S . L'output di esempio con questa opzione è:

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

Il dilemma è se utilizzare il colore per UP o DOWN stringa (verde e rosso, rispettivamente). La maggior parte delle applicazioni a linea di comando che conosco (a parte git) si tengono lontane dal colore nella loro produzione. Nel mio desiderio di btcwatch di apparire ed essere abbastanza "standard" (uso di getopt , Makefile, ecc.), Non sono sicuro che il colore risulterebbe fuori posto in questa situazione.

    
posta Marco Scannadinari 01.11.2013 - 19:39
fonte

3 risposte

21

La cosa appropriata da fare è rendere la colorazione opzionale, predefinita su "off" e controllarla tramite un flag della riga di comando. In questo modo, le persone a cui non piace o il cui terminale non lo supporta non sono interessate, le persone a cui piace possono usarlo e le persone che amano davvero possono definire un alias o una scorciatoia per predefinire l'opzione. Tutti sono felici.

    
risposta data 01.11.2013 - 19:43
fonte
9

Ritengo opportuno utilizzare il colore quando:

  • Ci sono "gruppi" di elementi e gruppi di colori aiuteranno a raggruppare visivamente gli elementi.

  • Ci sono set (s) di campi "label: value" e vuoi che le etichette (o i valori) risaltino.

  • Ci sono elementi che potrebbero trarre vantaggio dall'essere visualizzati in rosso / verde, ad es. stop / go, buono / cattivo, ecc.

  • La maggior parte delle informazioni è di sfondo, ma un elemento chiave dovrebbe risaltare.

risposta data 01.11.2013 - 22:35
fonte
5

Un altro fattore importante da considerare è che la colorazione, a seconda della piattaforma, può aggiungere sequenze di escape del personaggio. Per le build su queste piattaforme, se la modalità corrente / predefinita è quella di produrre il colore, è consuetudine rilevare se l'output del programma è un PIPE e il colore di stripping, se questo è il caso.

In questo modo le sequenze di escape dei colori non eliminano i programmi downstream che ne leggono l'output.

    
risposta data 02.11.2013 - 04:32
fonte

Leggi altre domande sui tag