มีวิธีการรับ keybindings ใน powershell ตามที่คุณต้องการใน bash หรือ zsh ด้วยคำสั่งเช่น
set -o vi
มีวิธีการรับ keybindings ใน powershell ตามที่คุณต้องการใน bash หรือ zsh ด้วยคำสั่งเช่น
set -o vi
คำตอบ:
วันนี้คุณมีสองตัวเลือก ด้วยคอนโซลเริ่มต้นคุณสามารถเรียกใช้ 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 เพื่ออัปเดตการจัดส่ง (ติดตั้งด้วยตนเอง)
โมดูล 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
ฉันจะไม่สาบานเลยว่าไม่มีคุณสมบัติที่ไม่มีเอกสารของ Powershell ที่อนุญาตสิ่งนี้ แต่เท่าที่ฉันรู้คำตอบคือไม่ อย่างน้อยฉันไม่เคยเห็นอะไรเลยในเอกสารของ Powershell เพื่อแนะนำว่าเป็นไปได้
จูเนียร์
ในขณะที่มันเกิดขึ้นคุณสามารถโหลด PowerShell เน้นไวยากรณ์ใน VIM มันคือสิ่งที่ฉันใช้สำหรับการพัฒนาสคริปต์
http://www.vim.org/scripts/script.php?script_id=1327
แม้ว่ามันจะไม่ได้อยู่ในเชลล์ แต่ก็มีประโยชน์สำหรับการสร้างสคริปต์ที่ยาวขึ้น ฉันมีหน้าต่างหนึ่งใน VIM และมีพรอมต์ PowerShell ในหน้าต่างอื่น ฉันคิดว่ามันมีประโยชน์มาก
ตอนนี้เครื่องยนต์ powershell มีตะขอที่จะทำให้มันค่อนข้างตรงไปตรงมา แต่ฉันยังไม่รู้จักใครที่เคยทำมาก่อน
โครงการ PSReadln มีโหมด emacs ฉุกเฉินแม้ว่าจะอยู่ในช่วงวัยเด็ก การเพิ่มโหมด vi ใน PSReadln จะเป็นสิ่งที่ชัดเจนที่ต้องทำ แต่ฉันไม่มีเวลาอุทิศ