General
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Oh My Posh construye tu prompt usando bloques (como piezas de Lego) que contienen uno o más segmentos.
Una configuración muy simple podría verse así. El formato predeterminado es json, pero también soportamos toml y yaml.
Existe un esquema disponible que se mantiene actualizado y ayuda con autocompletado y validación de la configuración.
Existen varios temas disponibles que son básicamente configuraciones predefinidas. Puedes usarlos tal cual, o como punto de partida para crear tu propia configuración.
- json
- yaml
- toml
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"final_space": true,
"version": 4,
"blocks": [
{
"type": "prompt",
"alignment": "left",
"segments": [
{
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#61AFEF",
"options": {
"style": "folder"
}
}
]
}
]
}
# yaml-language-server: $schema=https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
final_space: true
version: 4
blocks:
- type: prompt
alignment: left
segments:
- type: path
style: powerline
powerline_symbol: ""
foreground: "#ffffff"
background: "#61AFEF"
options:
style: folder
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
final_space = true
version = 4
[[blocks]]
type = "prompt"
alignment = "left"
[[blocks.segments]]
type = "path"
style = "powerline"
powerline_symbol = ""
foreground = "#ffffff"
background = "#61AFEF"
[blocks.segments.options]
style = "folder"
Con esta configuración, se renderiza un único segmento powerline que muestra el nombre de la carpeta actual.
Para establecer esta configuración junto con un ejecutable de Oh My Posh, usa el flag --config para
indicar la ruta a un archivo que contenga el código anterior. El flag --shell universal se usa para imprimir el prompt sin
caracteres de escape, permitiendo verlo como aparecería dentro de una función de prompt de tu shell.
El siguiente comando no persistirá la configuración en tu shell, solo imprimirá el prompt en tu terminal. Si quieres usar tu propia configuración permanentemente, ajusta la configuración del prompt para usar tu configuración personalizada.
oh-my-posh print primary --config sample.json --shell uni
Si todo va según lo planeado, deberías ver el prompt impreso en la línea inferior. Si ves muchos cuadros con signos de interrogación, configura tu terminal para usar una fuente compatible antes de continuar.
El flag --config puede aceptar tanto rutas locales como archivos de configuración alojados remotamente.
Por ejemplo, la siguiente es una invocación válida de --config:
--config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json'
Configuraciones
| Name | Type | Default | Description |
|---|---|---|---|
final_space | boolean | when true adds a space at the end of the prompt | |
pwd | string | notify terminal of current working directory, values can be osc99, osc7 or osc51 depending on your terminal. Supports templates | |
terminal_background | string | color - terminal background color, set to your terminal's background color when you notice black elements in Windows Terminal or the Visual Studio Code integrated terminal | |
accent_color | string | color - accent color, used as a fallback when the accent color is not supported | |
var | map[string]any | config variables to use in templates. Can be any value | |
shell_integration | boolean | false | enable shell integration using FinalTerm's OSC sequences. Works in bash, cmd (Clink v1.14.25+), fish, powershell and zsh |
enable_cursor_positioning | boolean | false | enable fetching the cursor position in bash and zsh to allow automatic hiding of leading newlines when at the top of the shell |
patch_pwsh_bleed | boolean | false | patch a PowerShell bug where the background colors bleed into the next line at the end of the buffer (can be removed when this is merged) |
upgrade | Upgrade | enable auto upgrade or the upgrade notice. See Upgrade | |
iterm_features | []string | false | enable iTerm2 specific features:
|
maps | Maps | a list of custom text mappings | |
async | boolean | false | load the prompt async. Will either load the standard prompt, or allow you to start typing right away. Supported for pwsh, powershell, zsh, bash and fish |
version | int | 4 | the config version, currently at 4 |
extends | string | the configuration to extend from |
Mapas
| Name | Type | Description |
|---|---|---|
user_name | object | text replacement mapping for user names |
host_name | object | text replacement mapping for host names |
shell_name | object | text replacement mapping for shell names. This modifies the .Shell global property. |
- json
- yaml
- toml
{
"maps": {
"user_name": {
"jan": "🚀",
"root": "⚡"
},
"host_name": {
"laptop123": "work"
}
}
}
maps:
user_name:
jan: 🚀
root: ⚡
host_name:
laptop123: work
[maps.user_name]
jan = "🚀"
root = "⚡"
[maps.host_name]
laptop123 = "work"
Extensión
La clave extends permite extender una configuración existente. Esto es útil cuando quieres construir sobre una configuración base sin
duplicar todos los ajustes, como con un tema. El valor debe ser una ruta a otro archivo de configuración, que puede ser local o remoto.
La sustitución de valores se hace repitiendo la clave en la nueva configuración. Por ejemplo, si quieres cambiar el accent_color en una configuración base,
puedes hacerlo especificando la clave accent_color en tu nueva configuración. El nuevo valor sobrescribirá el de la configuración base.
Para sobrescribir segmentos y bloques, especifica el bloque usando el mismo type y alignment que la configuración base. Luego puedes añadir o modificar segmentos
dentro de ese bloque. Los segmentos se emparejan por su alias o type, permitiendo añadir nuevos segmentos o modificar existentes sin afectar el resto.
Para casos más avanzados, puedes especificar el índice del block o segment a sobrescribir. Esto permite modificar blocks o segments en
posiciones específicas de la configuración. Ten en cuenta que el índice es 1-based, por lo que el primer block o segment tiene índice 1.
Validación con JSON Schema
Como se mencionó, las configuraciones de Oh My Posh pueden usar JSON Schema para validar su contenido. Las configuraciones deben incluir un enlace al documento de esquema externo que define la estructura y contenido adecuados. Si tu editor está configurado para usar JSON Schema, comparará tu configuración con este documento y mostrará advertencias por discrepancias.
Por ejemplo, dado este código:
...
"segments": [
{
"type": "an_invalid_entry",
"template": "{{ if gt .Code 0 }}\uf134{{ end }}",
}
]
...
Se generarán advertencias para type, ya que an_invalid_entry no está en los valores aceptados, y también para el ítem completo del segmento (entre {}), porque falta la clave obligatoria style. Aprovecha estas advertencias, ignorarlas es bajo tu propio riesgo.
Formatos Aceptados
Oh My Posh admite tres formatos de archivo para configuraciones: json, yaml y toml.
Existen varios convertidores para transformar entre estos formatos, aunque no son perfectos y requerirán ajustes manuales. Cabe destacar que la implementación del esquema para json se define así:
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
}
Mientras que para yaml:
# yaml-language-server: $schema=https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
Los convertidores no detectarán este cambio, por lo que deberás ajustarlo manualmente.