V minulých dílech jsme si ukázali, jak správně vybírat názvy, jak správně psát funkce, metody, ale také celé objekty. Také jsme si pověděli, že nebudeme psát komentáře, a pokud ano, tak pouze výjimečně a hlavně správné, přínosné komentáře. Dnes si ukážeme, k čemu a jak dokáže pomoci hezké formátování kódu.
V minulém díle tohoto miniseriálu jsme se seznámili se základní teorií a prakticky jsme si ukázali, jak vytvářet různé názvy (promenných, funkcí, tříd atd.) či jaké psát funkce. Dnes, jak jsme si minule v závěru slíbili, si povíme o psaní objektů (tříd), komentářů a o tom, jak vlastně kód formátovat.
Určitě jste si všimli, pokud jste správný Linuxák, že Bash může mít výstupy také pěkně obarvené a poté se ve výstupu lépe orientuje. Takovou funkci například zvládá příkaz ls. Je to suprová věc a samozřejmě ji zvládá více programů. Ty naše to ale neumějí, jaká to škoda. Přitom to lze udělat více méně jednoduše. Ke všemu stačí využívat escape sekvence.
Taková escape sekvence vypadá nějak takto: '033[%i;%i;%im', kde %i nahradíme čísly. První číslo nastavuje, řekněmě, styl. Nejdůležitější jsou čísla od nuly do dvojky, tj. normální, světlý a tmavý. Další styly jsou podtržené nebo blikání. Podtržené klidně ještě můžete využít, ale na to blikání se vy*kaslete. :) Blikání je ošklivý, vadí to, není to přínosný a navíc ve spoustě terminálech ani nefunguje - zato konzole blikat stále dokáže.
Další číslo nastavuje barvu písma a poslední, třetí, číslo nastavuje barvu pozadí. Tyto čísla však nemusíme psát v tomto pořadí a můžeme je proházet a nic se nestane. Lepší je ale nechat v tom nějaký řád. Dokonce můžete napsat jen ty čísla, které potřebujete změnit a ostatní vynechat. Pojďme se podívat na různé barvy.
Barvy písma (první číslo je styl, druhý upřesňuje barvu):
0;30 black
0;31 red
0;32 green
0;33 brown
0;34 blue
0;35 purple
0;36 cyan
0;37 light gray
1;30 dark gray
1;31 light red
1;32 light green
1;33 yellow
1;34 light blue
1;35 light purple
1;36 light cyan
1;37 white
2;30 dark black
2;31 dark red
2;32 dark green
2;33 gold
2;34 dark blue
2;35 dark purple
2;36 dark cyan
2;37 gray
Barvy pozadí (u pozadí nelze změnit styl):
40 black
41 red
42 green
43 brown
44 blue
45 purple
46 cyan
47 gray
Například žluté písmo na modrém pozadí nastavíte takto:
\033[1;33;44mAHOJ!\033[0m
Takovýto řetězec si vložte do Vašeho programu a je to! :) Je jasné, že se takovýto zápis nemusí líbit a stejně tak se nelíbí mě a proto si vytvářím na to jeden super objekt (v Pythonu). Potom s mým objektem bude stačit takovýto zápis:
print ColoredText( "AHOJ!" ).setColor( "yellow" ).setBackground( "blue" )
Hezké, že? :) Barvy můžete vužít kdekoliv. Například můžete také upravit výzvu k zadání příkazu. Pro tyto uprávy ale musíte ještě přidat další znaky a to \[ pro začátek escape sekvence a \] pro uzavření escape sekvence. Zkuste takovýto příkaz:
PS1="\u@\h \[\033[01;33m\]\w\[\033[00m\] \$ "
Tento příkaz Vám změní výzvu (PS1) na "jméno@stroj adresarZlute $ ". Změna se týká pouze tohoto terminálu a po zavření to už nikde nenajdete. Pokud byste chtěli tuto změni mít všude, budete muset příkaz vložit například do souboru ~/.bashrc. Možnosti, které můžete do PS nastavit:
\u – jméno uživatele
\! – číslo příkazu v historii
\# – číslo příkazu v tomto terminálu
\H – jméno počítače
\h – část jména počítače
\n – nový řádek
\w – jméno aktuálního adresáře s cestou
\W – jméno aktuálního adresáře
\d – datum ve TT MMM DD
\l – číslo konzole
\s – jméno příkazového interpretu
\t – 24 hodinový čas HH:MM:SS
\T – 12-ti hodinový čas HH:MM:SS
\A 24 hodinový čas HH:MM
\@ 12-ti hodinový čas HH:MM
\v – verze Bashe
\V – verze Bashe a patch level
Hrajte si.. :)