Novedades #2
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
¡Nunca imaginé hacer la segunda parte en solo una semana, pero aquí estamos de nuevo!
Características
Interfaz CLI (también #2)
En la publicación anterior destacaba algunos cambios en la interfaz CLI. Resulta que pude simplificarlo aún más. Como Oh My Posh es una utilidad para generar prompts, el comando prompt no tiene sentido ya que está implícito. Se ha eliminado, aunque seguirá funcionando para no romper la funcionalidad existente al actualizar.
Init
La siguiente inicialización:
oh-my-posh prompt init pwsh | Invoke-Expression
ahora se convierte en:
oh-my-posh init pwsh | Invoke-Expression
Debug
Para depurar Oh My Posh, simplemente usa el comando debug. Es lo suficientemente inteligente para conocer tu configuración,
así que no necesitas especificar la opción --config.
oh-my-posh debug
Fish shell
Ya soportábamos fish shell desde hace tiempo, pero mejoramos el juego. Comencé a usar fish como mi shell principal, así que obviamente no podía quedarse atrás. Te sugiero que también lo pruebes, es una experiencia muy agradable.
Pero bien, ¿qué cambió? Ahora soportamos lo siguiente de forma nativa:
Parece que aún no hay soporte para un prompt secundario en fish, cuando esté disponible podremos añadirlo fácilmente.
Para disfrutar todo esto, actualiza a la última versión e inicializa fish añadiendo esta línea en ~/.config/fish/config.fish:
oh-my-posh init fish | source
Prompt transitorio
Hablando del prompt transitorio, aprendió algunos trucos nuevos. Primero, ahora puedes usar la propiedad .Code para trabajar con el código de error del último comando (si existe) en la plantilla. Esto se puede usar, por ejemplo, para colorear el prompt transitorio de manera diferente cuando el último comando falló. Esto implicó que también necesitábamos soporte para plantillas de color, ya que esto aún no era posible. No digas más: ahora tenemos un prompt transitorio que soporta plantillas de color.
"transient_prompt": {
"background": "p:yellow",
"background_templates": [
"{{ if gt .Code 0 }}p:red{{ end }}"
],
"foreground": "p:black",
"foreground_templates": [
"{{ if gt .Code 0 }}p:white{{ end }}"
],
"template": "<background,transparent>\ue0b6</> {{ .Folder }} <background,transparent>\ue0b0</><,transparent> </>"
}
Lo que produce este resultado:

Config versión 2
¿Recuerdan que hicimos una migración a la configuración versión 1 a principios de año? Pues ahora hicimos una migración a la versión 2. Al analizar la arquitectura de Oh My Posh, los diferentes prompts (transitorio, secundario, etc.) se estaban acercando al modelo utilizado por los segmentos. La única diferencia era que template no era una propiedad, sino un campo de esos prompts. Como todos los segmentos ahora tienen soporte para plantillas, fue obvio alinear ambos modelos y hacer una migración a la configuración versión 2 para que nadie tuviera que hacer trabajo manual en el proceso.
La siguiente definición de segmento:
{
"background": "#9A348E",
"foreground": "#ffffff",
"leading_diamond": "\ue0b6",
"properties": {
"template": "{{ .UserName }} "
},
"style": "diamond",
"type": "session"
}
Ahora se migrará a esto para la versión 2:
{
"background": "#9A348E",
"foreground": "#ffffff",
"leading_diamond": "\ue0b6",
"style": "diamond",
"template": "{{ .UserName }} ",
"type": "session"
}
Go 1.18
Aunque no impacta directamente al usuario final, quizás te interese saber que Oh My Posh ahora usa go 1.18 por defecto. Esto trae mejoras evidentes en el lenguaje y algunas funciones nuevas para experimentar. Lo más destacado son los genéricos, pero aún no podemos aprovecharlos ya que no están soportados para métodos, que es nuestro caso de uso principal.
Sin embargo, es bueno mantenerse actualizado. Si notas algún comportamiento extraño, ¡avísanos!
Eso es todo por esta semana, ¡nos vemos en la próxima! 🤞🏻
¡Sigan manteniendo ese prompt elegante, todos!