Khi nào thì thích hợp để sử dụng màu trong ứng dụng dòng lệnh?


14

Hiện tại tôi có một ứng dụng dòng lệnh trong C được gọi btcwatch. Nó có một -Ctùy chọn mà nó có thể nhận được như một đối số so sánh giá Bitcoin hiện tại với giá được lưu trữ trước đó -S. Ví dụ đầu ra với tùy chọn này là:

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

Vấn đề nan giải là liệu sử dụng màu cho chuỗi UPhay DOWN(tương ứng màu xanh lá cây và màu đỏ). Hầu hết các ứng dụng dòng lệnh mà tôi biết (ngoài git) đều tránh xa màu sắc trong đầu ra của chúng. Với mong muốn của tôi btcwatchlà trông và khá "chuẩn" (sử dụng getopt, Makefiles, v.v.), tôi không chắc liệu màu sắc có bị lạc chỗ trong tình huống này hay không.


git có màu trong đầu ra của nó? Có phải tôi chưa chạy qua các lệnh cụ thể để làm điều đó?
Izkata

Câu trả lời tuyệt vời dưới đây. Nhưng hãy luôn nhớ về việc tô màu rằng một phần không tầm thường trong người dùng của bạn sẽ không thể phân biệt được sự khác biệt giữa màu đỏ và màu xanh lá cây.
Ross Patterson

Izkata: git diff,, git pullv.v.
Marco Scannadinari


@marcoms Những người không có đầu ra màu cho tôi. Tôi đã thực hiện không có cấu hình đặc biệt để kích hoạt nó, mặc dù.
Izkata

Câu trả lời:


21

Điều thích hợp để làm là tạo màu tùy chọn, mặc định là "tắt" và điều khiển nó thông qua cờ dòng lệnh. Theo cách đó, những người không thích nó hoặc thiết bị đầu cuối của họ không hỗ trợ nó không bị ảnh hưởng, những người thích nó có thể sử dụng nó và những người thực sự, thực sự thích nó có thể định nghĩa bí danh hoặc phím tắt để xác định trước tùy chọn. Mọi người đều hạnh phúc.


5
Đây là chức năng của ls( ls --colortùy chọn được yêu cầu để bật nó).

@MichaelT: Thật sao? Tôi đoán nó phụ thuộc vào phân phối bạn sử dụng. Đầu ra (hầu như) luôn có màu và tôi không bao giờ chỉ định --color.
Thất vọngWithFormsDesigner

1
@FrustratedWithFormsDesigner Hương vị BSD. /bin/lslà đơn giản, /bin/ls -Gđược tô màu (mặc dù nếu bạn có CLICOLOR được xác định trong môi trường, tùy chọn đó hoạt động như mặc định trên). Trong các phân phối ảnh hưởng gnu , người ta thấy --colorvà các biến môi trường liên quan của nó.

1
Câu trả lời tuyệt vời cho "Màu sắc có nên bắt buộc hay không", ít hơn cho "khi nào thì phù hợp" :)
Michael Durrant

3
@FrustratedWithFormsDesigner Chẳng hạn, trên Ubuntu, alias ls='ls --color=auto'mặc định .bashrc(hoặc nếu không còn nữa, nó đã thực hiện ở đâu đó khoảng 8.04 hoặc mất một năm và tôi đã mang .bashrc của mình qua các cài đặt)
Izkata

9

Tôi sẽ xem xét nó phù hợp để sử dụng màu sắc khi:

  • Có 'nhóm' vật phẩm và nhóm màu sẽ giúp nhóm trực quan vật phẩm.

  • Có các (các) trường 'nhãn: value' và bạn muốn các nhãn (hoặc giá trị) nổi bật.

  • Có những mục sẽ được hưởng lợi từ việc hiển thị màu đỏ / xanh lá cây, ví dụ như dừng / đi, tốt / xấu, v.v.

  • Hầu hết các thông tin là nền tảng nhưng một mục quan trọng nên nổi bật.


5

Một yếu tố chính khác cần xem xét là việc tô màu, tùy thuộc vào nền tảng, có thể thêm các chuỗi thoát nhân vật. Đối với các bản dựng trên các nền tảng đó, Nếu chế độ hiện tại / mặc định là màu đầu ra, thì thông thường sẽ phát hiện xem đầu ra của chương trình có phải là PIPE hay không và nếu tước màu.

Điều này là để các chuỗi thoát màu không loại bỏ các chương trình xuôi dòng đọc đầu ra của nó.


điểm tốt, tôi cho rằng việc thực hiện một tùy chọn --colour(hoặc --no-colour) sẽ thân thiện hơn với các chương trình như vậy
Marco Scannadinari
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.