Tastenkombinationen für Windows Powershell und Vim

Tastenkombinationen für Windows Powershell und Vim

Gibt es eine Möglichkeit, Vim-Tastenkombinationen in Powershell zu erhalten, wie Sie es in Bash oder Zsh mit einem Befehl wie

set -o vi

Antwort1

Heutzutage haben Sie mehrere 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 Folgendes in Ihr PowerShell-Profil ein:

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

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

Ich würde außerdem empfehlen, Ihrer Datei Folgendes hinzuzufügen, vimrcdamit Shell-Befehle mit PowerShell selbst ausgeführt werden.

set shell=powershell
set shellcmdflag=-command

Ansonsten ist die einzige ISE, die derzeit einen Vi-Modus unterstützt,PSReadLinejetzt verfügbar auf derPS-Galerie

Es gibtVerwendungshinweiseaber kurz gesagt müssen Sie für den VI-Modus die folgende Zeile zu Ihrem ISE-Profil hinzufügen.

Set-PSReadlineOption -EditMode vi

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

Antwort2

Das PSReadline-Modul bietet dies.

Die Installation ist einfach, ich bin mir nicht sicher, welche Voraussetzungen erforderlich sind, aber ich denke, dass für diese Methode mindestens Windows 10 erforderlich ist. Wenn Sie OneGet nicht haben oder sich nicht sicher sind, können Sie den Anweisungen unter folgen.PSReadline

So installieren Sie PSReadline ohne Rechteerhöhung

Install-Module PsReadline -Scope CurrentUser

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

Test-Path $PROFILE

Wenn Sie keins erstellen

New-Item -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 einfach neu.

& $PROFILE

Antwort3

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

JR

Antwort4

Die Powershell-Engine bietet jetzt die Hooks, um dies relativ unkompliziert zu machen, aber ich kenne niemanden, der das bisher gemacht hat.

Das PSReadln-Projekt verfügt über einen Emergenz-Emacs-Modus, der sich jedoch noch in der Anfangsphase befindet. Das Hinzufügen eines VI-Modus in PSReadln wäre naheliegend, aber ich habe keine Zeit, mich damit zu befassen.

verwandte Informationen