Ini adalah perjalanan yang luar biasa untuk oh myposh, tetapi waktunya telah meningkat menjadi takik. Pengembang saat ini tidak lagi berpegang pada satu shell/bahasa, mereka semua adalah alat yang kami gunakan untuk menyelesaikan masalah tertentu. Hal yang sama perlu diterapkan pada oh my mewah. Saatnya menyesuaikan dengan filosofi itu.
Itulah mengapa versi OH My Posh ini memasuki mode pemeliharaan sementara saya bekerja keras untuk mengeluarkan V3 dari pintu. Mengingat bahwa V3 sama sekali berbeda di bawah kap, itu di -host secara terpisah untuk saat ini. Dari perspektif pengguna, itu harus memberikan pengalaman yang sama di luar kotak, dengan keuntungan tambahan bahwa tema khusus adalah kelas satu, tidak ada warga negara.
Install-Module oh - my - posh - Scope CurrentUser - AllowPrereleaseDokumentasi juga tersedia yang seharusnya memberikan pengalaman yang lebih baik daripada yang dimiliki ReadMe ini selama beberapa tahun terakhir :-)
Jika Anda seorang pengembang yang ingin menambahkan fungsionalitas, silakan lihat V3 untuk melihat apakah sudah ada di sana. Jika tidak, jangan ragu untuk membuat masalah atau PR pada V3, saya hanya akan menerima perbaikan bug di V2 mulai sekarang .
Mesin tema untuk PowerShell yang terinspirasi oleh pekerjaan yang dilakukan oleh Chris Benti pada PS-Config dan OH-My-Zsh pada OSX dan Linux (karenanya namanya).
Informasi lebih lanjut tentang mengapa saya membuat ini dapat ditemukan di blog saya.

Fitur:
Anda harus menggunakan host konsol modern seperti Conemu, Alacritty, Terminus, Hyper, Feentterminal, atau Terminal Windows Resmi untuk memiliki pengalaman terminal yang hebat di Windows.
Ada beberapa cara untuk memperoleh terminal Windows - dari Microsoft Store, Github Repo, atau metode Commandline di bawah ini:
Via Winget (Manajer Paket Resmi untuk Windows):
winget install -- id = Microsoft.WindowsTerminal - eVia Chocolateey:
choco install microsoft - windows - terminalVia scoop:
scoop install windows - terminal Font yang saya gunakan adalah font powerline, ada repositori hebat yang berisi mereka. Saya menggunakan Meslo LG M Regular for Powerline Nerd Font dalam pengaturan conemu saya bersama -sama dengan warna khusus. Anda dapat menemukan tema saya di sini.
Jika Anda melihat mesin terbang aneh setelah memasang font pilihan, pastikan mesin terbang tersedia (mungkin mereka memiliki lokasi yang berbeda dalam font, jika demikian, sesuaikan ikon $ThemeSettings yang benar). Jika ternyata karakter yang Anda inginkan tidak didukung, pilih font yang berbeda.
Anda perlu menggunakan galeri PowerShell untuk menginstal oh-my-pos.
Instal Posh-Git dan Oh-My-Pos:
Install-Module posh - git - Scope CurrentUser
Install-Module oh - my - posh - Scope CurrentUserAktifkan prompt:
# Start the default settings
Set-Prompt
# Alternatively set the desired theme:
Set-Theme Agnoster Jika Anda menjalankan ini di PS Core, pastikan untuk juga menginstal versi 2.0.0-beta1 dari PSReadLine
Install-Module - Name PSReadLine - AllowPrerelease - Scope CurrentUser - Force - SkipPublisherCheckUntuk mengaktifkan mesin Edit Profil PowerShell Anda:
if ( ! ( Test-Path - Path $PROFILE )) { New-Item - Type File - Path $PROFILE - Force }
notepad $PROFILETambahkan baris berikut ke profil PowerShell Anda:
Import-Module posh - git
Import-Module oh - my - posh
Set-Theme ParadoxPerintah terakhir menetapkan tema untuk konsol. Periksa daftar tema yang tersedia di bawah ini.
Sebutkan konfigurasi saat ini:
$ThemeSettings 
Anda dapat mengubah pengaturan dengan memanipulasi $ThemeSettings . Contoh ini memungkinkan Anda untuk mengubah simbol cabang menggunakan karakter unicode:
$ThemeSettings .GitSymbols.BranchSymbol = [ char ]::ConvertFromUtf32( 0xE0A0 )Juga jangan lupa pengaturan mewah-git itu sendiri (aktifkan indikasi simpanan misalnya):
$GitPromptSettings Sembunyikan username@domain Anda saat tidak dalam mesin virtual untuk tema Agnoster, Fish, Honukai, Paradox dan Sorin:
$DefaultUser = ' yourUsernameHere ' Set-Theme : Atur tema dari direktori tema. Jika tidak ada kecocokan yang ditemukan, itu tidak akan diubah. AutoComplete tersedia untuk daftar dan melengkapi tema yang tersedia.
Set-Theme paradox Show-ThemeColors : Tampilkan warna yang digunakan oleh tema

Show-Colors : Warna tampilan yang dikonfigurasi di CONEMU

















Jika Anda ingin membuat tema ~DocumentsWindowsPowerShellPoshThemes itu dapat dilakukan dengan mudah dengan menambahkan file mytheme.psm1 di folder yang ditunjukkan dalam $ThemeSettings.MyThemesLocation
Satu-satunya fungsi yang diperlukan adalah Write-Theme . Anda dapat menggunakan templat berikut untuk memulai:
# requires -Version 2 -Modules posh -git
function Write-Theme
{
param (
[ bool ]
$lastCommandFailed ,
[ string ]
$with
)
# enter your prompt building logic here
}
$sl = $ global :ThemeSettings # local settings Jangan ragu untuk menggunakan fungsi helper umum Get-VCSStatus , Get-VcsInfo , Get-FormattedRootLocation , Get-ShortPath , Set-CursorForRightBlockWrite , Set-CursorUp , Set-Newline atau tambahkan logika Anda sendiri sepenuhnya.
Untuk menguji output di CONEMU, cukup beralih ke tema Anda:
Set-Theme mythemeJika Anda ingin memasukkan tema Anda di oh-my-pos, kirimkan saya PR dan saya akan mencoba memberikan umpan balik ASAP.
Selamat Tema!
Karena tampaknya mendapatkan akses ke informasi tumpukan saat menggunakan PushD/POPD adalah semacam misi yang mustahil dari dalam suatu tema, Anda dapat menggunakan solusi yang diusulkan oleh Jonathan Leech-Pepin. Di $PROFILE Anda, tambahkan variabel yang akan bertindak sebagai pointer yang dilingkupi dengan benar untuk mengambil konteks tumpukan:
$getStackContext = { Get-Location - Stack}Berikutnya, di tema khusus Anda, akses informasi yang ingin Anda tampilkan:
$stackCount = ( & $getStackContext ).count Ini disebabkan oleh fungsionalitas ConsoleTitle . Seperti yang dijelaskan oleh Andrew Stanton-Nurse itu terkait dengan bagaimana terminal bekerja dengan kode OSC. Perbaikannya adalah untuk menonaktifkan fungsionalitas ConsoleTitle ketika di ITERM2 dengan menambahkan cuplikan berikut ke $PROFILE Anda.
if ( $ env: LC_TERMINAL -eq " iTerm2 " ) {
$ThemeSettings .Options.ConsoleTitle = $false
}