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