Відповіді:
Ось приклад того, як встановити червоний рядок:
PS1=$'\e[0;31m$ \e[0m'
Магія - це \e[0;31m
(повернути на червоний передній план) і\e[0m
(вимкніть атрибути символів). Вони називаються послідовностями втечі. Різні послідовності евакуації дають різні результати - від абсолютного розміщення курсору, до кольору, до можливості зміни рядка заголовка вашого вікна тощо.
Докладніше про послідовності втечі див. У статті вікіпедії щодо кодів аварійних відбітків ANSI
Помістіть це ~/.zshrc
:
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
Підтримувані Кольори:
red
, blue
, green
, cyan
, yellow
, magenta
, black
, і white
(з цієї відповіді ) хоча різні комп'ютери можуть мати різні допустимі варіанти.
Коди кольорів для оточення (та будь-які інші символи, що не друкуються) з %{....%}
. Це для того, щоб обгортання тексту працювало правильно.
Крім того, ось, як ви можете змусити це працювати з обрізкою каталогів звідси .
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "
zsh: colors: function definition file not found
%{...%}
означає, що вміст буде інтерпретуватися як буквальна послідовність виходу, тому курсор не буде рухатися під час друку послідовності. Якщо ви цього не використовуєте, кольорові коди можуть насправді переміщувати курсор і створювати небажані ефекти. Про це задокументовано у Visual Effects
розділі на сторінці чоловіка zshmisc
Zsh поставляється з кольоровими підказками вбудованими. Спробуйте
autoload -U promptinit && promptinit
а потім prompt -l
перераховує доступні підказки, -p fire
попередньо попереджає підказку "пожежа", -s fire
встановлює її.
Коли ви готові додати підказку, додайте щось подібне під рядок автоматичного завантаження вище:
prompt fade red
Я не думаю, що autoload -U colors && colors
потрібне більше, і можна просто зробити:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
щоб досягти такого ж результату, як відповідь FireDude . Для отримання додаткової інформації див документацію ZSH .
autoload -U colors && colors
autoload
.
autoload on
?
autoload -U colors
, це означає, що ваш дистрибутив вже має його в іншому файлі ініціалізації zsh. Ви все одно повинні включати його в сценарії, якими ви збираєтесь поділитися з іншими.
for i in {1..256}; do print -P "%F{$i}Color : $i"; done;
%F{118}
(Від 1 до 256)$FG[018]
(Від 1 до 256)$fg[magenta]
(пурпуровий, червоний, білий, жовтий, чорний, синій, блакитний, зелений)PS1='%(?.%F{green}.%F{green})%n@%m:%~%# %f'
PS1='%{$fg[gray]%}[%T][%n@%m%{$reset_color%}:%c%{$reset_color%}%{$fg[gray]%}$(git_prompt_info)]$(prompt_char)%{$reset_color%} '
До цього потрібно додати визначення змінних (PS1 / PROMPT) ~/.zshrc
Ми можемо також переосмислити змінну PS1 в поточному запиті, щоб перевірити її негайно (зміни не зберігаються).
Відповідь Брайана Оуклі вище має проблему, як це вже було зазначено, і рішення, запропоноване Ендрю Маршаллом, хоча і не несе глюка, однак це не робить очевидним для занадто великої настройки на використовувані кольори.
Оскільки macOS Каталіна просить, щоб відтепер zsh стала оболонкою за замовчуванням, я думаю, що ще кілька людей можуть захотіти налаштувати своє підказку і, можливо, приходять сюди для отримання відповіді. Отже, я подумав, що спробую дати більш широке резюме та торкнутися інших дуже тісно пов'язаних понять, які дозволяють зробити більше налаштування.
3-розрядні коди різних кольорів. Перш за все, тут ми можемо знайти тризначні коди для різних кольорів: https://unix.stackexchange.com/a/124409/194343 . Наприклад, 214 - це якийсь помаранчевий колір.
Передній план та фон. Інший ключовий інформації є те , що для F Колір тексту і BAC K наземних квітів можна визначити , що вони хочуть з F і K відповідно. Джерело - посібник zsh щодо візуальних ефектів: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Visual-effects
Так, наприклад, наступні дві команди
autoload -U colors && colors
export PS1="%F{214}%K{000}%m%F{015}%K{000}:%F{039}%K{000}%~%F{015}%K{000}\$ "
представіть ім'я хоста в помаранчевому кольорі з чорним фоном, за ним - двокрапка в білому кольорі з чорним фоном, а потім поточний робочий каталог яскраво-синього кольору з чорним фоном, а потім знак долара в білому кольорі з чорним фоном.
Детальнішу інформацію можна знайти нижче.
Швидка інформація з правого боку. Наприклад, додавання часової позначки. Дивіться https://superuser.com/a/1251045/290299 . Звичайно, це може бути кольоровим, наприклад, із світлим синім / фіолетовим кольором, наприклад таким:
RPROMPT="%F{111}%K{000}[%D{%f/%m/%y}|%@]"
Кольори для ls
. Прочитавши посібник для ls, наприклад, один може активувати кольори для ls
використання наступних двох команд:
export CLICOLOR=1
export LSCOLORS=gafacadabaegedabagacad
Нарешті, як останнє зауваження, що я не пройшов тестування, оскільки задоволений своєю конфігурацією, може бути ще одна дорога для того, щоб хтось встановив порт coreutils
з MacPorts і потім скористався gdircolors
(джерело: https://unix.stackexchange.com/a/174596 / 194343 ). (Я можу в майбутньому відредагувати цю останню частину, оскільки все вищезазначене є пов’язаними фрагментами, які роблять повсякденне життя набагато веселішим і простіше впоратися.)
Я виявив, що з zsh5 (типовий для Debian Jessie) всі ці рішення працюють:
$'\e[00m
$fg[white]
$fg{white}
Тепер у них виникає проблема: вони перемістять курсор, що призведе до некрасивого відмітки при вкладці (для автоматичного завершення). Рішення - просто оточити послідовності втечі %{FOOBAR%}
. Зайняв час, щоб зрозуміти це. Для 2-го та 3-го рішень colors
модуль завантаження є обов'язковим. Щоб перше рішення було читабельним, просто визначте змінні для використовуваних кольорів.
Щоб отримати підказку з кольором залежно від стану виходу останньої команди, ви можете скористатися цим:
PS1='%(?.%F{green}.%F{red})%n@%m:%~%# %f'
Просто додайте цей рядок до свого ~/.zshrc
.
Документації перераховані можливі наповнювачів.
Спробуйте мою улюблену: покладіть
~/.zshrc
цей рядок:
PROMPT='%F{240}%n%F{red}@%F{green}%m:%F{141}%d$ %F{reset}'
не забувай
source ~/.zshrc
перевірити зміни
ви можете змінити кольори / коди кольорів, звичайно :-)
man zshall і шукати ПРОСМОТРЕННЯ
Прочитавши тут відповіді, кілька з них суперечать один одному. Я спробував різні підходи до систем, на яких працює zsh 4.2 та 5+ і виявив, що причина цих відповідей суперечлива в тому, що вони не кажуть, на яку версію ZSH вони спрямовані. Різні версії використовують для цього різний синтаксис, а деякі з них потребують різних автозавантажень.
Отже, найкраща ставка - це, мабуть, людина zshall і пошук ПРОСМОТРУВАННЯ, щоб дізнатися всі правила для вашої конкретної установки zsh. Зауважте в коментарях, такі речі, як "Я використовую Ubuntu 11.04 або 10.4 або OSX", не мають великого значення, оскільки незрозуміло, яку версію ZSH ви використовуєте. Ubuntu 11.04 не передбачає більш нової версії ZSH, ніж ubuntu 10.04. Причини встановлення старішої версії можуть бути різними. З цього приводу нова версія ZSH не означає, який синтаксис використовувати, не знаючи, для якої версії ZSH це.
Для доповнення до всіх вищезазначених відповідей ще одним зручним прийомом є розміщення кольорових параметрів підказки у функцію zsh. Там ви можете визначити локальні змінні для псевдонімів довших команд, наприклад, rc=$reset_color
або визначити власні змінні кольору. Не забудьте помістити його у свій .zshrc
файл та зателефонувати до визначеної вами функції:
# Coloured prompt
autoload -U colors && colors
function myprompt {
local rc=$reset_color
export PS1="%F{cyan}%n%{$rc%}@%F{green}%m%{$rc%}:%F{magenta}%~%{$rc%}%# "
}
myprompt