PowerShell'de bash'ın Ctrl-r eşdeğeri


19

Herkes çok yararlı olan bash [Ctrl-r](ve [Ctrl-o]) ' nin geriye doğru komut arama özelliğine sahip olmanın bir yolunu biliyor mu?

C-rdaha güçlü bir arrow uptarih manipülasyonudur, emacs gibi C-rdaha önce girdiğiniz komutların içinde geriye doğru arama yapar. Daha sonra C-obu komutu yürütür ve hemen ondan sonraki komutu sonraki satıra yerleştirir. Böylece geçirilen komut dizilerini verimli bir şekilde tekrarlayabilirsiniz. Ayrıca oturum geçmişine değil kaydedilmiş bir geçmişe bakar. ( ~/.bash_historydosya). Hangi sonsuz faydalıdır.

Teşekkürler.

ps: bonus olarak, döngülerle çalışmayan sekme tamamlama da harika olurdu.


Kopyalamak istediğiniz ctrl O ne yapıyor? Daha fazla bilgi bize her zaman iyi ...
Austin T Fransız

Evet, soruyu düzenledi :)
v.oddou

2
Bu özelliğin desteklendiğine inanmıyorum. PowerShell 3, PSConsoleHostReadlinekullanışlı olabilecek bir kancaya sahiptir. Başlamak için iyi bir yer , bu kancayı kullanan PSReadLine kullanmak olacaktır . PSReadLine, ctrl-o'yu desteklemez, ancak ctrl-r'yi destekler (sözde - benim için çalışmadı). Noel'de ctrl-o uygulamasına bir göz atabilirim, çünkü kulağa faydalı geliyor.
dangph

2
Ah, PSReadLine, bu benim cevabım gibi görünüyor, bir cevap olarak göndermelisin. Co yok ama en önemlisi Cr var. Ayrıca bonus istediğim sekme tamamlama tweak vardır.
v.oddou

2
PSReadline yazarı burada - @ v.oddou - Ctrl + K Emacs modunda KillLine'a bağlı olmalıdır. Ctrl + R, önce bir şeyler yazmadan veya yazmadan çalışmalıdır. Ctrl + O eklemekten mutluluk duyuyorum - github'da bir sorun açmaktan çekinmeyin.
Jason Shirk

Yanıtlar:


15

Komutun ilk harflerini yazın ve tuşuna basın F8.

Alternatif olarak tuşuna basıp F7ilk harfleri yazabilirsiniz.

Daha fazla detay: http://technet.microsoft.com/en-us/magazine/ff678293.aspx


F7 hiçbir şey yapmaz ...
Daniel K.

Daha fazla bilgi verebilir misiniz? Belki başkaları için yararlı olabilir. Hangi Powershell sürümü ve hangi Windows sürümü? Varsayılan Powershell oldukça sınırlıdır. Daha iyi UX elde etmek için MobaXterm veya ConEmuMaximus 5'i kullanmak daha iyidir
georgik

@CatBoss F7 cmd'de çalışır
phuclv

1
@ LưuVĩnhPhúc o zaman cevap söylemek gerekir, çünkü soru Powershell hakkında ....
Daniel K.

Aşağıdaki cevaba bakın - powershell 5+ kullanıyorsanız F8 ile zamanınızı boşa harcamayın
Nicholas DiPiazza

6

Windows PowerShell 5'i içeren WMF 5.0 RTM , şimdi bash'ın aynı ters komut arama özelliğini desteklemektedir CTRL+R. Bunu Windows 10 Anniversary Edition'da kullanıyorum ve bash kas hafızam çok mutlu.

Destek aslında PSReadLine PowerShell modülünden geliyor. Gördüğüm soru bazı yorumlarda belirtildi. İyi olan şey, PSReadLine'ın şimdi temel WMF 5.0 kurulumuna dahil olduğu görülüyor , en azından Windows 10'da.

PowerShell 3 veya üstünü çalıştırıyorsanız, PSReadLine'i de yükleyebilir ve geçmiş arama özelliğini alabilirsiniz.

Not:CTRL+R Başka bir şeyle eşleştirildiği gibi ISE'de bunun nasıl çalışacağını bulamadım (Kod Panosunu Göster / Gizle).


4

Geçmişinizi değiştirmek için geçmiş cmdlet'lerini kullanabilir, bunları şu komutla listeleyebilirsiniz:

Get-Command *-history

Geçmişinizi aramak bu şekilde yapılır, kısaltmak için bir işlev yapmaktan çekinmeyin:

Get-history | Select-String "command"

function f ($Name) { Get-history | Select-String $name }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.