Oh My Fish обеспечивает базовую инфраструктуру чтобы обеспечить установку пакетов которые расширяют и модифицируют внешний вид вашей оболочки. Он быстрый, расширяемый и легок в использовании.
<br><br>
<palign="center">
<b>English</b>•
<ahref="docs/zh-CN">简体中文</a>
</p>
# Установка
```fish
curl -L https://github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish
Oh My Fish содержит небольшую утилиту `omf` для загрузки и установки новых пакетов и тем.
#### `omf update`
Обновляет фреймворк и установленные пакеты.
#### `omf install` _`[<name>|<url>]`_
Устанавливает один _или более_ пакетов.
- Вы можете установить пакеты прямо по URL с помощью команды `omf install URL`
- Когда вызывается без аргументов, устанавливает отсутствующие пакеты из [bundle](#dotfiles).
#### `omf list`
Список установленных пакетов.
#### `omf theme` _`<theme>`_
Применяет тему. Чтобы получить список доступных тем введите `omf theme`. Также вы можете предварительно посмотреть [доступные темы](./docs/Themes.md) перед установкой.
#### `omf remove` _`<name>`_
Удаляет тему или пакет.
> Пакеты, подписанные на событие `uninstall_<pkg>` уведомляются перед тем как пакет будет удален, поэтому может быть выполнена кастомная очистка ресурсов. Смотрите [Удаление](/docs/Packages.md#uninstall) чтобы получить больше информации.
#### `omf new pkg | theme` _`<name>`_
Генерирует новый пакет или тему.
> Создает новый каталог в `$OMF_CONFIG/{pkg | themes}/` с шаблоном.
#### `omf submit` _`pkg/<name>`_ _`[<url>]`_
Добавляет новый пакет. Чтобы добавить тему используйте `omf submit` _`themes/<name>`_ _`<url>`_.
Убедитесь что [отправили нам PR][omf-pulls-link] чтобы обновить реестр.
#### `omf doctor`
Используйте для устранения проблем перед [созданием нового issue][omf-issues-new].
#### `omf destroy`
Удаляет Oh My Fish.
# Продвинутый
Установщик Oh My Fish помещает код для старта в вашем конфиг файле (`~/.config/fish/config.fish`).
## Стартап
Каждый раз когда вы открываете новый shell стартап код инициализирует Oh My Fish путь установки и _конфиг_ путь (`~/.config/omf` по умолчанию), потом запускает [`init.fish`](init.fish) скрипт, который автоматически загружает пакеты, темы и ваши кастомные init файлы.
Everytime you open a new shell the startup code initializes Oh My Fish installation path and the _config_ path (`~/.config/omf` by default), sourcing the [`init.fish`](init.fish) script afterwards, which autoload packages, themes and your custom init files. Чтобы получить больше информации смотрите [FAQ](docs/en-US/FAQ.md#what-does-oh-my-fish-do-exactly).
## Файлы конфигурации
Директория `$OMF_CONFIG` представляет состояние пользователя Oh My Fish, и это превосходный кандидат для добавления в ваши dotfiles и/или добавлена в систему контроля версий. Это четыре важных файла:
- __`theme`__ - Текущая тема
- __`bundle`__ - Список установленных пакетов/тем
- __`init.fish`__ - Кастомный скрипт, который запускается после запуска shell
- __`before.init.fish`__ - Кастомный скрипт который запускается перед запуском shell
Настоятельно рекомендуется добавлять свои стартап команды в файл `init.fish` вместо `~/.config/fish/config.fish`, так как это позволяет вам держать весь каталог `$OMF_CONFIG` в системе контроля версий.
Если вам нужно запускать стартап команды *перед* тем как Oh My Fish начнет загружать плагины, поместите их в `before.init.fish`. Если вы не уверены, как правило, лучше поместить их в `init.fish`.
### О bundle
Каждый раз когда пакет/тема устанавливается или удаляется, `bundle` файл обновляется. Также вы можете отредактировать его и потом запустить `omf install` чтобы зафиксировать изменения. Пожалуйста обратите внимание на то что если пакеты/темы добавлены в bundle, они автоматически установятся, в то время как пакеты/темы, удаленные из bundle файла не удалятся из пользовательской папки.
## Создание пакетов
Oh My Fish использует продвинутую и хорошо определенную архитектуру плагинов для упрощения их разработки, включая события инициализации/удаления и функции автозагрузки.
[Смотрите документацию](docs/en-US/Packages.md) чтобы получить больше информации.