Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
grc (который, как и всякий комбайн, заведомо проигрывает vimdiff+tig для гита, ну и так далее) — тоже пугает вырвиглазностью.Ну и PS1, конечно, переписан с нуля.
%F{blue}…%f/%K{blue}…%k (только первые 16, остальные имеют число вместо имени) (Foreground, bacKground), %B…%b для жирного, %U…%u — подчеркнутого и %S…%s — инверсного (похоже zsh не предоставляет возможности сделать текст наклонным с помощью %{char}. Не представляет проблемы, так как konsole и xterm всё равно это не поддерживают, только urxvt).zsh. Чисто смеха ради, могу сказать, что цветной промпт, который я держу в гите вместе с другими настройками иногда выкатывается на чужие машины. Где, сюрприз, иногда бывают другие шеллы. Да и коллеги мои не всегда хотят на него переходить. Странно, правда, заставлять человека для чтения логов накатить другой шелл?%F, чтобы получить бирюзовый на алом. А моему скрипту все равно, что генерировать.if не угодил-то? Framebuffer вам скажет «linux» на «echo $TERM». %F написать.run_with_log | grep ERROR.#include <stdio.h>
#include <unistd.h>
#define RED "\033[1;32;41m"
#define GREEN "\033[5;30;42m"
#define OLDCOLOR "\033[0;0;0m"
main(){
if(isatty(STDOUT_FILENO)) printf(RED "This is a TTY! " GREEN "Output may be colorized!" OLDCOLOR "\n");
else printf("This is pipe, no colors!\n");
}

#define RED "\033[1;31;40m"
#define GREEN "\033[1;32;40m"
#define OLDCOLOR "\033[0;0;0m"
int (*red)(const char *fmt, ...);
int (*green)(const char *fmt, ...);
int r_pr_(const char *fmt, ...){
va_list ar; int i;
printf(RED);
va_start(ar, fmt);
i = vprintf(fmt, ar);
va_end(ar);
printf(OLDCOLOR "\n");
return i;
}
int g_pr_(const char *fmt, ...){
va_list ar; int i;
printf(GREEN);
va_start(ar, fmt);
i = vprintf(fmt, ar);
va_end(ar);
printf(OLDCOLOR "\n");
return i;
}
int main(int argc, char *argv[]){
if(isatty(STDOUT_FILENO)){ // make color output in tty
red = r_pr_; green = g_pr_;
}else{ // no colors in case of pipe
red = printf; green = printf;
}
…
red("Красный текст\n");
…
green("Зеленый текст\n");
}
import sys
RED = "\033[1;32;41m"
GREEN = "\033[5;30;42m"
OLDCOLOR = "\033[0;0;0m"
if sys.stdout.isatty():
print("".join([
RED,
"This is a TTY! ",
GREEN,
"Output may be colorized!",
OLDCOLOR
]))
else:
print("This is pipe, no colors!")
sed -e '/\e[.*m//g'
seq 30 37, что тоже не особо радует.sudo apt-get install ncurses-term». #!/bin/bash
TERM="xterm-256color"
COLRS="$(seq 1 8 256)"
for A in 1 2 4 5 7 8 9
do
echo -e "\033[0m\n\n Свойство $A:\n"
for B in $COLRS
do
echo -e "\nЦвет $B\c"
for C in $COLRS
do
echo -e "\033[$A;38;05;$B;48;05;$C""m Фон $C\t\c"
done
echo -e "\033[0m\c"
done
done
echo -e "\033[0m\n\n"
echo -e "`tput bold; tput smul; tput setaf 196; tput setab 232`bold-underline-red-on-black"man terminfo$ export MY_CLR=$'\e[01;38;05;108;48;05;17m'
$ echo "${MY_CLR}Hello"
zsh и все тестировалось там же. У вас, судя по всему, что-то с TERM в zsh не алё.
export MY_CLR=$'ONE'
echo "${MY_CLR}"
echo -e "${MY_CLR}Hello"macbook-011:~$ zsh
macbook-011% echo $TERM
xterm-color
macbook-011% export A='\033[01;38;05;108;48;05;17m'
macbook-011% echo -e "${A}Hello"
Hello
macbook-011%

не 256color, может в этом причина
export TERM=xterm-256color
$ bash
macbook-011:~$ echo $TERM
xterm-color
macbook-011:~$ export A="\033[01;38;05;108;48;05;17m"
macbook-011:~$ echo -e "${A}Hello"
Hello
macbook-011:~$ export A="\e[01;38;05;108;48;05;17m"
macbook-011:~$ echo -e "${A}Hello"
\e[01;38;05;108;48;05;17mHello
macbook-011:~$ export TERM=xterm-256color
macbook-011:~$ echo $TERM
xterm-256color
macbook-011:~$ export A="\033[01;38;05;108;48;05;17m"
macbook-011:~$ echo -e "${A}Hello"
Hello
macbook-011:~$ export A="\e[01;38;05;108;48;05;17m"
macbook-011:~$ echo -e "${A}Hello"
\e[01;38;05;108;48;05;17mHello
$ zsh
macbook-011% echo $TERM
xterm-color
macbook-011% export A="\033[01;38;05;108;48;05;17m"
macbook-011% echo -e "${A}Hello"
Hello
macbook-011% export A="\e[01;38;05;108;48;05;17m"
macbook-011% echo -e "${A}Hello"
Hello
macbook-011% export TERM=xterm-256color
zsh: can`t find terminal definition for xterm-256color
macbook-011% echo $TERM
xterm-256color
macbook-011% export A="\033[01;38;05;108;48;05;17m"
macbook-011% echo -e "${A}Hello"
Hello
macbook-011% export A="\e[01;38;05;108;48;05;17m"
macbook-011% echo -e "${A}Hello"
Hello
$ export MY_CLR='\033[01;38;05;108;48;05;17m'
$ echo "${MY_CLR}Hello"
There is a predefined 256 color space compatible with his
xterm sister, and, even beyond that, a 3-byte RGB color space.
The ESC codes are as follows
256 цветов в терминале ⇒ уровень nightmare