44 lines
1.7 KiB
Fish
44 lines
1.7 KiB
Fish
|
|
function fish_prompt
|
|||
|
|
# Сохраняем код последней выполненной команды
|
|||
|
|
set -l last_status $status
|
|||
|
|
|
|||
|
|
# --- Левая (черная) часть ---
|
|||
|
|
# Устанавливаем черный фон и белый цвет текста
|
|||
|
|
set_color -b black white
|
|||
|
|
# Выводим текущую директорию. prompt_pwd - это встроенная функция fish для сокращенного пути
|
|||
|
|
echo -n ' '(prompt_pwd)' '
|
|||
|
|
|
|||
|
|
# --- Разделитель и правая (белая) часть ---
|
|||
|
|
# Используем символ powerline для плавного перехода
|
|||
|
|
set_color -b white black
|
|||
|
|
echo -n '' # Символ-разделитель
|
|||
|
|
|
|||
|
|
# Получаем информацию о Git
|
|||
|
|
set -l git_info (fish_git_prompt)
|
|||
|
|
|
|||
|
|
# Если мы находимся в Git-репозитории, отображаем информацию
|
|||
|
|
if test -n "$git_info"
|
|||
|
|
# Устанавливаем белый фон и черный цвет текста
|
|||
|
|
set_color -b white black
|
|||
|
|
echo -n $git_info' '
|
|||
|
|
set_color -b normal # Сбрасываем фон
|
|||
|
|
echo -n ' '
|
|||
|
|
else
|
|||
|
|
# Если не в репозитории, просто завершаем белую часть
|
|||
|
|
set_color -b normal
|
|||
|
|
echo -n ' '
|
|||
|
|
|
|||
|
|
|
|||
|
|
# --- Завершение командной строки ---
|
|||
|
|
# Возвращаем стандартные цвета
|
|||
|
|
set_color normal
|
|||
|
|
|
|||
|
|
# Отображаем символ '>' красным цветом, если последняя команда завершилась с ошибкой
|
|||
|
|
if test $last_status -ne 0
|
|||
|
|
set_color red
|
|||
|
|
end
|
|||
|
|
echo -n '> '
|
|||
|
|
set_color normal
|
|||
|
|
end
|
|||
|
|
end
|