Wat is er nieuw #3
Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
Vaarwel, oude vriend!
PowerShell-module
In het begin hadden we alleen de PowerShell Module. Het is de oorsprong van Oh My Posh en is altijd beschikbaar gebleven, zelfs na de overstap naar Go. Door die evolutie zijn zijn voordelen echter sterk verminderd. Sterker nog, het introduceerde zelfs extra obstakels onderweg.
Sinds maart biedt de module geen nieuwe functionaliteit meer en toont een waarschuwingsbericht. Bekijk de migratiepagina voor een handleiding om van de module over te stappen naar andere installatiemethoden. Het kost maar een minuutje.
Weggeefactie
Een paar weken geleden startte ik een weggeefactie om het 6-jarig bestaan van Oh My Posh te vieren. Maar toen ging ik met vakantie en maakte ik de winnaar niet bekend. Dus zonder verder uitstel: gefeliciteerd aan @samerde die door een willekeurige online kiezer werd geselecteerd en de weggeefactie heeft gewonnen!
Functionaliteiten
Het is alweer even geleden, dus houd je vast 😅
PowerShell UTF-8
In het begin dwong Oh My Posh PowerShell om UTF-8 te gebruiken vanwege problemen met lettertypen en paden.
Maar dat bleek eigenlijk niet nodig. Er is een nieuwe aanroepmethode geïntroduceerd die
de noodzaak wegneemt om dit shell-breed in te stellen en ongewenste neveneffecten voorkomt. Dit kan echter nog steeds paden breken als
je --config-pad bijvoorbeeld een niet-ASCII teken bevat. Je kunt niet alles hebben, denk ik. Stel in dat geval
de shell in op UTF-8 binnen het bereik van het initialiseren van Oh My Posh.
$previousOutputEncoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [Text.Encoding]::UTF8
try {
oh-my-posh init pwsh --config ~/custom.omp.json | Invoke-Expression
} finally {
[Console]::OutputEncoding = $previousOutputEncoding
}
Nu shell
Als je Nu shell nog niet kent: het is de nieuwkomer. Oh My Posh ondersteunt het nu net zoals we elke andere populaire shell ondersteunen (bash, zsh, fish, etc.). Dit betekent dat we functionaliteit kunnen blijven toevoegen zonder dat gebruikers actie nodig hebben, behalve Oh My Posh updaten.
Accordeon
Wilde je ooit een powerline-segment dat ingeklapt wordt wanneer het uitgeschakeld is? Nu kan het!
Gebruik de accordion-stijl om een segment inklapbaar weer te geven.

Project
Het blijft maar groeien. Het project-segment ondersteunt nu de volgende projectdefinities:
Shell
Als je met meerdere shell-versies werkt, is dit voor jou. Je kunt nu de .Version-eigenschap
in het shell-segment gebruiken om onderscheid te maken tussen versies:
"template": " in {{ .Name }} {{ .Version }} "
Git
Het git-segment heeft een nieuw trucje geleerd om je leven makkelijker (of sneller) te maken. Voorheen hadden we de
modus voor niet-gevolgde bestanden hardcoded naar normal. Maar bij grotere repo's kan dat behoorlijk omslachtig worden, dus nu kun je
dit per repo overschrijven.
"untracked_modes": {
"/Users/user/Projects/oh-my-posh/": "no"
}
De beschikbare opties staan in de git-documentatie, gebruik ze zoals je wilt!
Sjablooneigenschappen over segmenten heen
Wacht, wat? Ja, je leest het goed. Oh My Posh ondersteunt nu eigenschappen voor sjabloonoverschrijding tussen segmenten.
Dit betekent dat je eigenschappen van het ene segment kunt gebruiken in het sjabloon van een ander segment. Hoe? Oh My Posh
maakt de eigenschap .Segments beschikbaar, die alle eigenschappen van segmenten in een map bevat. Om gegevens van een ander segment
te gebruiken, voeg je {{ .Segments.Segment }} toe aan je sjabloon, waarbij .Segment de naam is van het segment dat je wilt gebruiken,
met een hoofdletter aan het begin.
Wil je bijvoorbeeld de eigenschap .UpstreamGone van het git-segment gebruiken in het exit-segment? Dat kan zo:
"template": " {{ if .Segments.Git.UpstreamGone }}\uf7d3{{ else if gt .Code 0 }}\uf00d{{ else }}\uf00c{{ end }} "
Let op: het segment waarnaar je verwijst moet wel in je configuratie staan. Het bovenstaande voorbeeld werkt niet als je configuratie geen git-segment bevat, omdat Oh My Posh alleen eigenschappen invult wanneer dat nodig is.
Overige aanpassingen
-
oh-my-posh debugmeet nu de uitvoertijd correct en kan opstartlogica registreren -
Taalsegmenten kunnen nu onderscheid maken tussen bestanden en mappen
-
Het python-segment ondersteunt nu pyenv
.python-version-bestanden -
Het
init-commando heeft een nieuwe optie--strictdie het uitvoerbare bestand niet meer resolveert -
Het battery-segment kan nu alle relevante statussen weergeven op macOS
-
Het dotnet-segment ondersteunt nu
.slnf-bestanden -
Nieuw iterm-segment voor iTerm shell-integratiepromptmarkeringen
-
Het memory-segment kan nu beschikbaar geheugen weergeven
-
Het path-segment heeft nu een
.Writable-eigenschap die aangeeft of de huidige gebruiker naar de huidige map kan schrijven
Oplossingen
-
Het git-segment kan nu omgaan met repo's met
--separate-git-dir -
Hyperlinks worden correct gemeten (zorgt voor correcte uitlijning van de prompt)
-
Prompt-escape-sequenties worden correct verwerkt (voorkomt visuele bijwerkingen)
-
Spotify werkt nu correct op Windows voor niet-Engelse systemen
-
Parallelle logica voor snelheid veroorzaakt geen willekeurige crashes meer op Windows
-
Logica voor upstream-gone in git was defect en is hersteld
-
PSReadLine in PowerShell ontvangt nu het juiste aantal promptregels (
Set-PSReadlineOption -ExtraPromptLineCount). Dit lost vreemd gedrag op bij gebruik van een tijdelijke prompt bij multiline-configuraties -
De winget-installatie voegt
PATH-vermeldingen nu correct toe, ongeacht de installatiemodus
Dat was het voor nu, tot de volgende keer 🤞🏻
Houd die prompt stijlvol, iedereen!