Posts Tagged ‘altgr’

AltGr-Taste im IRB von InstantRails aktivieren

Samstag, März 22nd, 2008

InstantRails ist eine einfache Möglichkeit, unter Windows Rails-Anwendungen zu Entwickeln. Ruby, Rails, Apache und MySQL sind in diesem Paket gebundelt und müssen nicht installiert werden. Das Paket kann einfach entpackt werden und man kann loslegen (der Pfad darf allerdings keine Leerzeichen enthalten).

Die Freude wärt aber nur kurz, wenn man irb bzw. die Rails-Konsole über script/console benutzen möchte.

Dort funktionert nämlich die AltGr-Taste nicht, d.h. man kann kein @, [, ], oder | eingeben. Ich hatte dieses Problem bereits früher (konnte es beheben und vergaß es) und bekam es jetzt wieder beim Umstieg auf InstantRails 2 (mit Rails 2.0.2).

Lösung:

Man muss eine .inputrc-Datei erzeugen, die AltGr-Tastenkombinationen beschreibt. Diese Datei ist bei InstantRails schon enthalten. Sie enthält folgendes

"\M-[": "["
"\M-]": "]"
"\M-{": "{"
"\M-}": "}"
"\M-\\": "\\"
"\M-|": "|"
"\M-@": "@"
"\M-~": "~"
"\M-$": "$"

Und befindet sich im Verzeichnis <InstantRails>\ruby\bin\inputrc.euro

In der Datei irb.bat im gleichen Verzeichnis muss hinter dem @ECHO OFF folgende Zeile hinzugefügt werden:

SET INPUTRC=<pfad-zur-inputrc>\.inputrc

Es gibt noch andere Lösungsvorschläge, die aber zumindest für InstantRails nicht funktionieren. Die .inputrc gehört am besten ins Homedirectory des aktuellen Benutzers, also nach c:\Dokumente und Einstellungen\<Benutzername>. Wichtig sind in diesem Fall Anführungszeichen um die Pfadangabe, da sie Leerzeichen enthält!

Falls es eine Möglichkeit gibt die inputrc.euro aus dem bin-Verzeichnis direkt (ohne Angabe des Pfades) einzubinden, lasst es mich wissen. Ich habe bei kurzem überfliegen der Umgebungsvariablen aber nichts passendes gefunden, beispielsweise eine Variable mit dem aktuellen Pfad zum InstantRails-Verzeichnis.

(Ergänzung: Selbstverständlich muss man die .inputrc nicht woanders hin kopieren sondern kann Sie direkt mit absoluter Pfadangabe aus dem bin-Verzeichnis einbinden. Da man das InstantRails-Verzeichnis aber umbenennen und umkopieren kann, und InstantRails trotzdem funktioniert, ist eine absolute Pfadangabe zu “gefährlich”)