Ubah perilaku tab-complete Powershell untuk tidak memperluas jalur relatif ke yang absolut

1

Ketika saya menggunakan penyelesaian tab di Powershell untuk menyelesaikan jalur relatif Powershell mengubahnya menjadi jalur absolut. Sementara jalur absolut bekerja itu semakin menjengkelkan (membuat perintah saya sangat panjang dan membuat saya mengubah fokus saya ketika saya melengkapi otomatis). Apakah ada cara untuk mengubahnya agar tetap di jalur relatif saat tab selesai?

Herms
sumber

Jawaban:

2

Menyesuaikan Ekspansi Tab PowerShell

Anda dapat menyesuaikan ekspansi tab di PowerShell dengan mengganti fungsi "TabExpansion". Anda bisa mendapatkan konten fungsi saat ini dengan {{Get-Content function: TabExpansion}}. Fungsi ini harus mengembalikan semua hasil yang harus disajikan kepada pengguna.

Ada beberapa gotchas yang harus dihadapi.

Menerapkan Jalur Relatif

Fungsi TabExpansion default tidak melakukan ekspansi jalur, ini memungkinkan engine PowerShell melakukan ekspansi jalur, yang merupakan kemunduran terakhir yang mutlak. Jadi, Anda perlu menambahkan penanganan jalur ke apa yang datang dengan PowerShell.

Opsi yang Lebih Baik

Saya adalah kontributor untuk proyek PowerTab , yang merupakan implementasi kaya ekspansi tab di PowerShell. Ia menawarkan dukungan jalur relatif, serta banyak hal lainnya (nama kelas WMI, nama tipe .NET, pembagian, tanda tangan metode, dll.). Pekerjaan sudah akan dilakukan untuk Anda.

Mencoba Diri Sendiri

Jika Anda ingin mencoba menambahkan fitur yang satu ini ke kode default, Anda dapat memeriksa bagian akhir file ini, dimulai dengan komentar "## Penyempurnaan Sistem File":

http://powertab.codeplex.com/SourceControl/changeset/view/040492b7d2d1#TabExpansionCore.ps1

Ada sedikit kode spesifik PowerTab di blok itu, tetapi saya dapat membantu Anda jika Anda ingin mencoba.

JasonMArcher
sumber
Saya harus menggunakan Get-Content function:TabExpansion2.
anishpatel