Daten|teiler
Kopieren als Kulturtechnik

Vim und Powershell

8. Dezember 2012 von Christian Imhorst

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