2019-10-02 17:24:29 +02:00
< 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" / >
2019-10-02 20:26:55 +02:00
> El _framework_ de <a href="http://fishshell.com">Fishshell</a>
2019-10-02 17:24:29 +02:00
[](/LICENSE) [](http://fishshell.com) [](https://travis-ci.org/oh-my-fish/oh-my-fish) [](https://oh-my-fish-slack.herokuapp.com)
2019-10-02 20:26:55 +02:00
Oh My Fish ofrece la infraestructura básica para permitirle instalar paquetes que extiendan o modifiquen el aspecto de su _shell_ . Es rápido, extensible y
sencillo de utilizar.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
> También disponible en
> <a href="../en-US/FAQ.md">🇺🇸</a>
2019-10-02 17:24:29 +02:00
> <a href="docs/ru-RU/README.md">🇷🇺</a>
> <a href="docs/zh-CN/README.md">🇨🇳</a>
> <a href="docs/uk-UA/README.md">🇺🇦</a>
> <a href="docs/pt-BR/README.md">🇧🇷</a>
< br >
2019-10-02 20:26:55 +02:00
## Índice de contenidos
* [Instalación ](#instalación )
* [Comenzando (descripciones de los comandos) ](#comenzando )
* [Avanzado ](#avanzado )
* [Inicio ](#inicio )
* [Archivos de configuración (Dotfiles) ](#dotfiles )
* [Creando paquetes ](#creando-paquetes )
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
## Instalación
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Puede comenzar de inmediate con la configuración predeterminada ejecutando lo siguiente en su terminal:
2019-10-02 17:24:29 +02:00
```fish
curl -L https://get.oh-my.fish | fish
```
2019-10-02 20:26:55 +02:00
Esto descargará el script instalador y comenzará la instalación. De manera alternativa, puede descargar el instalador y personalizar su instalación:
2019-10-02 17:24:29 +02:00
```fish
curl -L https://get.oh-my.fish > install
fish install --path=~/.local/share/omf --config=~/.config/omf
```
2019-10-02 20:26:55 +02:00
Puede verificar la integridad del instalador descargado comprobando el script con esta [suma de verificación ](bin/install.sha256 ):
2019-10-02 17:24:29 +02:00
```
434264c56e3a7bb74733d9b293d72403c404e0a0bded3e632433d391d302504e install
```
2019-10-02 20:26:55 +02:00
También puede insatalar Oh My Fish mediante Git o con un archivo tarball descargado desde la [página de publicaciones][releases]:
2019-10-02 17:24:29 +02:00
```fish
# with git
$ git clone https://github.com/oh-my-fish/oh-my-fish
$ cd oh-my-fish
$ bin/install --offline
# with a tarball
$ curl -L https://get.oh-my.fish > install
$ fish install --offline=omf.tar.gz
```
2019-10-02 20:26:55 +02:00
Ejecute `install --help` para obtener una lista completa de opciones de instalación que puede personalizar.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### Requisitos
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
- **fish** shell, versión 2.2 o posterior
- **git**, versión 1.9.5 o posterior
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### Problemas conocidos
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
- Debido a un error de regresión en fish 2.6 con algunos emuladores de terminal, los prompts a la derecha hace que la shell no se pueda utilizar.
El tema OMF's `default` ofrece un prompt a la derecha, así que es necesario utilizar untema alternativo hasta que se publique una solción.
(ver [#541 ](https://github.com/oh-my-fish/oh-my-fish/issues/541 ))
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
## Comenzando
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Oh My Fish incluye una pequeña utilidad `omf` para extraer e instalar nuevos paquetes y temas.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### `omf update` _`[omf]`_ _`[<paquete>...]`_
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Actualiza Oh My Fish, todos los paquetes de los repositorios y todos los paquetes instalados.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
- Cuando es llamado sin argumentos, actualiza el núcleo y todos los paquetes instalados.
- Puede escoger actualizar sólo el núcleo, ejecutando `omf update omf` .
- Para una actualización selectiva de paquetes, escriba solo los paquetes que desea actualizar. Debería incluir "omf" en la lista para actualizar también el
núcleo.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### `omf install` _`[<nombre>|<url>]`_
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Instala uno _o más_ paquetes.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
- Puede instalar paquetes directamente con la URL mediante `omf install URL`
- Cuando es ejecutado sin argumentos, instala paquetes perdios desde [bundle ](#dotfiles ).
2019-10-02 17:24:29 +02:00
#### `omf repositories` _`[list|add|remove]`_
2019-10-02 20:26:55 +02:00
Gestiona los paquetes de los repositorios instalados por el usuario. Los paquetes de los repositorios son de donde los paquetes provienen utilizando
comandos como `omf install` . De manera predeterminada el [repositorio oficial ](https://github.com/oh-my-fish/packages-main ) está siempre instalado y
disponible.
2019-10-02 17:24:29 +02:00
#### `omf list`
2019-10-02 20:26:55 +02:00
Lista los paquetes instalados.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### `omf theme` _`<tema>`_
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Aplica un tema. Para listar los temas disponibles, escriba `omf theme` . También puede [previsualizar los temas disponibles ](./docs/Themes.md ) antes de
instalarlos.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### `omf remove` _`<nombre>`_
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Elimina un tema o paquete.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
> Los paquetes pueden utilizar _hooks_ al desinstalarlos, así que una limpieza de recursos personalizado puede ejecutarse cuando se desinstalen. Ver
> [Desinstalar](/docs/es-ES/Packages.md#uninstall) para más información.
2019-10-02 17:24:29 +02:00
#### `omf reload`
2019-10-02 20:26:55 +02:00
Vuelve a cargar Oh My Fish y todos los complementos utilizando `exec` para reemplazar el proceso shell actual con uno nuevo.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
> Este comando intenta ser lo más seguro posible, mitigando efectos colaterales cauados por `exec` y prevenir la recarga en el caso de procesos en segundo
> plano.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### `omf new plugin | theme` _`<nombre>`_
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Crea un esqueleto para un nuevo complemento o tema.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
> Esto crea un nuevo directorio en `$OMF_CONFIG/{pkg | themes}/` con una plantilla.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
#### `omf search` _`-t|--theme / -p|--package`_ _`<nombre>`_
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Busca en la base de datos de Oh My Fish un paquete en concreto, tema o ambos. También soporta una búsqueda menos explícita, así que si no está seguro del
nombre simplemente ejecute `omf search simple` .
2019-10-02 17:24:29 +02:00
#### `omf channel`
2019-10-02 20:26:55 +02:00
Obtiene o cambia el canal de actualización.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
De manera predeterminada existen dos canales: el canal `stable` ofrece actualizaciones estables con las versión más recientes de Oh My Fish, y `dev` que
ofrece los últimos cambios en desarrollo. El canal de actualización actual determina a qué versión de `omf update` se actualizará.
2019-10-02 17:24:29 +02:00
#### `omf doctor`
2019-10-02 20:26:55 +02:00
Utilizar para diagnosticar un error antes de [abrir un _issue_ ][omf-issues-new].
2019-10-02 17:24:29 +02:00
#### `omf destroy`
2019-10-02 20:26:55 +02:00
Desinstala Oh My Fish.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
## Avanzado
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
El instalador de Oh My Fish añade un fragmento a los archivos de configuración de fish del usuario (`~/.config/fish/conf.d/` ) que llama al código de
arranque de OMF.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Tenga en cuenta que los scripts en ese directorio se ofrecen en el orden en el que el sistema de archivos los ve, y quizás puede ser necesario añadir un
prefijo a su script con números para ordenarlos.
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
Por ejemplo: `a_script.fish` tendrá preferencia sobre el fragmento `omf.fish` .
Así que si `a_script.fish` depende de complementos gestionados por OMF, considere renombrar el archivo del script a `xx_a_script.fish` .
2019-10-02 17:24:29 +02:00
2019-10-02 20:26:55 +02:00
De manera similar, para asegurarse que un script se ejecuta antes de `omf.fish` , debería añadirle el prefijo `00_` .
De manera alternativa también se puede utilizar `~/.config/omf/before.init.fish` .
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
### Inicio
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
Cada vez que abre una nueva shell, el código de inicio inicializa la ruta de instalación y la ruta de configuración de Oh My Fish (`~/.config/omf` de manera
predeterminada), ejecutando el script [`init.fish` ](init.fish ) posteriormente, que carga de manera automática los paquetes, temas y sus ficheros
personalizados de inicio.
2019-10-02 17:24:29 +02:00
2019-10-02 22:08:52 +02:00
Para más información puede consultar la sección de preguntas frecuentes [FAQ ](FAQ.md#what-does-oh-my-fish-do-exactly ).
2019-10-02 17:24:29 +02:00
2019-10-02 22:02:58 +02:00
### Archivos de configuración (Dotfiles)
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
El directorio `$OMF_CONFIG` representa el estado del usuario de Oh My Fish. Es el perfecto candidato para ser añadido a sus archivos de configuración o
_dotfiles_ y/o añadirlo a un control de versiones como puede ser Git. Allí se pueden encontrar tres archivos importantes:
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
- __`theme` __ - El tema actual
- __`bundle` __ - Lista de los temas/paquetes actualmente instalados
- __`channel` __ - El canal desde el cual OMF descarga las actualizaciones (estable / dev)
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
Y puede crear o personalizar esos archivos especiales:
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
- __`init.fish` __ - Script personalizado que se ejecuta después del arranque de la shell
- __`before.init.fish` __ - Script personalizado que se ejecuta antes del arranque de la shell
- __`key_bindings.fish` __ - Atajos de teclado personalizados donde puede utilizar el comando `bind` de manera libre
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
#### Configurando variables en `init.fish`
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
Uno de los usos más comunes utilizados en `init.fish` es la definición de variables. Seguramente, para variables que necesitan estar disponible en cualquier
sesión de la shell. Para conseguir esto, es necesario definirlas de manera global. Por ejemplo:
2019-10-02 17:24:29 +02:00
```fish
2019-10-02 21:50:18 +02:00
# Los desarrolladore de Golang quizás necesitan esto
2019-10-02 17:24:29 +02:00
set -xg GOPATH $HOME/gocode
2019-10-02 21:50:18 +02:00
# En cambio los desarrolladores de Python
2019-10-02 17:24:29 +02:00
set -xg PYTHONDONTWRITEBYTECODE 1
```
2019-10-02 21:50:18 +02:00
#### Acerca de bundle
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
Cada vez que un paquete/tema es instalado o eliminado, el archivo `bundle` es actualizado. También puedes editarlo manualmente y después ejecutar `omf
install` para tomar en cuenta los cambios realizados. Por favor tenga en cuenta que mientras que los paquetes/temas añadidos a _bundle_ son automáticamente
instalados, un paquete/tema eliminado de _bundle_ no es eliminado de la instalación del usuario.
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
#### Versiones antiguas de fish
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
En fish 2.2, no existe el directorio `conf.d` , así que el código de inicio tiene que ser ubicado en el archivo de configuración de fish (`~/.config/fish/config.fish` ).
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
Es altamente recomendado que los comandos personalizados de inicio estén en el archivo `init.fish` en vez de en `~/.config/fish/config.fish` , ya que esto le
permite mantener todo el directorio `$OMF_CONFIG` bajo un servicio de control de versiones.
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
Si necesita ejecutar comandos de inicio que sean ejecutados *antes* de que Oh My Fish comience a cargar complementos, ubiquelos en `before.init.fish` . Si no
está seguro, normalmente es mejor poner las cosas en `init.fish` .
2019-10-02 17:24:29 +02:00
2019-10-02 21:50:18 +02:00
## Creando paquetes
2019-10-02 17:24:29 +02:00
2019-10-02 22:07:22 +02:00
Oh My Fish utiliza una avanzada y bien definida arquitectura de desarrollo de complementos, incluyendo _hooks_ de inicialización/instalación, carga
automática de funciones. [Ver la documentación de paquetes ](Packages.md ) para más detalles.
2019-10-02 17:24:29 +02:00
[fishshell]: http://fishshell.com
2019-10-02 21:50:18 +02:00
[colaboradores]: https://github.com/oh-my-fish/oh-my-fish/graphs/contributors
2019-10-02 17:24:29 +02:00
[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
2019-10-02 21:50:18 +02:00
[publicaciones]: https://github.com/oh-my-fish/oh-my-fish/releases