एएनएसआई रंग भागने के दृश्यों की सूची


224

अधिकांश टर्मिनलों पर \033ANSI एस्केप सीक्वेंस का उपयोग करके आउटपुट को कलर करना संभव है ।

मैं सभी समर्थित रंगों और विकल्पों (जैसे उज्ज्वल और निमिष) की सूची की तलाश कर रहा हूं।

जैसा कि संभवतः उनका समर्थन करने वाले टर्मिनलों के बीच मतभेद हैं, मैं मुख्य रूप से xterm- संगत टर्मिनलों द्वारा समर्थित दृश्यों में दिलचस्पी रखता हूं।


दरअसल, आप विंडो cmd में रंगों का उपयोग कर सकते हैं। stackoverflow.com/questions/41207496/…
जोएल

और MSDN से
Joel

जवाबों:


509

आपके द्वारा खोजे जा रहे एएनएसआई एस्केप सीक्वेंस ग्राफिक रेंडिशन सब्मिट चुनें। इन सभी का रूप है

\033[XXXm

जहां XXXअर्धविराम से अलग किए गए मापदंडों की एक श्रृंखला है।

कहने के लिए, टेक्स्ट को लाल, बोल्ड और रेखांकित करें (हम नीचे कई अन्य विकल्पों पर चर्चा करेंगे) सी में आप लिख सकते हैं:

printf("\033[31;1;4mHello\033[0m");

C ++ में आप उपयोग करेंगे

std::cout<<"\033[31;1;4mHello\033[0m";

Python3 में आप उपयोग करेंगे

print("\033[31;1;4mHello\033[0m")

और बैश में आप उपयोग करेंगे

echo -e "\033[31;1;4mHello\033[0m"

जहाँ पहला भाग पाठ को लाल बनाता है ( 31), बोल्ड ( 1), रेखांकित ( 4) और अंतिम भाग यह सब ( 0) साफ़ करता है ।

जैसा कि नीचे दी गई तालिका में बताया गया है, बड़ी संख्या में पाठ गुण हैं जिन्हें आप निर्धारित कर सकते हैं, जैसे बोल्डनेस, फॉन्ट, अंडरलाइनिंग, और सी। (क्या यह मूर्खतापूर्ण नहीं है कि स्टैकओवरफ़्लो आपको उत्तरों में उचित तालिकाओं को रखने की अनुमति नहीं देता है?)

फ़ॉन्ट प्रभाव

╔══════════╦════════════════════════════════╦═════════════════════════════════════════════════════════════════════════╗
║  Code    ║             Effect             ║                                   Note                                  ║
╠══════════╬════════════════════════════════╬═════════════════════════════════════════════════════════════════════════╣
║ 0        ║  Reset / Normal                ║  all attributes off                                                     ║
║ 1        ║  Bold or increased intensity   ║                                                                         ║
║ 2        ║  Faint (decreased intensity)   ║  Not widely supported.                                                  ║
║ 3        ║  Italic                        ║  Not widely supported. Sometimes treated as inverse.                    ║
║ 4        ║  Underline                     ║                                                                         ║
║ 5        ║  Slow Blink                    ║  less than 150 per minute                                               ║
║ 6        ║  Rapid Blink                   ║  MS-DOS ANSI.SYS; 150+ per minute; not widely supported                 ║
║ 7        ║  [[reverse video]]             ║  swap foreground and background colors                                  ║
║ 8        ║  Conceal                       ║  Not widely supported.                                                  ║
║ 9        ║  Crossed-out                   ║  Characters legible, but marked for deletion.  Not widely supported.    ║
║ 10       ║  Primary(default) font         ║                                                                         ║
║ 11–19    ║  Alternate font                ║  Select alternate font `n-10`                                           ║
║ 20       ║  Fraktur                       ║  hardly ever supported                                                  ║
║ 21       ║  Bold off or Double Underline  ║  Bold off not widely supported; double underline hardly ever supported. ║
║ 22       ║  Normal color or intensity     ║  Neither bold nor faint                                                 ║
║ 23       ║  Not italic, not Fraktur       ║                                                                         ║
║ 24       ║  Underline off                 ║  Not singly or doubly underlined                                        ║
║ 25       ║  Blink off                     ║                                                                         ║
║ 27       ║  Inverse off                   ║                                                                         ║
║ 28       ║  Reveal                        ║  conceal off                                                            ║
║ 29       ║  Not crossed out               ║                                                                         ║
║ 30–37    ║  Set foreground color          ║  See color table below                                                  ║
║ 38       ║  Set foreground color          ║  Next arguments are `5;<n>` or `2;<r>;<g>;<b>`, see below                       ║
║ 39       ║  Default foreground color      ║  implementation defined (according to standard)                         ║
║ 40–47    ║  Set background color          ║  See color table below                                                  ║
║ 48       ║  Set background color          ║  Next arguments are `5;<n>` or `2;<r>;<g>;<b>`, see below                       ║
║ 49       ║  Default background color      ║  implementation defined (according to standard)                         ║
║ 51       ║  Framed                        ║                                                                         ║
║ 52       ║  Encircled                     ║                                                                         ║
║ 53       ║  Overlined                     ║                                                                         ║
║ 54       ║  Not framed or encircled       ║                                                                         ║
║ 55       ║  Not overlined                 ║                                                                         ║
║ 60       ║  ideogram underline            ║  hardly ever supported                                                  ║
║ 61       ║  ideogram double underline     ║  hardly ever supported                                                  ║
║ 62       ║  ideogram overline             ║  hardly ever supported                                                  ║
║ 63       ║  ideogram double overline      ║  hardly ever supported                                                  ║
║ 64       ║  ideogram stress marking       ║  hardly ever supported                                                  ║
║ 65       ║  ideogram attributes off       ║  reset the effects of all of 60-64                                      ║
║ 90–97    ║  Set bright foreground color   ║  aixterm (not in standard)                                              ║
║ 100–107  ║  Set bright background color   ║  aixterm (not in standard)                                              ║
╚══════════╩════════════════════════════════╩═════════════════════════════════════════════════════════════════════════╝

2-बिट कलर्स

आपको यह पहले से ही मिल गया है!

4-बिट कलर्स

टर्मिनल रंगों को लागू करने वाले मानक सीमित (4-बिट) विकल्पों के साथ शुरू हुए। नीचे दी गई सारणी विभिन्न प्रकार के टर्मिनल एमुलेटर द्वारा उनके लिए उपयोग की जाने वाली पृष्ठभूमि और अग्रभूमि रंगों के RGB मानों को सूचीबद्ध करती है:

विभिन्न टर्मिनल एमुलेटर द्वारा कार्यान्वित ANSI रंगों की तालिका

उपरोक्त का उपयोग करके, आप एक हरे रंग की पृष्ठभूमि पर लाल पाठ बना सकते हैं (लेकिन क्यों?) का उपयोग कर:

\033[31;42m

11 रंग (एक अंतःक्षेपण)

उनकी पुस्तक "बेसिक कलर टर्म्स: इनकी यूनिवर्सलिटी एंड इवोल्यूशन" में, ब्रेंट बर्लिन और पॉल केय ने ग्यारह अलग-अलग मूल रंग श्रेणियों की पहचान करने के लिए भाषा परिवारों की एक श्रृंखला से एकत्र किए गए डेटा का इस्तेमाल किया: सफेद, काले, लाल, हरे, पीले, आदि। नीले, भूरे, बैंगनी, गुलाबी, नारंगी, और ग्रे।

बर्लिन और Kay ने पाया कि, अधिकतम ग्यारह रंग श्रेणियों से कम वाली भाषाओं में, रंग एक विशिष्ट विकासवादी पैटर्न का पालन करते हैं। यह पैटर्न इस प्रकार है:

  1. सभी भाषाओं में काले (शांत रंग) और सफेद (चमकीले रंग) शब्द हैं।
  2. यदि किसी भाषा में तीन शब्द हैं, तो उसमें लाल शब्द शामिल है।
  3. यदि किसी भाषा में चार शब्द होते हैं, तो इसमें हरे या पीले (लेकिन दोनों नहीं) के लिए एक शब्द होता है।
  4. यदि किसी भाषा में पाँच शब्द हैं, तो उसमें हरे और पीले दोनों के शब्द शामिल हैं।
  5. यदि किसी भाषा में छह शब्द होते हैं, तो उसमें नीले रंग के लिए एक शब्द होता है।
  6. यदि किसी भाषा में सात शब्द होते हैं, तो उसमें भूरे रंग के लिए एक शब्द होता है।
  7. यदि किसी भाषा में आठ या अधिक शब्द हैं, तो इसमें बैंगनी, गुलाबी, नारंगी या ग्रे शब्द शामिल हैं।

यही कारण है कि कहानी बियोवुल्फ़ में केवल काले, सफेद और लाल रंग शामिल हैं। यह भी हो सकता है कि बाइबल में रंग नीला न हो। होमर के ओडिसी में लगभग 200 बार काला और लगभग 100 बार सफेद होता है। लाल 15 बार दिखाई देता है, जबकि पीला और हरा केवल 10 बार दिखाई देता है। ( अधिक जानकारी यहाँ )

भाषाओं के बीच अंतर भी दिलचस्प हैं: अंग्रेजी बनाम चीनी द्वारा उपयोग किए जाने वाले अलग-अलग रंग के शब्दों की गहराई पर ध्यान दें। हालांकि, इन भाषाओं में गहराई से खुदाई से पता चलता है कि प्रत्येक अलग-अलग तरीकों से रंग का उपयोग करता है। ( अधिक जानकारी )

चीनी बनाम अंग्रेजी रंग के नाम।  छवि "muyueh.com" से अनुकूलित

सामान्यतया, मानव भाषाओं में रंगों का नामकरण, उपयोग और समूहन आकर्षक है। अब, शो पर वापस।

8-बिट (256) रंग

प्रौद्योगिकी उन्नत, और 256 पूर्व-चयनित रंगों की तालिकाएँ उपलब्ध हुईं, जैसा कि नीचे दिखाया गया है।

एएनएसआई से बचने के दृश्यों के लिए 256-बिट रंग मोड

इन उपरोक्त का उपयोग करके, आप गुलाबी पाठ को इस तरह बना सकते हैं

\033[38;5;206m     #That is, \033[38;5;<FG COLOR>m

और सुबह-सुबह नीली पृष्ठभूमि का उपयोग करें

\033[48;5;57m      #That is, \033[48;5;<BG COLOR>m

और, ज़ाहिर है, आप इन्हें जोड़ सकते हैं:

\033[38;5;206;48;5;57m

8-बिट रंगों को इस तरह व्यवस्थित किया जाता है:

0x00-0x07:  standard colors (same as the 4-bit colours)
0x08-0x0F:  high intensity colors
0x10-0xE7:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
0xE8-0xFF:  grayscale from black to white in 24 steps

सभी रंग

अब हम भविष्य में रह रहे हैं, और पूर्ण RGB स्पेक्ट्रम का उपयोग कर उपलब्ध है:

\033[38;2;<r>;<g>;<b>m     #Select RGB foreground color
\033[48;2;<r>;<g>;<b>m     #Select RGB background color

तो आप एक भूरे रंग की पृष्ठभूमि पर गुलाबी पाठ का उपयोग कर सकते हैं

\033[38;2;255;82;197;48;2;155;106;0mHello

"असली रंग" टर्मिनलों के लिए समर्थन यहां सूचीबद्ध है

उपरोक्त में से अधिकांश विकिपीडिया पृष्ठ " ANSI एस्केप कोड " से लिया गया है।

एक आसान स्क्रिप्ट अपने आप को याद दिलाने के लिए

चूंकि मैं अक्सर यह याद रखने की कोशिश करता हूं कि कौन से रंग क्या हैं, मेरे पास एक आसान स्क्रिप्ट है ~/bin/ansi_colours:

#!/usr/bin/python

print "\\033[XXm"

for i in range(30,37+1):
    print "\033[%dm%d\t\t\033[%dm%d" % (i,i,i+60,i+60);

print "\033[39m\\033[39m - Reset colour"
print "\\033[2K - Clear Line"
print "\\033[<L>;<C>H OR \\033[<L>;<C>f puts the cursor at line L and column C."
print "\\033[<N>A Move the cursor up N lines"
print "\\033[<N>B Move the cursor down N lines"
print "\\033[<N>C Move the cursor forward N columns"
print "\\033[<N>D Move the cursor backward N columns"
print "\\033[2J Clear the screen, move to (0,0)"
print "\\033[K Erase to end of line"
print "\\033[s Save cursor position"
print "\\033[u Restore cursor position"
print " "
print "\\033[4m  Underline on"
print "\\033[24m Underline off"
print "\\033[1m  Bold on"
print "\\033[21m Bold off"

यह प्रिंट करता है

सरल एएनएसआई रंग


4
ANSI एस्केप कोड का पूरा सेट: ascii-table.com/ansi-escape-fterences-vt-100.php
फॉर्मिक्सियन

3
@giusti: दोनों echo -e "\033[38;05;34;1mHi"और echo -e "\033[38;05;34m\033[1mHi"मेरे लिए काम किया, हालांकि एंटी-अलियासिंग फॉन्ट प्रभाव ने रंग की उपस्थिति को टर्मिनल I में इसे काटने के तहत थोड़ा बदल दिया।
रिचर्ड

4
\033[38 और 48 से शुरू होने वाले SGR ( ) कोड को उप-विभाजक के रूप में आरक्षित के साथ अलग किया जाना चाहिए,: हालांकि यह प्राथमिक स्रोतों से पूरी तरह से स्पष्ट नहीं है: ecma-international.org/publications/files/ECMA/STMA-Ecma -048 . पीडीएफ और itu.int/rec/… । इसके अलावा कुछ व्याख्याएं रंग अंतरिक्ष आईडी को 2(16M- रंग RGB) / 3(16M- रंग CMY) / 4(??? CMYK) रूपों में भूल जाती हैं - जैसे यह \033[38:2::255:255:255mएक व्हाइट 16M अग्रभूमि के लिए होना चाहिए और नहीं \033[38:2:255:255:255m!
स्लीव्स

2
इस बारे में जाने का कारण यह है कि एक प्रोजेक्ट मडलेट I कोड के लिए दोनों रूपों को संभालना होगा और मैंने हाल ही में इसे बेहतर बनाने के लिए अपनी कोहनी तक
उठाई

4
मैं बस एएनएसआई रंगों की एक सूची ढूंढना चाहता था और "मूल रंग शर्तों" पर लेख पढ़ने के साथ बहुत समय बिताया। महान व्याकुलता के लिए धन्यवाद! :)
mzuther

14

कैसा रहेगा:

ECMA-48 - कोडेड कैरेक्टर सेट के लिए नियंत्रण कार्य, 5 वां संस्करण (जून 1991) - रंग नियंत्रण कोड को परिभाषित करने वाला एक मानक, जो जाहिरा तौर पर xterm द्वारा भी समर्थित है।

SGR 38 और 48 मूल रूप से ECMA-48 द्वारा आरक्षित थे, लेकिन कुछ साल बाद एक संयुक्त ITU, IEC, और ISO मानक में निकाल दिया गया, जो कई हिस्सों में आता है और जो (अन्य कई चीजों के अलावा) SGR दस्तावेजों प्रत्यक्ष रंग और अनुक्रमित रंग के लिए 38/48 नियंत्रण अनुक्रम :

ANSI एस्केप कोड के लिए विकिपीडिया पृष्ठ पर इस तालिका में xterm के लिए एक कॉलम है



4

यह आपके टर्मिनल से बिल्कुल संबंधित है। VTE झपकी का समर्थन नहीं करता है, तो आप का उपयोग करते हैं gnome-terminal, tilda, guake, terminator, xfce4-terminalऔर इतने VTE के अनुसार पर, आप झपकी नहीं होगा।
यदि आप VTE पर ब्लिंक का उपयोग या उपयोग करना चाहते हैं, तो आपको उपयोग करना होगा xterm
आप टर्मिनल नाम के साथ infocmp कमांड का उपयोग कर सकते हैं:

#infocmp vt100 
#infocmp xterm 
#infocmp vte 

उदाहरण के लिए :

# infocmp vte
#   Reconstructed via infocmp from file: /usr/share/terminfo/v/vte
vte|VTE aka GNOME Terminal,
    am, bce, mir, msgr, xenl,
    colors#8, cols#80, it#8, lines#24, ncv#16, pairs#64,
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
    bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
    cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
    cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
    cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
    dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
    el=\E[K, enacs=\E)0, home=\E[H, hpa=\E[%i%p1%dG, ht=^I,
    hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
    is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
    kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
    kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
    kb2=\E[E, kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
    kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kf1=\EOP,
    kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P,
    kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
    kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
    kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
    kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R,
    kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~,
    kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
    kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~,
    kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, kf4=\EOS,
    kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
    kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
    kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
    kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
    kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
    kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
    kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
    kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
    kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khome=\EOH,
    kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
    kpp=\E[5~, kri=\E[1;2A, kslt=\E[4~, meml=\El, memu=\Em,
    op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m,
    rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
    rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, rs1=\Ec,
    rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
    sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
    sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
    sgr0=\E[0m\017, sitm=\E[3m, smacs=^N, smam=\E[?7h,
    smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
    smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
    u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,

VTE 0.52 / सूक्ति-टर्मिनल 3.28 निमिष पाठ के लिए समर्थन जोड़ता है (और इसलिए यह अन्य VTE- आधारित एमुलेटर में भी काम करेगा)।
इग्‍मोंट

1

इन लोगों के लिए जिन्हें उल्लिखित भाषाओं के अलावा अन्य उचित परिणाम नहीं मिलते हैं, अगर आप C # का उपयोग कंसोल (टर्मिनल) विंडो में एक टेक्स्ट प्रिंट करने के लिए कर रहे हैं, तो आपको "\" 033 को "\ " 1b "से बदलना चाहिए । विजुअल बेसिक में यह Chrw (27) होगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.