.. | ||
FAQ.md | ||
Packages.md | ||
README.md |
El framework de Fishshell
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.
Índice de contenidos
Instalación
Puede comenzar de inmediate con la configuración predeterminada ejecutando lo siguiente en su terminal:
curl -L https://get.oh-my.fish | fish
Esto descargará el script instalador y comenzará la instalación. De manera alternativa, puede descargar el instalador y personalizar su instalación:
curl -L https://get.oh-my.fish > install
fish install --path=~/.local/share/omf --config=~/.config/omf
Puede verificar la integridad del instalador descargado comprobando el script con esta suma de verificación:
434264c56e3a7bb74733d9b293d72403c404e0a0bded3e632433d391d302504e install
También puede insatalar Oh My Fish mediante Git o con un archivo tarball descargado desde la [página de publicaciones][releases]:
# 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
Ejecute install --help
para obtener una lista completa de opciones de instalación que puede personalizar.
Requisitos
- fish shell, versión 2.2 o posterior
- git, versión 1.9.5 o posterior
Problemas conocidos
- 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'sdefault
ofrece un prompt a la derecha, así que es necesario utilizar untema alternativo hasta que se publique una solción.
(ver #541)
Comenzando
Oh My Fish incluye una pequeña utilidad omf
para extraer e instalar nuevos paquetes y temas.
omf update
[omf]
[<paquete>...]
Actualiza Oh My Fish, todos los paquetes de los repositorios y todos los paquetes instalados.
- 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.
omf install
[<nombre>|<url>]
Instala uno o más paquetes.
- Puede instalar paquetes directamente con la URL mediante
omf install URL
- Cuando es ejecutado sin argumentos, instala paquetes perdios desde bundle.
omf repositories
[list|add|remove]
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 está siempre instalado y
disponible.
omf list
Lista los paquetes instalados.
omf theme
<tema>
Aplica un tema. Para listar los temas disponibles, escriba omf theme
. También puede previsualizar los temas disponibles antes de
instalarlos.
omf remove
<nombre>
Elimina un tema o paquete.
Los paquetes pueden utilizar hooks al desinstalarlos, así que una limpieza de recursos personalizado puede ejecutarse cuando se desinstalen. Ver
Desinstalar para más información.
omf reload
Vuelve a cargar Oh My Fish y todos los complementos utilizando exec
para reemplazar el proceso shell actual con uno nuevo.
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.
omf new plugin | theme
<nombre>
Crea un esqueleto para un nuevo complemento o tema.
Esto crea un nuevo directorio en
$OMF_CONFIG/{pkg | themes}/
con una plantilla.
omf search
-t|--theme / -p|--package
<nombre>
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
.
omf channel
Obtiene o cambia el canal de actualización.
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á.
omf doctor
Utilizar para diagnosticar un error antes de abrir un issue.
omf destroy
Desinstala Oh My Fish.
Avanzado
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.
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.
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
.
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
.
Inicio
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
posteriormente, que carga de manera automática los paquetes, temas y sus ficheros
personalizados de inicio.
Para más información puede consultar la sección de preguntas frecuentes FAQ.
Archivos de configuración (Dotfiles)
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:
theme
- El tema actualbundle
- Lista de los temas/paquetes actualmente instaladoschannel
- El canal desde el cual OMF descarga las actualizaciones (estable / dev)
Y puede crear o personalizar esos archivos especiales:
init.fish
- Script personalizado que se ejecuta después del arranque de la shellbefore.init.fish
- Script personalizado que se ejecuta antes del arranque de la shellkey_bindings.fish
- Atajos de teclado personalizados donde puede utilizar el comandobind
de manera libre
Configurando variables en init.fish
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:
# Los desarrolladore de Golang quizás necesitan esto
set -xg GOPATH $HOME/gocode
# En cambio los desarrolladores de Python
set -xg PYTHONDONTWRITEBYTECODE 1
Acerca de bundle
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.
Versiones antiguas de fish
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
).
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.
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
.
Creando paquetes
Oh My Fish utiliza una avanzade 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 para más detalles.