Aracılığıyla paylaş


PSReadLine'da tahmincileri kullanma

PSReadLine 2.1.0 , Tahmine Dayalı IntelliSense özelliğini kullanıma sunar. Tahmine dayalı IntelliSense, PSReadLine geçmişinizdeki öğeleri temel alan tam komutlar için öneriler sağlar. PSReadLine 2.2.2, tam komut önerileri sağlamak üzere gelişmiş mantık kullanan eklenti modülleri için destek ekleyerek Tahmine Dayalı IntelliSense'in gücünü genişletir. En son sürüm olan PSReadLine 2.2.6, varsayılan olarak tahminleri etkinleştirir.

Tahmin Edici IntelliSense kullanımı

Tahmine Dayalı IntelliSense etkinleştirildiğinde, tahmin önerisi kullanıcının imlecinin ardından renkli metin olarak görünür. Tahmine Dayalı IntelliSense'in önerileri, yeni ve deneyimli PowerShell kullanıcılarının eşleşen tahminlere göre tam komutları bulmasına, düzenlemesine ve yürütmesine yardımcı olur. Öneriler kullanıcının geçmişinden ve ek etki alanına özgü eklentilerden gelebilir.

Tahminin satır içi görünümü

Önceki görüntülerde önerinin varsayılanı InlineView gösterilir. RightArrow tuşuna basmak satır içi öneriyi kabul eder. Öneriyi kabul ettikten sonra, komutu çalıştırmak için Enter tuşuna basmadan önce komut satırını düzenleyebilirsiniz.

PSReadLine ayrıca önerilerin bir ListView sunumunu da sunar.

Tahminlerin liste görünümü

Liste görünümündeyken, kullanılabilir önerilerde gezinmek için ok tuşlarını kullanabilirsiniz. Liste görünümü ayrıca tahminin kaynağını da gösterir.

PSReadLine varsayılan olarak InlineView kullanılır. InlineView tuşuna basarak ListView ve arasında geçiş yapabilirsiniz. Görünümünü değiştirmek için predictionviewstyle parametresini Set-PSReadLineOption de kullanabilirsiniz.

Tahmine Dayalı IntelliSense'i Yönetme

Tahmine Dayalı IntelliSense'i kullanmak için PSReadLine'ın daha yeni bir sürümü yüklü olmalıdır. En iyi sonuçlar için modülün en son sürümünü yükleyin.

Microsoft.PowerShell.PSResourceGet modülünü kullanarak PSReadLine'ı yükleyin:

Install-PSResource -Name PSReadLine

PSReadLine , Windows PowerShell 5.1 veya PowerShell 7 veya üzeri sürümlerde yüklenebilir. Predictor eklentilerini kullanmak için PowerShell 7.2 veya sonraki bir sürümde çalışıyor olmanız gerekir. Windows PowerShell 5.1, geçmiş tabanlı tahmin aracını kullanabilir.

PSReadLine 2.2.6'da Tahmine Dayalı IntelliSense, aşağıdaki koşullara bağlı olarak varsayılan olarak etkindir:

  • Sanal Terminal (VT) desteği varsa ve PowerShell 7.2 veya daha yüksek bir sürümde PSReadLine çalışıyorsa, PredictionSourceHistoryAndPlugin olarak ayarlanır.
  • VT destekleniyorsa ve PowerShell'de 7.2'den eski psreadline çalışıyorsa, PredictionSourceHistory olarak ayarlanır.
  • VT desteklenmiyorsa PredictionSource olarak Noneayarlanır.

Geçerli ayarı görmek için aşağıdaki komutu kullanın:

Get-PSReadLineOption | Select-Object -Property PredictionSource

Set-PSReadLineOption cmdlet'ini PredictionSource parametresiyle kullanarak tahmin kaynağını değiştirebilirsiniz. PredictionSource şu şekilde ayarlanabilir:

  • None
  • History
  • Plugin
  • HistoryAndPlugin

Uyarı

Geçmiş tabanlı tahminler , PSReadLine tarafından tutulan geçmişe dayanır. Bu geçmiş, kullanarak Get-Historygörebileceğiniz oturum tabanlı geçmişe göre daha kapsamlıdır. Daha fazla bilgi için about_PSReadLineKomut geçmişi bölümüne bakın.

Tahmin rengini ayarlama

Varsayılan olarak, tahminler kullanıcının yazmakta olduğu satırda açık gri metin olarak görünür. Erişilebilirlik gereksinimlerini desteklemek için tahmin rengini özelleştirebilirsiniz. Renkler ANSI kaçış dizileri kullanılarak tanımlanır. ANSI kaçış dizileri oluşturmak için kullanabilirsiniz $PSStyle .

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

İsterseniz kendiniz de oluşturabilirsiniz. Varsayılan açık gri tahmin metin rengi aşağıdaki ANSI kaçış dizisi kullanılarak geri yüklenebilir.

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

Tahmin rengini ve diğer PSReadLine ayarlarını ayarlama hakkında daha fazla bilgi için bkz. Set-PSReadLineOption.

Anahtar bağlamaları değiştirme

PSReadLine, tahminlerde gezinmek ve tahminleri kabul etmek için işlevler içerir. Örneğin:

  • AcceptSuggestion - Geçerli satır içi öneriyi kabul etme
  • AcceptNextSuggestionWord - Satır içi önerinin bir sonraki sözcüğünü kabul edin
  • AcceptSuggestion, ForwardChar içinde, varsayılan olarak RightArrow'a bağlı olarak oluşturulur
  • AcceptNextSuggestionWord, ForwardWord+ bağlanabilen işlevi içinde oluşturulur

Anahtar bağlamalarını Set-PSReadLineKeyHandler değiştirmek için cmdlet'ini kullanabilirsiniz.

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

Bu bağlamada , Ctrl+f tuşuna basıldığında, imleç geçerli düzenleme satırının sonundayken satır içi önerinin bir sonraki sözcüğü kabul edilir. Benzer işlevler için diğer tuşları AcceptSuggestion ve AcceptNextSuggestionWord'e bağlayabilirsiniz. Örneğin, RightArrow'un öneri satırının tamamı yerine satır içi önerinin bir sonraki sözcüğünü kabul etmelerini isteyebilirsiniz.

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

Diğer tahmin aracı eklentilerini kullanma

Az.Tools.Predictor modülü, Tahmine Dayalı IntelliSense'in ilk eklentisiydi. Hangi Azure PowerShell komutunu çalıştırmak istediğinizi ve kullanmak istediğiniz parametreleri tahmin etmek için Machine Learning'i kullanır. Daha fazla bilgi ve yükleme yönergeleri için bkz. Az.Tools.Predictor'ın Genel Kullanılabilirliğini Duyurma.

CompletionPredictor modülü, PowerShell'de sekmeyle tamamlanabilir her şey için bir IntelliSense deneyimi ekler. PSReadLine olarak InlineViewayarlandığında, normal sekme tamamlama deneyimini elde edersiniz. öğesine ListViewgeçiş yaptığınızda IntelliSense deneyimini elde edersiniz. CompletionPredictor modülünü PowerShell Galerisi'nden yükleyebilirsiniz.

CompletionPredictor ile PowerShell IntelliSense

Daha önce belirtildiği gibi, ListView tahminin kaynağını gösterir. Yüklü birden çok eklentiniz varsa, tahminler kaynağa göre gruplandırılır ve geçmiş ilk sırada listelenir ve ardından her eklenti yüklendikleri sırayla listelenir.

Kendi tahmin modülünüzü oluşturma

Derlenmiş bir PowerShell modülü oluşturmak için C# kullanarak kendi tahmin aracınızı yazabilirsiniz. Modülün System.Management.Automation.Subsystem.Prediction.ICommandPredictor arabirimini uygulaması gerekir. Bu arabirim, tahmin sonuçlarını sorgulamak ve geri bildirim sağlamak için kullanılan yöntemleri bildirir.

Daha fazla bilgi için bkz. Komut satırı tahmincisi oluşturma.