Menggunakan prediktor di PSReadLine

PSReadLine 2.1.0 memperkenalkan fitur Predictive IntelliSense . Predictive IntelliSense memberikan saran untuk perintah lengkap berdasarkan item dari riwayat PSReadLine Anda. PSReadLine 2.2.2 memperluas kekuatan Predictive IntelliSense dengan menambahkan dukungan untuk modul plug-in yang menggunakan logika tingkat lanjut untuk memberikan saran untuk perintah lengkap. Versi terbaru, PSReadLine 2.2.6, memungkinkan prediksi secara default.

Menggunakan IntelliSense Prediktif

Saat Predictive IntelliSense diaktifkan, saran prediksi muncul sebagai teks berwarna mengikuti kursor pengguna. Saran dari Predictive IntelliSense membantu pengguna powerShell baru dan berpengalaman menemukan, mengedit, dan menjalankan perintah penuh berdasarkan prediksi yang cocok. Saran dapat berasal dari riwayat pengguna dan plugin khusus domain tambahan.

Inline view of a prediction

Gambar sebelumnya menunjukkan default InlineView saran. Menekan tombol RightArrow menerima saran sebaris. Setelah menerima saran, Anda dapat mengedit baris perintah sebelum menekan Enter untuk menjalankan perintah.

PSReadLine juga menawarkan ListView presentasi saran.

List view of predictions

Saat dalam tampilan daftar, Anda bisa menggunakan tombol panah untuk menggulir saran yang tersedia. Tampilan daftar juga memperlihatkan sumber prediksi.

PSReadLine default ke InlineView. Anda dapat beralih antara InlineView dan ListView dengan menekan tombol F2 . Anda juga dapat menggunakan parameter PredictionViewStyle untuk Set-PSReadLineOption mengubah tampilan.

Mengelola IntelliSense Prediktif

Untuk menggunakan Predictive IntelliSense, Anda harus menginstal versi PSReadLine yang lebih baru. Untuk hasil terbaik, instal versi terbaru modul.

Untuk menginstal PSReadLine menggunakan PowerShellGet:

Install-Module -Name PSReadLine

Atau instal menggunakan modul PowerShellGet v3 baru:

Install-PSResource -Name PSReadLine

PSReadLine dapat diinstal di Windows PowerShell 5.1 atau di PowerShell 7 atau yang lebih tinggi. Untuk menggunakan plug-in prediktor, Anda harus berjalan di PowerShell 7.2 atau yang lebih tinggi. Windows PowerShell 5.1 dapat menggunakan prediktor berbasis riwayat.

Di PSReadLine 2.2.6, Predictive IntelliSense diaktifkan secara default tergantung pada kondisi berikut:

  • Jika Terminal Virtual (VT) didukung dan PSReadLine berjalan di PowerShell 7.2 atau yang lebih tinggi, PredictionSource diatur ke HistoryAndPlugin
  • Jika VT didukung dan PSReadLine yang berjalan di PowerShell yang lebih lama dari 7.2, PredictionSource diatur ke History
  • Jika VT tidak didukung, PredictionSource diatur ke None.

Gunakan perintah berikut untuk melihat pengaturan saat ini:

Get-PSReadLineOption | Select-Object -Property PredictionSource

Anda dapat mengubah sumber prediksi menggunakan Set-PSReadLineOption cmdlet dengan parameter PredictionSource . PredictionSource dapat diatur ke:

  • None
  • History
  • Plugin
  • HistoryAndPlugin

Catatan

Prediksi berbasis riwayat berasal dari riwayat yang dikelola oleh PSReadLine. Riwayat tersebut lebih komprehensif daripada riwayat berbasis sesi yang dapat Anda lihat menggunakan Get-History. Untuk informasi selengkapnya, lihat Bagian riwayat perintah about_PSReadLine.

Mengatur warna prediksi

Secara default, prediksi muncul dalam teks abu-abu terang pada baris yang sama yang dititik pengguna. Untuk mendukung kebutuhan aksesibilitas, Anda dapat menyesuaikan warna prediksi. Warna didefinisikan menggunakan urutan escape ANSI. Anda dapat menggunakan $PSStyle untuk menyusun urutan escape ANSI.

Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }

Atau Anda dapat membuat sendiri. Warna teks prediksi abu-abu muda default dapat dipulihkan menggunakan urutan escape ANSI berikut.

Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }

Untuk informasi selengkapnya tentang mengatur warna prediksi dan pengaturan PSReadLine lainnya, lihat Set-PSReadLineOption.

Mengubah keybinding

PSReadLine berisi fungsi untuk menavigasi dan menerima prediksi. Misalnya:

  • AcceptSuggestion - Terima saran sebaris saat ini
  • AcceptNextSuggestionWord - Terima kata berikutnya dari saran sebaris
  • AcceptSuggestion dibangun dalam ForwardChar, yang terikat ke RightArrow secara default
  • AcceptNextSuggestionWorddibangun dalam fungsi ForwardWord, yang dapat terikat ke Ctrl+f

Anda dapat menggunakan Set-PSReadLineKeyHandler cmdlet untuk mengubah pengikatan kunci.

Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

Dengan pengikatan ini, menekan Ctrl+f menerima kata berikutnya dari saran sebaris ketika kursor berada di akhir baris pengeditan saat ini. Anda dapat mengikat kunci lain ke AcceptSuggestion dan AcceptNextSuggestionWord untuk fungsionalitas serupa. Misalnya, Anda mungkin ingin membuat RightArrow menerima kata berikutnya dari saran sebaris, alih-alih seluruh baris saran.

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

Menggunakan plug-in prediktor lainnya

Modul Az.Tools.Predictor adalah plug-in pertama untuk Predictive IntelliSense. Ini menggunakan Pembelajaran Mesin untuk memprediksi perintah Azure PowerShell apa yang ingin Anda jalankan dan parameter yang ingin Anda gunakan. Untuk informasi selengkapnya dan instruksi penginstalan, lihat Mengumumkan Ketersediaan Umum Az.Tools.Predictor.

Modul CompletionPredictor menambahkan pengalaman IntelliSense untuk apa pun yang dapat diselesaikan tab di PowerShell. Dengan PSReadLine diatur ke InlineView, Anda mendapatkan pengalaman penyelesaian tab normal. Ketika Anda beralih ke ListView, Anda mendapatkan pengalaman IntelliSense. Anda dapat menginstal modul CompletionPredictor dari Galeri PowerShell.

PowerShell IntelliSense using the CompletionPredictor

Seperti yang disebutkan sebelumnya, ListView menunjukkan kepada Anda sumber prediksi. Jika Anda memiliki beberapa plug-in yang diinstal, prediksi dikelompokkan menurut sumber dengan Riwayat yang tercantum terlebih dahulu diikuti oleh setiap plug-in dalam urutan pemuatannya.

Membuat modul prediktor Anda sendiri

Anda dapat menulis prediktor Anda sendiri menggunakan C# untuk membuat modul PowerShell yang dikompilasi. Modul harus mengimplementasikan antarmuka System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Antarmuka ini mendeklarasikan metode yang digunakan untuk mengkueri hasil prediksi dan memberikan umpan balik.

Untuk informasi selengkapnya, lihat Cara membuat prediktor baris perintah.