mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2024-11-22 12:43:23 +08:00
commit
d794969f23
|
@ -12,7 +12,8 @@ Oh My Fish provides core infrastructure to allow you to install packages which e
|
|||
|
||||
<p align="center">
|
||||
<b>English</b> •
|
||||
<a href="docs/zh-CN">简体中文</a>
|
||||
<a href="docs/zh-CN">简体中文</a> •
|
||||
<a href="docs/ru-RU">Русский</a>
|
||||
</p>
|
||||
|
||||
## Installation
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
<p align="center">
|
||||
<b>English</b> •
|
||||
<a href="docs/zh-CN/FAQ.md">简体中文</a>
|
||||
<a href="docs/zh-CN/FAQ.md">简体中文</a> •
|
||||
<a href="docs/ru-RU/FAQ.md">Русский</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
@ -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?
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
<p align="center">
|
||||
<b>English</b> •
|
||||
<a href="docs/zh-CN/Packages.md">简体中文</a>
|
||||
<a href="docs/zh-CN/Packages.md">简体中文</a> •
|
||||
<a href="docs/ru-RU/Packages.md">Русский</a>
|
||||
</p>
|
||||
|
||||
# Creating
|
||||
|
|
95
docs/ru-RU/FAQ.md
Normal file
95
docs/ru-RU/FAQ.md
Normal file
|
@ -0,0 +1,95 @@
|
|||
<div align="center">
|
||||
<a href="http://github.com/oh-my-fish/oh-my-fish">
|
||||
<img width=120px src="https://cloud.githubusercontent.com/assets/8317250/8510172/f006f0a4-230f-11e5-98b6-5c2e3c87088f.png">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<p align="center">
|
||||
<a href="../en-US/FAQ.md">English</a> •
|
||||
<a href="../zh-CN/FAQ.md">简体中文</a> •
|
||||
<b>Русский</b>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
# 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
|
||||
```
|
95
docs/ru-RU/Packages.md
Normal file
95
docs/ru-RU/Packages.md
Normal file
|
@ -0,0 +1,95 @@
|
|||
<div align="center">
|
||||
<a href="http://github.com/oh-my-fish/oh-my-fish">
|
||||
<img width=120px src="https://cloud.githubusercontent.com/assets/8317250/8510172/f006f0a4-230f-11e5-98b6-5c2e3c87088f.png">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<p align="center">
|
||||
<a href="../en-US/Packages.md">English</a> •
|
||||
<a href="../zh-CN/Packages.md">简体中文</a> •
|
||||
<b>Русский</b>
|
||||
</p>
|
||||
|
||||
# Создание
|
||||
|
||||
Чтобы научиться создавать пакеты давайте создадим новый пакет который будет выводить команду `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_<pkg>` события перед тем как пакет удален с помощью команды `omf remove <pkg>`. Подписчики могут использовать это событие чтобы очистить кастомные ресурсы и тд.
|
||||
|
||||
```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
|
118
docs/ru-RU/README.md
Normal file
118
docs/ru-RU/README.md
Normal file
|
@ -0,0 +1,118 @@
|
|||
<img src="https://cdn.rawgit.com/oh-my-fish/oh-my-fish/e4f1c2e0219a17e2c748b824004c8d0b38055c16/docs/logo.svg" align="left" width="192px" height="192px"/>
|
||||
<img align="left" width="0" height="192px" hspace="10"/>
|
||||
|
||||
> The <a href="http://fishshell.com">Fishshell</a> 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 обеспечивает базовую инфраструктуру чтобы обеспечить установку пакетов которые расширяют и модифицируют внешний вид вашей оболочки. Он быстрый, расширяемый и легок в использовании.
|
||||
|
||||
<br><br>
|
||||
|
||||
<p align="center">
|
||||
<a href="../../README.md">English</a> •
|
||||
<a href="../zh-CN">简体中文</a> •
|
||||
<b>Русский</b>
|
||||
</p>
|
||||
|
||||
# Установка
|
||||
|
||||
```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` _`[<name>|<url>]`_
|
||||
|
||||
Устанавливает один _или более_ пакетов.
|
||||
|
||||
- Вы можете установить пакеты прямо по URL с помощью команды `omf install URL`
|
||||
- Когда вызывается без аргументов, устанавливает отсутствующие пакеты из [bundle](#файлы конфигурации).
|
||||
|
||||
#### `omf list`
|
||||
|
||||
Список установленных пакетов.
|
||||
|
||||
#### `omf theme` _`<theme>`_
|
||||
|
||||
Применяет тему. Чтобы получить список доступных тем введите `omf theme`. Также вы можете предварительно посмотреть [доступные темы](../docs/Themes.md) перед установкой.
|
||||
|
||||
#### `omf remove` _`<name>`_
|
||||
|
||||
Удаляет тему или пакет.
|
||||
|
||||
> Пакеты, подписанные на событие `uninstall_<pkg>` уведомляются перед тем как пакет будет удален, поэтому может быть выполнена кастомная очистка ресурсов. Смотрите [Удаление](Packages.md#Удаление) чтобы получить больше информации.
|
||||
|
||||
#### `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 файлы. Чтобы узнать больше информации смотрите [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
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
<p align="center">
|
||||
<a href="../en-US/FAQ.md">English</a> •
|
||||
<b>简体中文</b>
|
||||
<b>简体中文</b> •
|
||||
<a href="../ru-RU/FAQ.md">Русский</a>
|
||||
</p>
|
||||
|
||||
# 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 我需要注意什么?
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
<p align="center">
|
||||
<a href="../en-US/Packages.md">English</a> •
|
||||
<b>简体中文</b>
|
||||
<b>简体中文</b> •
|
||||
<a href="../ru-RU/Packages.md">Русский</a>
|
||||
</p>
|
||||
|
||||
# 创建插件或主题
|
||||
|
@ -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
|
||||
[omf-pulls-link]: https://github.com/oh-my-fish/oh-my-fish/pulls
|
||||
|
|
|
@ -11,7 +11,8 @@ Oh My Fish 提供核心基础设施的配置,允许每个人可以轻松安装
|
|||
|
||||
<p align="center">
|
||||
<a href="../../README.md">English</a> •
|
||||
<b>简体中文</b>
|
||||
<b>简体中文</b> •
|
||||
<a href="../ru-RU/README.md">Русский</a>
|
||||
</p>
|
||||
|
||||
# 安装
|
||||
|
|
Loading…
Reference in New Issue
Block a user