Windows Powershell Vim-Tastenkombinationen


Antworten:


11

In diesen Tagen haben Sie ein paar Möglichkeiten. Mit der Standardkonsole können Sie Vim einfach unter Windows ausführen (möglicherweise haben Sie es bereits, wenn Sie git oder andere Tools installiert haben). Um die Integration nahtloser zu gestalten, fügen Sie dies in Ihr PowerShell-Profil ein:

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

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

Ich würde auch empfehlen, Folgendes zu Ihrer vimrcDatei hinzuzufügen, damit sie Shell-Befehle mit PowerShell selbst ausführt.

set shell=powershell
set shellcmdflag=-command

Ansonsten ist PSReadLine in der PS Gallery die einzige ISE, die derzeit einen Vi-Modus unterstützt

Es gibt Verwendungshinweise, aber für den VI-Modus müssen Sie die folgende Zeile zu Ihrem ISE-Profil hinzufügen.

Set-PSReadlineOption -EditMode vi

Beachten Sie, dass Vi-Unterstützung in Version 1.2 hinzugefügt wurde, 1.1 jedoch mit Windows 10 ausgeliefert wurde. Sie müssen den Parameter -force verwenden, um die Versandversion (auch manuell installiert) zu aktualisieren.


1
Unterstützung für den vi-Modus wurde über PsReadline in PowerShell 5 hinzugefügt. Siehe @strings-Antwort unten ...
Lucas

Gibt es eine Möglichkeit, den Cursor so zu ändern, dass Sie sehen können, ob Sie sich im normalen Modus oder im Einfügemodus befinden?
Bradgonesurfing

Ich glaube nicht, aber eine weitere Beta für Version 2 wurde in der letzten Woche veröffentlicht. Sie könnten es also versuchen, und wenn es nicht da ist, würde ich versuchen, die Betreuer zu fragen, ob es sie motivieren könnte, es zu unterstützen (und die Entwicklung im Allgemeinen fortzusetzen)
Lex

9

PSReadline-Modul bietet dies.

Die Installation ist einfach nicht sicher, was die Anforderungen sind, aber ich denke, mindestens Windows 10 für diese Methode zur Verfügung gestellt. Wenn Sie nicht über OneGet verfügen oder nicht sicher sind, können Sie die Anweisungen unter PSReadline befolgen

So installieren Sie PSReadline, ohne die Berechtigungen zu erhöhen

Install-Module PsReadline -Scope CurrentUser

Überprüfen Sie, ob Sie ein Powershell-Profil haben

Test-Path $PROFILE

Wenn Sie keine erstellen

New-File -Type File $PROFILE

Öffnen Sie $ PROFILE in ISE

ise $PROFILE

Fügen Sie diese Zeile hinzu

Set-PSReadlineOption -EditMode vi

Laden Sie $ PROFILE neu oder starten Sie Powershell neu

& $PROFILE

1
Es ist New-Item-Type-Datei
Alex

1

Ich würde nicht schwören, dass es in Powershell keine undokumentierte Funktion gibt, die dies zulässt, aber meines Wissens lautet die Antwort nein. Zumindest habe ich in der Powershell-Dokumentation noch nie etwas gesehen, was darauf hindeutet, dass dies möglich ist.

JR



0

Die Powershell-Engine bietet jetzt die Haken, um dies relativ unkompliziert zu machen, aber ich kenne niemanden, der es bisher getan hat.

Das PSReadln-Projekt verfügt über einen Emergant-Emacs-Modus, der sich jedoch noch in den Kinderschuhen befindet. Das Hinzufügen eines vi-Modus in PSReadln wäre die naheliegende Sache, aber ich habe keine Zeit, mich dem zu widmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.