starship/docs/ru-RU/advanced-config/README.md

94 lines
6.4 KiB
Markdown
Raw Normal View History

2019-12-24 21:54:29 +00:00
# Расширенная конфигурация
2019-12-24 21:54:29 +00:00
Хотя Starship - это универсальная оболочка, иногда вам нужно сделать больше, чем просто редактировать `starship.toml`, для того чтобы сделать определенные вещи. Эта страница описывает некоторые из дополнительных техник конфигурации, используемых в Starship.
::: warning
2019-12-24 21:54:29 +00:00
Конфигурации в этом разделе могут быть изменены в будущих выпусках Starship.
:::
## Пользовательские команды перед командной строкой и перед запуском Bash
2019-12-24 21:54:29 +00:00
Bash не имеет формальной среды preexec/precmd, как и большинство других оболочек. Из-за этого трудно предоставить полностью настраиваемые хуки в `bash`. Тем не менее, Starship дает вам ограниченную возможность вставить собственные функции в процедуру отображения подсказки:
2019-12-24 21:54:29 +00:00
- Чтобы запустить пользовательскую функцию прямо перед отображением подсказки, определите новую функцию и затем назначьте ей имя `starship_precmd_user_func`. Например, чтобы нарисовать ракету перед появлением подсказки, сделайте
```bash
function blastoff(){
echo "🚀"
}
starship_precmd_user_func="blastoff"
```
2019-12-24 21:54:29 +00:00
- Чтобы запустить пользовательскую функцию перед запуском команды, вы можете использовать [механизм ловушки `DEBUG`](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/). Тем не менее, вы **должны** поймать сигнал DEBUG *перед* инициализацией Starship! Starship может сохранить значение ловушки DEBUG, но если ловушка перезаписана после запуска Starship, некоторая функциональность сломается.
```bash
function blastoff(){
echo "🚀"
}
trap blastoff DEBUG # Trap DEBUG *before* running starship
eval $(starship init bash)
```
2019-12-24 21:54:29 +00:00
## Изменение заголовка окна
2019-12-24 21:54:29 +00:00
Некоторые подсказки к оболочке автоматически меняют заголовок окна для вас (например, отражая ваш рабочий каталог). Fish даже делает это по умолчанию. Starship не делает этого, но достаточно легко добавить эту функциональность к `bash` или `zsh`.
2019-12-24 21:54:29 +00:00
Сначала задайте функцию изменения заголовка окна (идентичную в bash и zsh):
```bash
function set_win_title(){
echo -ne "\033]0; YOUR_WINDOW_TITLE_HERE \007"
}
```
2019-12-24 21:54:29 +00:00
Вы можете использовать переменные для настройки этого заголовка (`$USER`, `$HOSTNAME`, и `$PWD` являются популярными вариантами).
2019-12-24 21:54:29 +00:00
В `bash`, установите эту функцию как функцию precmd в Starship:
```bash
starship_precmd_user_func="set_win_title"
```
2019-12-24 21:54:29 +00:00
В `zsh`, добавьте это в массив `precmd_functions`:
```bash
precmd_functions+=(set_win_title)
```
Если вам нравится результат, добавьте эти строки в конфигурационный файл оболочки (`~/.bashrc` или `~/.zsrhc`), чтобы оставить это навсегда.
Например, если вы хотите отобразить ваш текущий каталог в заголовке вкладки терминала, добавьте следующие строки в `~/. bashrc` или `~/.zshrc`:
```bash
function set_win_title(){
echo -ne "\033]0; $(basename $PWD) \007"
}
starship_precmd_user_func="set_win_title"
```
2019-12-24 21:54:29 +00:00
## Строки стиля
2019-12-24 21:54:29 +00:00
Строки стиля - это список слов, разделенных пробелами. Слова не чувствительны к регистру (то есть `bold` и `BoLd` считаются одной строкой). Каждое слово может быть одним из следующих:
- `bold`
- `underline`
- `dimmed`
- `bg:<color>`
- `fg:<color>`
- `<color>`
- `none`
2019-12-24 21:54:29 +00:00
где `<color>` является цветовым спецификатором (обсуждается ниже). `fg:<color>` и `<color>` в настоящее время делают одно и то же, хотя это может измениться в будущем. Порядок слов в строке не имеет значения.
2019-12-24 21:54:29 +00:00
Токен `none` переопределяет все остальные токены в строке, например `fg:red none fg:blue` все равно создаст строку без стиля. Использование `none` в сочетании с другими токенами может стать ошибкой в будущем.
2019-12-24 21:54:29 +00:00
Цветовой спецификатор может быть одним из следующих:
- Некоторые из стандартных цветов терминалов: `black`, `red`, `green`, `blue`, `gellow`, `purple`, `cyan`, `white`. Вы можете по желанию добавить префикс `bright-`, чтобы получить яркую версию (например, `bright-white`).
2019-12-24 21:54:29 +00:00
- `#`, за которой следует шестизначное шестнадцатеричное число. Это определяет [шестнадцатеричный код цвета RGB](https://www.w3schools.com/colors/colors_hexadecimal.asp).
- Число от 0 до 255. Это определяет [8-битный код цвета ANSI](https://i.stack.imgur.com/KTSQa.png).
2019-12-24 21:54:29 +00:00
Если для переднего плана/фона задано несколько цветов, то последняя из строк будет иметь приоритет.