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.

Lex
quelle
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
Streicher
quelle
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

John Rennie
quelle
0

In diesem Fall können Sie PowerShell-Syntaxhervorhebungen in VIM laden. Es ist das, was ich für die Skriptentwicklung benutze.

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

Es befindet sich zwar nicht in der Shell selbst, eignet sich jedoch zum Erstellen längerer Skripts. Ich habe ein Fenster in VIM und eine PowerShell-Eingabeaufforderung in einem anderen. Ich finde es sehr praktisch .

sysadmin1138
quelle
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.

user253235
quelle