1

Я хотел бы отформатировать вывод Zsh.

например, для не найденных функций у меня теперь есть:

function command_not_found_handler(){echo $fg[red]"\033[4m???\033[0m"$fg[red]" Command \"$1\" not found."}

который возвращает красный текст и подчеркнутый ??? ,

Я сделал это для command_not_found_handler и хотел бы применить ту же логику к другим выводам ошибок, например:

zsh: bad pattern: echo[

а также

zsh: correct 'ehco' to 'echo' [nyae]?

пока я не могу найти имена правильных обработчиков. Они вообще существуют как обработчики? Если нет, то есть ли более общий подход к изменению вывода предупреждения / ошибки / информации в zsh?

Было бы неплохо использовать более общий подход, чтобы ошибки других программ также имели тот же формат. например

cd: no such file or directory: no/dir

возможно изменить стандартный вывод ошибок (я не знаю, имеет ли это смысл, я очень устал ...)

1 ответ1

1

Хорошо, я узнал сам.

Использование С сценария здесь, и изменяя его немного, я получил то , что мне было нужно.

Модификация, которая приняла участие, заключалась в следующем: потому что я хотел подчеркнуть подчеркнутое ??? перед каждой ошибкой я менял цикл в строке 107 для печати ??? перед циклом остальной части ошибки. Это было так:

 if (buffer[0] == 27)
     dontcol = 1;
 if (buffer[0] == '\n')
     dontcol = 0;
 if (!dontcol)
     fputs(begstr, stdout);
     fputs("\0033[4m??? \033[0m", stdout);     
     putchar(buffer[0]);
 if (!dontcol)
     fputs(endstr, stdout);
for (i = 1; i < n; i++)
{
              if (buffer[i] == 27)
                dontcol = 1;
              if (buffer[i] == '\n')
                dontcol = 0;
              if (!dontcol)
                fputs(begstr, stdout);
              putchar(buffer[i]);
              if (!dontcol)
                fputs(endstr, stdout);
} 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .