Bagikan melalui


Menggunakan penyelesaian tab di shell

PowerShell menyediakan penyelesaian input untuk memberikan petunjuk, mengaktifkan penemuan, dan mempercepat entri input. Nama perintah, nama parameter, nilai argumen, dan jalur file semuanya dapat diselesaikan dengan menekan tombol Tab .

Kunci Tab adalah pengikatan kunci default di Windows. PSReadLine juga menyediakan fungsi yang MenuComplete diikatkan ke Ctrl+Spasi. Fungsi MenuComplete menampilkan daftar pelengkapan yang sesuai di bawah baris perintah.

Keybinding dapat diubah menggunakan cmdlet PSReadLine atau aplikasi yang menghosting PowerShell. Keybinding dapat berbeda pada platform non-Windows. Untuk informasi selengkapnya, lihat about_PSReadLine_Functions.

Fitur penyelesaian tab bawaan

PowerShell memungkinkan penyelesaian tab untuk banyak aspek pengalaman baris perintah.

Pelengkapan Nama Berkas

Untuk mengisi nama file atau jalur dari pilihan yang tersedia secara otomatis, ketik bagian dari nama dan tekan tombol Tab. PowerShell secara otomatis memperluas nama ke kecocokan pertama yang ditemukannya. Menekan tombol Tab lagi menelusuri semua pilihan yang tersedia dengan setiap penekanan tombol.

Pelengkapan nama perintah dan parameter

Perluasan tab nama cmdlet sedikit berbeda. Untuk menggunakan ekspansi tab pada nama cmdlet, ketik seluruh bagian pertama nama (kata kerja) dan tanda hubung yang mengikutinya. Anda dapat mengisi lebih banyak nama untuk mendapatkan kecocokan parsial. Misalnya, jika Anda mengetik get-co lalu menekan tombol Tab , PowerShell secara otomatis memperluas apa yang Anda ketikkan ke Get-Command cmdlet (perhatikan bahwa itu juga mengubah kasus huruf ke bentuk standarnya). Jika Anda menekan tombol Tab lagi, PowerShell menggantinya dengan cmdlet pencocokan berikutnya, Get-Content. Penyelesaian tab juga berfungsi untuk menyelesaikan alias PowerShell dan program eksekusi asli.

Grafik berikut menunjukkan contoh penyelesaian tab dan menu.

Contoh penyelesaian tab dan menu

Peningkatan penyelesaian tab lainnya

Setiap versi baru PowerShell mencakup penyempurnaan penyelesaian tab yang memperbaiki bug dan meningkatkan kegunaan.

PowerShell 7.0

  • Penyelesaian tab menyelesaikan penugasan variabel yang merupakan enum atau yang dibatasi jenis.
  • Penyelesaian tab memperluas cmdlet dan fungsi yang disingkat. Misalnya, i-psdf<tab> mengembalikan Import-PowerShellDataFile

PowerShell 7.2

  • Memperbaiki penyelesaian tab untuk artikel yang tidak dilokalkan about*
  • Memperbaiki splatting yang diperlakukan sebagai parameter posisi dalam penyelesaian
  • Tambahkan pelengkapan untuk kata kunci Bantuan berbasis Komentar
  • Menyediakan pelengkapan untuk #Requires pernyataan
  • Tambahkan penyelesaian tab untuk parameter ViewFormat-* cmdlets
  • Tambahkan dukungan untuk pelengkap argumen berbasis kelas

PowerShell 7.3

  • Memperbaiki fitur penyelesaian tab pada blok skrip yang ditentukan untuk ValidateScriptAttribute
  • Menambahkan penyelesaian tab untuk label perulangan setelah break dan continue
  • Meningkatkan penyelesaian Hashtable dalam beberapa skenario
    • Percikan parameter
    • Parameter argumen untuk Invoke-CimMethod
    • Parameter FilterHashtable untuk Get-WinEvent
    • Parameter properti untuk cmdlet CIM
    • Menghapus duplikat dari skenario penyelesaian anggota
  • Mendukung garis miring dalam penyelesaian jalur berbagi jaringan (jalur UNC)
  • Meningkatkan penyelesaian otomatis anggota
  • Prioritaskan ValidateSet penyelesaian kode dibandingkan dengan enum untuk parameter
  • Menambahkan dukungan inferensi jenis untuk metode generik dengan parameter jenis
  • Meningkatkan inferensi jenis dan penyelesaian kode
    • Memungkinkan metode ditampilkan dalam hasil penyelesaian untuk ForEach-Object -MemberName
    • Mencegah penyelesaian pada ekspresi yang mengembalikan kekosongan seperti ([void]"")
    • Memungkinkan konstruktor Kelas nondefault muncul ketika penyelesaian kelas didasarkan pada AST

Cara lain untuk meningkatkan penyelesaian tab parameter perintah

Ekspansi tab bawaan dikontrol oleh fungsi internal TabExpansion atau TabExpansion2. Anda dapat membuat fungsi atau modul yang menggantikan perilaku default fungsi-fungsi ini. Anda dapat menemukan contoh di Galeri PowerShell dengan mencari kata kunci TabExpansion .

Menggunakan atribut ValidateSet atau ArgumentCompletions dengan parameter

Atribut ini ArgumentCompletions memungkinkan Anda menambahkan nilai penyelesaian tab ke parameter tertentu. Atribut ArgumentCompletions ini mirip ValidateSetdengan . Kedua atribut mengambil daftar nilai yang akan disajikan saat pengguna menekan tab setelah nama parameter. Namun, tidak seperti ValidateSet, nilai tidak divalidasi.

Untuk informasi selengkapnya, lihat:

Menggunakan atribut ArgumentCompleter atau Register-ArgumentCompleter dengan parameter

Pelengkap argumen adalah blok skrip atau fungsi yang menyediakan penyelesaian tab dinamis untuk nilai parameter.

Atribut ArgumentCompleter memungkinkan Anda mendaftarkan fungsi yang menyediakan nilai-nilai untuk penyelesaian tab bagi parameter. Fungsi penyelesaian argumen harus tersedia untuk fungsi yang berisi parameter dengan ArgumentCompleter atribut . Biasanya, fungsi didefinisikan dalam skrip atau modul yang sama. Untuk informasi selengkapnya, lihat ArgumentCompleter.

Register-ArgumentCompleter Cmdlet mendaftarkan blok skrip sebagai fungsi penyelesaian argumen pada waktu proses untuk perintah apa pun yang Anda tentukan. Menggunakan Register-ArgumentCompleter memungkinkan Anda menentukan pengisi argumen di luar skrip atau modul atau untuk perintah asli. Untuk informasi selengkapnya, lihat Register-ArgumentCompleter.

IntelliSense Prediktif 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. 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, lihat Menggunakan prediktor.