Vim und Powershell
Zur Zeit beschäftige ich mich damit, die Powershell mit Open Source-Werkzeugen zu erweitern. Im ersten Versuch habe ich mit Hilfe der Poppler-Utils Text aus PDF-Dateien extrahiert und dafür ein Modul erstellt. Was der Powershell fehlt, ist ein leistungsfähiger Editor für die Kommandozeile. Hier kommt Vim ins Spiel, ein besonders unter Unix- und Gnu/Linux-Nerds beliebter Editor, der seit 1991 aktiv entwickelt wird und für viele weitere Betriebssysteme verfügbar ist, auch für Windows.
Um Vim auf den Windows-PC zu bringen, lädt man den Installer von der Vim-Homepage herunter und führt ihn aus. Wenn man Vim benutzen, aber nicht installieren will, kann man auch gVim aus den PortableApps nehmen. Leider fehlt im Paket die Konsolen-Version, die man aber einzeln als Win32 console executable von der Vim-Homepage herunterladen kann. Aus der Zip-Datei extrahiert man dann die ausführbare Datei vim.exe und kopiert sie nach gVimPortable\App\vim\vim73.
Damit Vim und Powershell sich kennenlernen, trägt man den Pfad zu Vim in die Profil-Datei der Powershell ein. Zum Öffnen der Profil-Datei gibt man innerhalb der Powershell zum Beispiel notepad $profile ein, und nimmt folgenden, leicht abgewandelt Code von Julian, wobei man die Variable $VIMPATH entsprechend anpassen muss, je nachdem, wo sich die Datei vim.exe auf dem System befindet:
$VIMPATH = "$env:Programfiles\Vim\vim73\vim.exe" Set-Alias vi $VIMPATH Set-Alias vim $VIMPATH # for editing your PowerShell profile Function Edit-Profile { vim $profile } # for editing your Vim settings Function Edit-Vimrc { vim $home\_vimrc } |
Nun fehlt noch die Konfigurationsdatei vimrc. Da ich in der Profil-Datei eine Funktion zum editieren der vimrc definiert habe, kann ich, spätestens in der nächsten neuen Powershell-Sitzung das Cmdlet Edit-Vimrc nutzen, sowie Edit-Profile, um die Profil-Datei in Zukunft zu bearbeiten. Es gibt eine Menge Möglichkeiten, Vim mit Hilfe der vimrc zu erweitern. In dem Beispiel ist der Shell-Befehl mit der Powershell verknüpft und das Syntax-Highlighting aktiviert.
set shell=powershell set shellcmdflag=-command syntax on |
Die ersten beiden Zeilen sorgen dafür, dass wenn man den Befehl :shell in Vim eingibt, eine Powershell-Sitzung gestartet wird. Etwas kürzer ist der Befehl :sh. Man kann auch ganze Befehle an die Powershell übergeben und anschließend zu Vim zurückkehren, z.B. mit :!dir | more.
Damit das Syntax-Highlighting auch Powershell-Skripte einfärbt, benötigt man das Windows PowerShell Syntax Plugin von Peter Provost. Der Inhalt der ZIP-Datei muss entweder nach $HOME\vimfiles oder $VIM\vimfiles kopiert werden. Welche Pfade sich hinter den Variablen $HOME und $VIM verbergen, bekommt man heraus, wenn man sie innerhalb von Vim mit dem Befehl :echo abfragt:
:echo $VIM C:\Program Files\Vim\vim73 |
Also muss man in diesem Fall die Dateien, die sich innerhalb des Archivs vim-ps1.zip befinden, nach C:\Program Files\Vim\vim73\vimfiles entpacken, wenn die Syntaxhervorhebung in Powershell-Skripte für alle Benutzer gelten und in das Home-Verzeichnis, wenn das nur einen User betreffen soll.
Damit heißt es jetzt auch unter Windows und in der Powershell „Happy Vimming“.
Geschrieben in Open Source, Powershell, Windows



