Где я живу, наверное, половина или больше "черные", люди на самом деле африканских иммигрантов, и "афро-американцы" труднее найти. Вы не можете отличить визуально, конечно. Но когда они говорят на языке, который не английский, это довольно очевидно. Но даже если и так, если вы делаете предположение в любом случае, без доказательств, что вы ошибаетесь. @gaganbm да, это *не* звук очень плохой. Но как незнакомого человека в Интернете, я не готов судить окончательно. Вы находитесь в гораздо лучшем положении, чтобы судить, чем мы. Я предлагаю вам связаться с ним и посмотрим, что он скажет. Если он не использовал свои нетривиальные идеи, то да, это *абсолютно* это плагиат. Для крамбл с фаршированных фруктами, вам просто нужно, чтобы приготовить топпинг. Если фрукты перевариваются по времени долива-это хорошо подрумянится, можно попробовать увеличить температуру и сократить время. (Не то, да, предготовят меньше.)

Нет, замыканий являются слишком сложными для ЗШ. ЗШ предназначена для интерпретации небольшие скрипты, которые не далеко ушли от прямого взаимодействия. Он не имеет необычные особенности языка, которые являются очень полезными для программирования в большом, но меньше так для мелких задач, что снаряды обычно используются для.

Обратите внимание, что если в какой-то форме закрытия, что позволило значений переменных должны быть предварительно вычислены раз и навсегда и затем хранится, значения не обновляются, когда что-то меняется, что вызывает к становятся недействительными.

$git_info и производных переменных может измениться в любой момент из-за изменений в файл в Git или Git-репозитория. Поэтому они должны быть в любом случае пересчитывается каждый раз.

Вы могли бы кэшировать значения чвд и who_where в глобальной переменной, так как они не меняются при нормальной работе. ухо меняется, когда действующий каталог изменения, так что должны быть обновлены с chpwd. Однако, эти переменные очень быстро вычислить, поэтому нет смысла беспокоить. Дорогие вычислений здесь работает git_prompt_info, и что может измениться в любой момент.

Когда вы показываете информацией между каждой команды, это может быть лучшей идеей, чтобы положить его в качестве части строки (ПС1 или psvar массив). ЗШ знает, что он должен отобразить подсказку в различных обстоятельствах, в то время как он ничего не знает о том, что вы печатаете от precmd.