diff --git a/README.md b/README.md index 28e7573..89516af 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ Oh My Fish provides core infrastructure to allow you to install packages which e

English • - 简体中文 + 简体中文 • + Русский

## Installation diff --git a/docs/en-US/FAQ.md b/docs/en-US/FAQ.md index f07bb25..586b946 100644 --- a/docs/en-US/FAQ.md +++ b/docs/en-US/FAQ.md @@ -8,7 +8,8 @@

English • - 简体中文 + 简体中文 • + Русский

@@ -19,7 +20,7 @@ Thanks for taking the time to read this FAQ. Feel free to create a new issue if ## What is Oh My Fish and why do I want it? -Oh My Fish is a _framework_ for the [fishshell](https://fishshell.org). It helps you manage your configuration, themes and packages. +Oh My Fish is a _framework_ for the [Fishshell](http://fishshell.com/). It helps you manage your configuration, themes and packages. ## What do I need to know to use Oh My Fish? diff --git a/docs/en-US/Packages.md b/docs/en-US/Packages.md index 8285da5..38f5cc5 100644 --- a/docs/en-US/Packages.md +++ b/docs/en-US/Packages.md @@ -8,7 +8,8 @@

English • - 简体中文 + 简体中文 • + Русский

# Creating diff --git a/docs/ru-RU/FAQ.md b/docs/ru-RU/FAQ.md new file mode 100644 index 0000000..b8c1e54 --- /dev/null +++ b/docs/ru-RU/FAQ.md @@ -0,0 +1,95 @@ +
+ + + +
+ +
+ +

+ English • + 简体中文 • + Русский + +

+ + +# FAQ + +Спасибо что нашли время прочитать этот FAQ. Не стесняйтесь создавать новый Issue если вы не нашли тут ответ на свой вопрос. + + +## Что такое Oh My Fish и зачем он мне нужен? + +Oh My Fish это _фреймворк_ для [Fishshell](http://fishshell.com/). Он помогает Вам управлять Вашими настройками, темами и пакетами. + + +## Что мне нужно знать чтобы использовать Oh My Fish? + +_Ничего_. Вы можете установить Oh My Fish и продолжать использовать Fish как обычно. Когда Вы захотите узнать больше просто наберите `omf help`. + + +## Что такое пакеты в Oh My Fish? + +Пакеты в Oh My Fish - это темы и плагины, написанные на fish которые наследуют базовую функциональность Shell, запускают код во время инициализации, добавляют автодополнение к известным утилитам и тд. + + +## Какие типы пакетов существуют в Oh My Fish? + +Существует 3 основных вида пакетов: + +1. Конфигурационные утилиты. Например [`pkg-pyenv`](https://github.com/oh-my-fish/pkg-pyenv) проверяет существует ли `pyenv` в Вашей системе и запускает `(pyenv init - | psub)` для Вас при запуске Fish. + +2. Темы. Ознакомьтесь с [темами](https://github.com/oh-my-fish). + +3. Традиционные утилиты оболочки. Например [`pkg-copy`](https://github.com/oh-my-fish/pkg-copy), утилита буфера обмена, совместимая с Linux и OSX. + + +## Что именно делает Oh My Fish? + ++ Запускает `$OMF_CONFIG/before.init.fish` если доступно. + ++ Автозагрузка установленных пакетов и тем из `$OMF_PATH/`. + ++ Автозагрузка пути к Вашему конфигу. `~/.config/omf` по умолчанию, но конфигурируемый через `$OMF_CONFIG`. + ++ Автозагрузка любых `функций` из `$OMF_PATH` и `$OMF_CONFIG` + ++ Запускает `$OMF_CONFIG/init.fish` если доступно. + + +## Как я могу обновить текущую версию Oh My Fish? + +> :предупреждение: Не забудьте сперва сделать резервную копию Ваших dotfiles и других важных данных. + +``` +curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | sh +``` + +Теперь Вы можете безопасно удалить `$fish_path`. + +```fish +rm -rf "$fish_path" +``` + + +## Как я могу использовать fish в качестве оболочки по умолчанию? + +Добавьте Fish в `/etc/shells`: + +```sh +echo "/usr/local/bin/fish" | sudo tee -a /etc/shells +``` + +Сделайте Fish Вашей оболочкой по умолчанию: + +```sh +chsh -s /usr/local/bin/fish +``` + +Чтобы обратно переключиться на оболочку по умолчанию: +> Вышедший на замену `/bin/bash` с `/bin/tcsh` или `/bin/zsh` в соответствующих случаях. + +```sh +chsh -s /bin/bash +``` diff --git a/docs/ru-RU/Packages.md b/docs/ru-RU/Packages.md new file mode 100644 index 0000000..7fa42cd --- /dev/null +++ b/docs/ru-RU/Packages.md @@ -0,0 +1,95 @@ +
+ + + +
+ +
+ +

+ English • + 简体中文 • + Русский +

+ +# Создание + +Чтобы научиться создавать пакеты давайте создадим новый пакет который будет выводить команду `hello_world` для Вашей оболочки. Имена пакетов могут содержать только символы нижнего регистра и символ подчеркивания для разделения слов. + +Oh My Fish может сгенерировать структуру пакета для Вас. Используйте команду `omf new`: + +```fish +$ omf new pkg hello_world +``` + +> Используйте `omf new theme my_theme_name` для тем. + +Утилита изменяет текущий каталог на только что созданыый пакет: + +``` +$ ls -l + README.md + hello_world.fish + completions/hello_world.fish +``` + +Всегда описывайте как работает ваш пакет в `README.md`. Также прочитайте больше об [автодополнении](http://fishshell.com/docs/current/commands.html#complete) а также позаботьтесь о том чтобы предоставить его для ваших утилит, когда это возможно. + +`hello_world.fish` определяет одну функцию: + +```fish +function hello_world -d "Prints hello world" + echo "Hello World!" +end +``` + +Каждая функция в Вашем пакете должна быть объявлена в своем собственном файле. Это требование механизма автозагрузки fish, который загружает функции по запросу, избегая загрузки ненужных функций. + +Имейте в виду что fish не имеет приватной области видимости, поэтому если Вам необходимо разделить Ваш пакет на функции, добавьте префикс к Вашим функциям как здесь: +`__hello_world.my_extra_function`, чтобы избежать совпадения имен и загрязнения глобального пространства имен. + +# События + +Пакеты были спроектированы так, чтобы использовать преимущества событий fish. На данный момент существует два события которые Oh My Fish будет передавать Вашему пакету: + +## Инициализация + +Если вы хотите быть [уведомлены](http://fishshell.com/docs/current/commands.html#emit) когда Ваш пакет загружается, объявите следующую функцию в Вашем `hello_world.fish`: + +```fish +function init -a path --on-event init_hello_world + echo "hello_world initialized" +end +``` + +Используйте это событие чтобы модифицировать окружение, загружать ресурсы, автоматически загружать функции и тд. Если Ваш пакет не экспортирует никаких функций, Вы все равно можете использовать это событие чтобы добавить функциональность в Ваш пакет. + +## Удаление + +Oh My Fish генерирует `uninstall_` события перед тем как пакет удален с помощью команды `omf remove `. Подписчики могут использовать это событие чтобы очистить кастомные ресурсы и тд. + +```fish +function uninstall --on-event uninstall_hello_world +end +``` + + +# Сделайте его публичным + +Oh My Fish хранит реестр публичных пакетов в `$OMF_PATH/db/`. + +Чтобы добавить Ваш пакет в реестр вам необходимо: +To add your package to the registry you need to: + +```fish +# Для пакетов: +omf submit pkg/hello_world .../hello_world.git + +# Для тем +omf submit theme/my_theme .../my_theme_name.git +``` + +Это добавит новую сущность в ваш локальный реестр. Теперь Вам просто надо [отправить нам PR][omf-pulls-link] чтобы обновить глобальный реестр. + + +[omf-pulls-link]: https://github.com/oh-my-fish/oh-my-fish/pulls diff --git a/docs/ru-RU/README.md b/docs/ru-RU/README.md new file mode 100644 index 0000000..5f4d515 --- /dev/null +++ b/docs/ru-RU/README.md @@ -0,0 +1,118 @@ + + + +> The Fishshell Framework + +[![MIT License](https://img.shields.io/badge/license-MIT-007EC7.svg?style=flat-square)](/LICENSE.md) [![Fish Shell Version](https://img.shields.io/badge/fish-v2.2.0-007EC7.svg?style=flat-square)](http://fishshell.com) [![Travis Build Status](http://img.shields.io/travis/oh-my-fish/oh-my-fish.svg?style=flat-square)](https://travis-ci.org/oh-my-fish/oh-my-fish) [![Slack Status](https://oh-my-fish-slack.herokuapp.com/badge.svg)](https://oh-my-fish-slack.herokuapp.com) + + +Oh My Fish обеспечивает базовую инфраструктуру чтобы обеспечить установку пакетов которые расширяют и модифицируют внешний вид вашей оболочки. Он быстрый, расширяемый и легок в использовании. + +

+ +

+ English • + 简体中文 • + Русский +

+ +# Установка + +```fish +curl -L https://github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish +omf help +``` + +Или _скачайте_ и запустите сами: + +```fish +curl -L https://github.com/oh-my-fish/oh-my-fish/raw/master/bin/install > install +fish install +``` + +# Туториал + +Oh My Fish содержит небольшую утилиту `omf` для загрузки и установки новых пакетов и тем. + +#### `omf update` + +Обновляет фреймворк и установленные пакеты. + +#### `omf install` _`[|]`_ + +Устанавливает один _или более_ пакетов. + +- Вы можете установить пакеты прямо по URL с помощью команды `omf install URL` +- Когда вызывается без аргументов, устанавливает отсутствующие пакеты из [bundle](#файлы конфигурации). + +#### `omf list` + +Список установленных пакетов. + +#### `omf theme` _``_ + +Применяет тему. Чтобы получить список доступных тем введите `omf theme`. Также вы можете предварительно посмотреть [доступные темы](../docs/Themes.md) перед установкой. + +#### `omf remove` _``_ + +Удаляет тему или пакет. + +> Пакеты, подписанные на событие `uninstall_` уведомляются перед тем как пакет будет удален, поэтому может быть выполнена кастомная очистка ресурсов. Смотрите [Удаление](Packages.md#Удаление) чтобы получить больше информации. + +#### `omf new pkg | theme` _``_ + +Генерирует новый пакет или тему. + +> Создает новый каталог в `$OMF_CONFIG/{pkg | themes}/` с шаблоном. + +#### `omf submit` _`pkg/`_ _`[]`_ + +Добавляет новый пакет. Чтобы добавить тему используйте `omf submit` _`themes/`_ _``_. + +Убедитесь что [отправили нам 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 файлы. Чтобы узнать больше информации смотрите [FAQ](FAQ.md#что именно делает Oh My Fish?). + +## Файлы конфигурации + +Директория `$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 использует продвинутую и хорошо определенную архитектуру плагинов для упрощения их разработки, включая события инициализации/удаления и функции автозагрузки. +[Смотрите документацию](Packages.md) чтобы узнать больше информации. + +[fishshell]: http://fishshell.com + +[contributors]: https://github.com/oh-my-fish/oh-my-fish/graphs/contributors + +[omf-pulls-link]: https://github.com/oh-my-fish/oh-my-fish/pulls + +[omf-issues-new]: https://github.com/oh-my-fish/oh-my-fish/issues/new diff --git a/docs/zh-CN/FAQ.md b/docs/zh-CN/FAQ.md index eb3be87..933b9ec 100644 --- a/docs/zh-CN/FAQ.md +++ b/docs/zh-CN/FAQ.md @@ -8,7 +8,8 @@

English • - 简体中文 + 简体中文 • + Русский

# FAQ @@ -18,7 +19,7 @@ ## 什么是 Oh My Fish,我为什么会使用它? -Oh My Fish 是基于 [fishshell](https://fishshell.org) 封装的高级 _框架_。它可以帮你管理你的配置,主题和插件。 +Oh My Fish 是基于 [Fishshell](http://fishshell.com/) 封装的高级 _框架_。它可以帮你管理你的配置,主题和插件。 ## 使用 Oh My Fish 我需要注意什么? diff --git a/docs/zh-CN/Packages.md b/docs/zh-CN/Packages.md index dc15c0a..7ce2486 100644 --- a/docs/zh-CN/Packages.md +++ b/docs/zh-CN/Packages.md @@ -8,7 +8,8 @@

English • - 简体中文 + 简体中文 • + Русский

# 创建插件或主题 @@ -90,4 +91,4 @@ omf submit theme/my_theme .../my_theme_name.git 此操作仅在本地会添加一个新的注册索引,最后你还需要[提交 PR][omf-pulls-link]并入官方的注册索引。 -[omf-pulls-link]: https://github.com/oh-my-fish/oh-my-fish/pulls \ No newline at end of file +[omf-pulls-link]: https://github.com/oh-my-fish/oh-my-fish/pulls diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 9836f94..3113699 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -11,7 +11,8 @@ Oh My Fish 提供核心基础设施的配置,允许每个人可以轻松安装

English • - 简体中文 + 简体中文 • + Русский

# 安装