विंडोज पॉवर्सशेल विम कीबाइंडिंग


17

क्या आप पावरबश में vim कीबाइंडिंग प्राप्त करने का एक तरीका है जैसा कि आप कमांड जैसे bash या zsh में करेंगे

set -o vi

यहां एक संभावित उत्तर पोस्ट किया गया: stackoverflow.com/questions/28067589/powershell-ise-vim/… (पॉवर्सशेल ISE ​​+ विम), लेकिन एक वर्कअराउंड की
अधिकता

जवाबों:


11

इन दिनों आपके पास कुछ विकल्प हैं। डिफ़ॉल्ट कंसोल के साथ आप बस विंडोज पर विम चला सकते हैं (यदि आपके पास गिट या अन्य उपकरण स्थापित हैं तो आपके पास पहले से ही यह हो सकता है)। एकीकरण को अपने PowerShell प्रोफ़ाइल में अधिक सहज स्थान बनाने के लिए:

$VIMEXEPATH    = "c:\<location>\vim.exe"

Set-Alias vim  $VIMEXEPATH
Set-Alias vi   $VIMEXEPATH

मैं आपकी vimrcफ़ाइल में निम्न जोड़ने की भी सलाह दूंगा ताकि यह PowerShell के साथ शेल कमांड को निष्पादित करे।

set shell=powershell
set shellcmdflag=-command

अन्यथा केवल आईएसई जो अभी वी मोड का समर्थन करता है वह PSReadLine अब PS गैलरी पर उपलब्ध है

हैं उपयोग नोट्स लेकिन छठी मोड के लिए संक्षेप में आप अपने आईएसई प्रोफ़ाइल में निम्नलिखित पंक्ति जोड़ने की जरूरत है।

Set-PSReadlineOption -EditMode vi

ध्यान दें कि वीआई समर्थन 1.2 में जोड़ा गया था, लेकिन 1.1 विंडोज 10. के साथ भेज दिया गया था। आपको शिपिंग (उर्फ मैन्युअल रूप से इंस्टॉल) संस्करण को अपडेट करने के लिए -force पैरामीटर का उपयोग करने की आवश्यकता होगी।


1
पावर मोड में PsReadline के माध्यम से vi मोड के लिए समर्थन जोड़ा गया था। नीचे देखें @ उत्तर ...
लुकास

क्या कर्सर को बदलने का कोई तरीका है ताकि आप देख सकें कि क्या आप सामान्य या आवेषण मोड में हैं?
ब्रैडगोनसर्फिंग

मुझे ऐसा नहीं लगता, हालांकि संस्करण 2 के लिए एक और बीटा दूसरे सप्ताह जारी हुआ। तो आप यह कोशिश कर सकते हैं, और अगर यह नहीं है, तो मैं कोशिश करूंगा कि अनुरक्षकों से पूछें कि यह उन्हें समर्थन करने के लिए प्रेरित कर सकता है (और सामान्य रूप से विकास जारी रखें)
लेक्स

9

PSReadline मॉड्यूल यह प्रदान करता है।

स्थापित करने के लिए आसान नहीं है कि क्या आवश्यकताएँ हैं, लेकिन मुझे लगता है कि प्रदान की गई विधि के लिए कम से कम विंडोज़ 10। यदि आपके पास OneGet नहीं है या सुनिश्चित नहीं है कि आप PSReadline के निर्देशों का पालन कर सकते हैं

विशेषाधिकारों के बिना PSReadline स्थापित करना

Install-Module PsReadline -Scope CurrentUser

जाँचें कि आपके पास एक पॉवरशेल प्रोफाइल है

Test-Path $PROFILE

यदि आप एक नहीं बनाते हैं

New-File -Type File $PROFILE

ISE में $ PROFILE खोलें

ise $PROFILE

इस लाइन को जोड़ें

Set-PSReadlineOption -EditMode vi

$ प्रोफ़ाइल पुनः लोड करें या बस शक्तियाँ पुनः आरंभ करें

& $PROFILE

1
यह नई-आइटम-टाइप फ़ाइल है
एलेक्स

1

मैं कसम नहीं खाऊंगा कि पॉवरशेल का एक अनकम्फर्टेबल फीचर नहीं है जो इसे अनुमति देता है, लेकिन जहां तक ​​मुझे पता है इसका जवाब नहीं है। कम से कम मैंने पॉवरशेल डॉक्यूमेंटेशन में कभी भी ऐसा नहीं देखा कि यह संभव हो।

जे आर


0

जैसा कि होता है, आप VIM में PowerShell सिंटैक्स-हाइलाइटिंग लोड कर सकते हैं। यह मैं स्क्रिप्ट विकास के लिए उपयोग करता हूं।

http://www.vim.org/scripts/script.php?script_id=1327

हालांकि यह स्वयं शेल में नहीं है, यह लंबी स्क्रिप्ट बनाने के लिए काम करता है। मेरे पास VIM में एक विंडो है, और दूसरे में एक PowerShell प्रॉम्प्ट है। मुझे यह बहुत आसान लगता है


0

पॉवरशेल इंजन अब इसे अपेक्षाकृत सरल बनाने के लिए हुक प्रदान करता है, लेकिन मैं किसी को भी नहीं जानता, जिसने इसे अभी तक किया है।

PSReadln प्रोजेक्ट में एक एमर्जेंट एमएसीएस मोड है, हालांकि यह अपनी प्रारंभिक अवस्था में है। PSReadln में vi मोड जोड़ना स्पष्ट बात है, लेकिन मेरे पास इसे समर्पित करने का समय नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.