Windows Powershell Vim Keybindings


17

มีวิธีการรับ keybindings ใน powershell ตามที่คุณต้องการใน bash หรือ zsh ด้วยคำสั่งเช่น

set -o vi

โพสต์คำตอบที่เป็นไปได้ที่นี่: stackoverflow.com/questions/28067589/powershell-ise-vim/ ...... (Powershell ISE + vim) แต่มีวิธีแก้ไขเพิ่มเติม
eli

คำตอบ:


11

วันนี้คุณมีสองตัวเลือก ด้วยคอนโซลเริ่มต้นคุณสามารถเรียกใช้ Vim บน Windows (คุณอาจมีอยู่แล้วหากคุณมี git หรือเครื่องมืออื่น ๆ ติดตั้งอยู่) ในการทำให้การรวมราบรื่นยิ่งขึ้นในโปรไฟล์ PowerShell ของคุณ:

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

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

ฉันขอแนะนำให้เพิ่มสิ่งต่อไปนี้ในvimrcไฟล์ของคุณเพื่อให้สามารถประมวลผลคำสั่งเชลล์ด้วย PowerShell ได้

set shell=powershell
set shellcmdflag=-command

มิฉะนั้น ISE เดียวที่สนับสนุนโหมด Vi ในขณะนี้คือPSReadLine ที่มีให้ในPS Gallery

มีหมายเหตุการใช้งานแต่โดยย่อสำหรับโหมด VI คุณต้องเพิ่มบรรทัดต่อไปนี้ในโปรไฟล์ ISE ของคุณ

Set-PSReadlineOption -EditMode vi

โปรดทราบว่ามีการเพิ่มการสนับสนุน Vi ใน 1.2 แต่ 1.1 มาพร้อมกับ Windows 10 คุณจะต้องใช้พารามิเตอร์ -force เพื่ออัปเดตการจัดส่ง (ติดตั้งด้วยตนเอง)


1
การสนับสนุนสำหรับโหมด vi ถูกเพิ่มผ่าน PsReadline ใน PowerShell 5 ดู @ คำตอบด้านล่าง ...
ลูคัส

มีวิธีที่จะเปลี่ยนเคอร์เซอร์เพื่อให้คุณสามารถดูว่าคุณอยู่ในโหมดปกติหรือโหมดแทรก?
bradgonesurfing

ฉันไม่คิดอย่างนั้น แต่อีกเบต้าสำหรับรุ่น 2 ออกเมื่อสัปดาห์ที่แล้ว ดังนั้นคุณอาจจะลองว่าและถ้ามันไม่ได้มีฉันพยายามขอให้ดูแลมันอาจกระตุ้นให้พวกเขาให้การสนับสนุน (และยังคงพัฒนาทั่วไป)
ไฟแนนเชี่

9

โมดูล PSReadline ให้สิ่งนี้

ติดตั้งง่ายไม่แน่ใจว่ามีข้อกำหนดอะไร แต่ฉันคิดว่าอย่างน้อย windows 10 สำหรับวิธีการนี้มีให้ หากคุณไม่มี OneGet หรือไม่แน่ใจว่าคุณสามารถทำตามคำแนะนำได้ที่PSReadline

ในการติดตั้ง PSReadline โดยไม่ต้องยกระดับสิทธิ์

Install-Module PsReadline -Scope CurrentUser

ตรวจสอบว่าคุณมีโปรไฟล์ PowerShell

Test-Path $PROFILE

หากคุณไม่ได้สร้าง

New-File -Type File $PROFILE

เปิด $ PROFILE ใน ISE

ise $PROFILE

เพิ่มบรรทัดนี้

Set-PSReadlineOption -EditMode vi

โหลด $ PROFILE ใหม่หรือเพียงแค่เริ่ม PowerShell

& $PROFILE

1
มันเป็นรายการใหม่ - ไฟล์ประเภท
อเล็กซ์

1

ฉันจะไม่สาบานเลยว่าไม่มีคุณสมบัติที่ไม่มีเอกสารของ Powershell ที่อนุญาตสิ่งนี้ แต่เท่าที่ฉันรู้คำตอบคือไม่ อย่างน้อยฉันไม่เคยเห็นอะไรเลยในเอกสารของ Powershell เพื่อแนะนำว่าเป็นไปได้

จูเนียร์


0

ในขณะที่มันเกิดขึ้นคุณสามารถโหลด PowerShell เน้นไวยากรณ์ใน VIM มันคือสิ่งที่ฉันใช้สำหรับการพัฒนาสคริปต์

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

แม้ว่ามันจะไม่ได้อยู่ในเชลล์ แต่ก็มีประโยชน์สำหรับการสร้างสคริปต์ที่ยาวขึ้น ฉันมีหน้าต่างหนึ่งใน VIM และมีพรอมต์ PowerShell ในหน้าต่างอื่น ฉันคิดว่ามันมีประโยชน์มาก


0

ตอนนี้เครื่องยนต์ powershell มีตะขอที่จะทำให้มันค่อนข้างตรงไปตรงมา แต่ฉันยังไม่รู้จักใครที่เคยทำมาก่อน

โครงการ PSReadln มีโหมด emacs ฉุกเฉินแม้ว่าจะอยู่ในช่วงวัยเด็ก การเพิ่มโหมด vi ใน PSReadln จะเป็นสิ่งที่ชัดเจนที่ต้องทำ แต่ฉันไม่มีเวลาอุทิศ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.