पावरशेल में बैश के Ctrl-r के बराबर


19

क्या किसी को पिछड़े कमांड खोज फीचर को बैश [Ctrl-r](और [Ctrl-o]) करने का तरीका पता है, जो कि विंडोज़ पॉवरशेल में इतना उपयोगी है?

C-rएक अधिक शक्तिशाली arrow upइतिहास हेरफेर है, यह एमएसीएस की तरह C-rहै कि यह आपके द्वारा पहले दर्ज किए गए कमांड के अंदर पिछड़े को खोजता है। फिर C-oउस कमांड को निष्पादित करता है और उसके तुरंत बाद अगले कमांड को लाइन पर रखता है। ताकि आप पारित श्रृंखला को कुशलता से दोहरा सकें। इसके अलावा यह एक बचा हुआ इतिहास है, सत्र इतिहास नहीं। ( ~/.bash_historyफ़ाइल)। जो असीम रूप से उपयोगी है।

धन्यवाद।

पीएस: एक बोनस के रूप में टैब जो कि चक्र द्वारा काम नहीं कर रहा है, यह भी बहुत ही अच्छा होगा।


Ctrl O क्या करता है जिसे आप दोहराना चाहते हैं? अधिक जानकारी हमें हमेशा अच्छी
लगी

हां, प्रश्न संपादित किया :)
v.oddou

2
मैं नहीं मानता कि यह सुविधा समर्थित है। PowerShell 3 में एक हुक होता है जिसे PSConsoleHostReadlineउपयोगी कहा जा सकता है। शुरू करने के लिए एक अच्छी जगह PSReadLine का उपयोग करना होगा , जो उस हुक का उपयोग करता है। PSReadLine ctrl-o का समर्थन नहीं करता है, लेकिन यह ctrl-r का समर्थन करता है (माना जाता है - यह मेरे लिए काम नहीं करता था)। क्रिसमस पर ctrl-o को लागू करने पर मेरी नज़र हो सकती है क्योंकि यह उपयोगी लगता है।
डॉल्फिन

2
आह, PSReadLine, यह मेरे जवाब की तरह लगता है, आपको इसे उत्तर के रूप में पोस्ट करना चाहिए। इसमें Co नहीं है लेकिन इसमें Cr है जो सबसे महत्वपूर्ण है। इसमें टैब पूरा करने वाला ट्वीक भी है जो मुझे बोनस में चाहिए था।
v.oddou

2
यहाँ PSReadline लेखक - @ v.oddou - Ctrl + K को Emacs मोड में KillLine के लिए बाध्य किया जाना चाहिए। Ctrl + R को पहले कुछ लिखने के लिए w / या w / o काम करना चाहिए। मुझे Ctrl + O जोड़ने में खुशी है - जीथब पर एक मुद्दा खोलने के लिए स्वतंत्र महसूस करें।
जेसन शिरक

जवाबों:


15

कमांड के पहले अक्षर टाइप करें और दबाएँ F8

वैकल्पिक रूप से आप F7पहले अक्षर दबा सकते हैं और टाइप कर सकते हैं ।

अधिक जानकारी: http://technet.microsoft.com/en-us/magazine/ff678293.aspx


F7 कुछ नहीं करता ...
डैनियल के।

क्या आप अधिक जानकारी प्रदान कर सकते हैं? हो सकता है कि यह दूसरों के लिए उपयोगी हो। Powershell का कौन सा संस्करण और Windows का कौन सा संस्करण? डिफ़ॉल्ट पॉवर्सशेल काफी सीमित है। बेहतर UX पाने के लिए MobaXterm या ConEmuMaximus 5 का उपयोग करना बेहतर है
georgik

@CatBoss F7 cmd में काम करता है
phuclv

1
@ LưuV LnhPhúc तो जवाब में ऐसा कहने की ज़रूरत है, क्योंकि सवाल पॉवर्सशेल के बारे में है ....
डैनियल के।

नीचे दिए गए उत्तर को देखें - यदि आप
शक्तियां

6

WMF 5.0 RTM , जिसमें विंडोज पॉवरशेल 5 शामिल है , अब बैश के समान रिवर्स कमांड सर्च फीचर का समर्थन करता है CTRL+R। मैं विंडोज 10 वर्षगांठ संस्करण में इसका उपयोग कर रहा हूं, और मेरी बैश मांसपेशी स्मृति बहुत खुश है।

समर्थन वास्तव में PowerShell मॉड्यूल PSReadLine से आता है, जो मुझे लगता है कि प्रश्न के कुछ टिप्पणियों में उल्लेख किया गया था। अच्छी बात यह है कि PSReadLine अब आधार WMF 5.0 इंस्टॉलेशन में शामिल होना प्रतीत होता है , कम से कम यह विंडोज़ 10 पर है।

यदि आप PowerShell 3 या बाद में चला रहे हैं, तो आप PSReadLine को भी स्थापित कर सकते हैं और इतिहास खोज सुविधा प्राप्त कर सकते हैं।

नोट: मुझे यह पता नहीं चला है कि ISE में इस काम को कैसे किया जाता CTRL+Rहै क्योंकि इसे किसी और चीज़ के लिए मैप किया जाता है (स्क्रिप्ट पेन छिपाएँ)।


4

अपने इतिहास में हेरफेर करने के लिए आप इतिहास cmdlets का उपयोग कर सकते हैं, उन्हें इस आदेश द्वारा सूचीबद्ध करें:

Get-Command *-history

अपने इतिहास की खोज इस तरह से की जाती है, इसे छोटा करने के लिए स्वतंत्र महसूस करें:

Get-history | Select-String "command"

function f ($Name) { Get-history | Select-String $name }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.