VOICE Homepage: http://de.os2voice.org
[Newsletter Inhalt
[Vorherige Seite] [Nächste Seite
[Artikelübersicht]

März 2001
editor@os2voice.org


Emacs 20.6.1 unter OS/2

Teil I

Grundlegende Installation und Konfiguration

Von: Oliver Heidelbach © Februar 2001, Übersetzung: Christian Hennecke

Was ist Emacs?
http://www.gnu.org/software/emacs/emacs.html

Emacs 20.6.1 Distribution
@ Hobbes ftp://hobbes.nmsu.edu/pub/os2/apps/editors/emacs/
@ Leo ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/emacs-20/

GNU/EMX Runtime, falls Sie es noch nicht haben
@ Hobbes ftp://hobbes.nmsu.edu/pub/os2/dev/emx/
@ Leo ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/

Zusätzliche Pakete
UnZip http://hobbes.nmsu.edu/pub/os2/util/archiver/uzs541x2.exe
Funktionierendes movemail-Programm, http://userpage.fu-berlin.de/~oheiabbd//emacs/metamail-old.zip
Funktionierendes etags-Programm, http://userpage.fu-berlin.de/~oheiabbd/emacs/etags-old.zip

Optionale Pakete
Gnuserv, empfohlen http://hobbes.nmsu.edu/pub/os2/apps/editors/emacs/os2_gnuserv_r3.zip
GNU bash Shell ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/shells/bash-os2-2.0-266.zip oder alternativ
korn shell ftp://ftp.leo.org/pub/comp/os/os2/leo/shells/pdksh-5.2.13-emx.zip


Meine kommentierte site-start.elhttp://userpage.fu-berlin.de/~oheiabbd/emacs/emacs206-os2-site-start.html
(Anm. d. Red.:  Emacs ist ein Programm zum Editieren von Dateien wie HTML, TeX oder anderen Texten, welches
kontext-sensitive Hilfe und eine grafische Oberfläche besitzt und in einem elisp genannten Lisp-Dialekt
erweitert und angepasst werden kann. Weitere Informationen finden Sie unter <http://www.gnu.org/software/emacs/emacs.html>.)

Ich nutze Emacs nun schon eine ganze Weile unter OS/2. Die letzte stabile Version, die ich benutzt habe, war der Port von Eberhard Mattes, Version 19.33. Vor etwa einem Jahr habe ich versucht, den neuen Port der Version 20.3 von Jeremy Bowen zu installieren. Ich habe es nicht so hinbekommen, wie es sein sollte und die Idee, meinen Emacs auf neueren Stand zu bringen beiseite gelegt, da auch der Portierungs-Enthusiamus nachließ. Im November 2000 brachte Jeremy Bowen den OS/2-Port der Version 20.6 heraus und da ich nach einem üblen Festplatten-Crash gezwungen war, meine komplette Arbeitsumgebung neu einzurichten, beschloß ich, es noch einmal zu versuchen.
Schließlich schaffte ich es, alles so zum Laufen zu bringen, wie es sein sollte und war sogar in der Lage, Pakete wie z.B. mailcrypt zu installieren, die ich aus unbekannten Gründen nicht unter Emacs 19.33 für OS/2 installieren konnte.

Im Dauertest zeigte sich dann, daß der neue Port sich auf meinem Computer durchaus stabil verhält,
solange nur interne Funktionen verwenden werden. Bei der Interaktion mit externen Programmen wie beim
Senden von Mail kommt es jedoch nach wiederholten Aufrufen, etwa mehrere Mails hintereinander
versenden, zu regelmäßigen Abstürzen. (Anm. d. Red.: Jeremy Bowen bezeichnet diese Version selbst als Beta.)
Ich empfehle Ihnen daher, Ihre alte Emacs Installation nicht zu voreilig zu löschen. Für interessierte
Neunutzer nochmal in anderen Worten: Solange Sie Emacs 20.6 nur zum Editieren verwenden wollen,
sollten Sie keine Berührungsängste haben. Als Mailprogramm jedoch eignet sich auch dieser Port noch
nicht. Wollen Sie Emacs also intensiv im Zusammenspiel mit anderen Programmen verwenden, sollten Sie
Emacs 19.33 in Betracht ziehen.

Im folgenden erhalten Sie eine allgemeine Schritt für Schritt-Anleitung zur Installation von Emacs unter OS/2. Diese ist jedoch nicht als Ersatz der Emacs oder zusätzlichen Paketen beiliegenden README-Dateien gedacht.

Please note Wann immer Sie dieses Symbol sehen, geht der darauf folgende Text auf Probleme ein, auf die ich bei der Installation von Emacs und einigen elisp-Paketen gestoßen bin und zeigt Workarounds und Modifikationen, die ich zur Lösung der Probleme vorgenommen habe.

Voraussetzungen

Bevor Sie mit der Installation von Emacs 20.6 für OS/2 anfangen können, müssen Sie ihn natürlich von Hobbes (WWW, FTP) oder Leo (WWW, FTP) herunterladen.
Das Herunterladen per FTP mit einem FTP-Klienten hat gegenüber einem Browser/WWW den Vorteil, daß Sie alle Dateien für das Herunterladen auf einmal markieren und dann weggehen können, um ein Video anzuschauen oder was Sie auch immer tun möchten. Falls Sie FTP nutzen möchten, geben Sie "anonymous" als "user name" ein und Ihre E-Mail-Adresse als Passwort.

Die Distribution umfaßt die vier Dateien e206base.zip, e206el1.zip, e206elc.zip und e206rest.zip mit einem Gesamtumfang von etwa 14 Megabyte. Sie müssen nur die ersten drei herunterladen, aber ich empfehle alle vier, da die vierte die gesamte Dokumentation und Anleitung enthält.

Ich empfehle Ihnen besonders, die gnuserv-Distribution (@Hobbes) für OS/2 herunterzuladen, da diese Portierung von Emacs keinen emacsclient enthält.

Außerdem brauchen Sie etwa 50MB freien Platz auf einem HPFS-Laufwerk für die Installation und UnZip, um die Archive zu entpacken.

Falls Sie noch nie mit der GNU/EMX-Umgebung unter OS/2 gearbeitet haben, müssen Sie auch die Dateien für die EMX Runtime-Bibliothek herunterladen. Die zum Zeitpunkt des Verfassens aktuelle Version ist EMX 0.9d, fix level 3. Wie Emacs selbst kann sie von Hobbes (WWW, FTP) oder Leo (WWW, FTP) bezogen werden. Stellen Sie sicher, daß Ihre GNU/EMX-Umgebung korrekt installiert und auf dem neuesten Stand ist, bevor Sie mit der Installation von Emacs beginnen.

Wenn Sie Emacs in einer vollen GNU/EMX-Umgebung nutzen wollen, sollten Sie auch eine Un*x-kompatible Kommandozeilen-Shell wie die bash Shell (@Leo) oder die korn Shell (@Leo) installieren. Meines Wissens ist Emacs in der Lage, intern mit der OS/2 Shell cmd.exe zu arbeiten, aber ich habe dies nicht intensiv getestet. Falls Sie nicht vorhaben, Kommandos des Betriebssystems von innerhalb Emacs zu benutzen, brauchen Sie sich erst einmal nicht weiter darum zu kümmern. Sie können die Shell auch später installieren.

Installation

1)

Kopieren oder verschieben Sie alle vier Dateien der Distribution in das Wurzelverzeichnis des Laufwerkes, auf dem Sie Emacs installieren wollen. Emacs wird dann mit unzip e206*.zip nach x:\emacs\20.6\ ausgepackt und ich empfehle dringend, die Standardpfade nicht zu ändern.

Lesen Sie auf jeden Fall die Datei readme.os2 in x:\emacs\20.6\.

2)

Fügen Sie der Anweisung SET PATH in Ihrer CONFIG.SYS-Datei den Pfad zu Emacs hinzu:

SET PATH=[...];x:\emacs\20.6\bin;[...];

Fügen Sie folgendes Ihrer CONFIG.SYS hinzu. Ersetzen Sie x: durch das Ihrem System entsprechende Laufwerk und SYSTEMNAME durch einen beliebigen Namen.

REM *** Emacs 20.6 ***
SET SHELL=x:/emx/bin/sh.exe
SET SYSTEMNAME=ohei
SET TMP=x:\tmp
SET TMPDIR=x:/tmp

Falls sich die folgenden Angaben nicht bereits in ähnlicher Form von einer bestehenden GNU/EMX-Installation her in Ihrer CONFIG.SYS befinden, fügen Sie sie hinzu:

SET TERM=ansi
SET TERMCAP=x:/emx/etc/termcap.dat
SET INFOPATH=x:/emx/info
SET HOME=x:/home
SET NAME=Oliver Heidelbach
SET USER=ohei
 

3) Please note

Damit sind Sie grundsätzlich fertig, alles obere gehörte zum Standardprozedere. Allerdings mußte ich die folgenden zusätzlichen Schritte durchführen, um alle Komponenten glücklich zu machen. Ich denke, daß dies mit hartkodierten Pfaden, die sich noch im Port befinden, zu tun haben könnte.

4)

Damit sollten Sie nun fertig sein. Starten Sie Ihren Rechner neu, wechseln Sie auf der Kommandozeile ins Verzeichnis x:\emacs\20.6\bin und erstellen Sie Emacs mit Hilfe der Batchdatei dump.cmd..

Schauen Sie sich auch einmal die Befehlsdatei instemacs.cmd  an - rufen Sie sie ohne Parameter auf, um zu sehen, was sie für Sie tun kann.

5) - empfohlen

Erstellen Sie ein Verzeichnis x:\emacs\lisp. Plazieren Sie dort alle zusätzlichen elisp-Pakete und -Dateien. Auf diese Weise haben Sie Ihre aktuelle Emacs-Distribution immer sauber von zusätzlich installierten Dateien getrennt. Dies wird Ihnen sehr viel Zeit ersparen, wenn Sie die nächste Emacs Version installieren.

6) - empfohlen

Erzeugen Sie ein temporäres Verzeichnis oder benutzen Sie eins, das Sie eh schon für solche Zwecke bereithalten. Kopieren Sie die gnuserv-Distribution os2_gnuserv_r3.zip in dieses Verzeichnis und entpacken Sie sie. Kopieren oder verschieben Sie die drei *.exe Dateien ins x:\emacs\20.6\bin Verzeichnis. Kopieren oder verschieben Sie die Datei gnuserv.el ins Verzeichnis x:\emacs\lisp.
Wenn Sie in Ihrer Umgebung auch die man-Dokumentationsseiten im Un*x-Stil nutzen möchten, kopieren oder verschieben Sie die Datei gnuserv.1 nach x:\emx\man\man1 oder das Ihrem System entsprechende Verzeichnis.

7) - optional

Es ist außerdem eine gute Idee, alle info-Dokumentationsdateien in ein Standardverzeichnis zu kopieren. Das ist wahrscheinlich x:\emx\info , je nachdem wo Sie GNU/EMX installiert haben. Kopieren oder verschieben Sie alle info-Dateien aus x:\emacs\20.6\info nach x:\emx\info\. Kopieren/verschieben Sie nicht die Datei dir, da Sie sonst Ihre aktuelle überschreiben. Ich empfehle, den Inhalt der bei Emacs enthaltenen Datei dir in diejenige in Ihrem GNU/EMX-Verzeichnis zu kopieren, falls die Emacs-bezogenen Einträge dort fehlen.

Emacs directory structure
Abb.1: Die Emacs-Verzeichnisstruktur

Grundlegende Konfiguration? Was heißt das?

Emacs ist ein sehr mächtiger Editor. Nachdem Sie Emacs erfolgreich installiert haben, gibt es eine unglaubliche Anzahl von Dingen, die Sie vielleicht, vielleicht aber auch nicht ändern möchten, um das Optimum aus Ihrem Editor herauszuholen. Einige dieser Dinge sind von allgemeinem Interesse, während andere reine Geschmackssache sind.

Wenn es um die Konfiguration von Emacs geht, sind zwei Dateien von Interesse, von denen eine namens site-start.el bereits Teil der Standardinstallation ist und sich im Verzeichnis x:\emacs\20.6\lisp befindet. Die andere namens .emacs müssen Sie in Ihrem Home-Verzeichnis anlegen - das Verzeichnis, auf das die Umgebungsvariable HOME in Ihrer CONFIG.SYS zeigt.

Hintergrundinformation: Emacs stammt von der Un*x-Plattform her, bei der es sich um eine Multi-User-Umgebung handelt. Daher gibt es zwei Konfigurationsdateien, eine für die ganze Site (site-start.el, Sie haben's erraten) und eine für jeden einzelnen Nutzer, die Datei .emacs  im Heimverzeichnis des Nutzers. Diese Unterschiede existieren unter OS/2 nicht. Ich persönlich tendiere dazu, unter OS/2 nur site-start.el zu nutzen und überhaupt keine Datei .emacs  anzulegen. Dennoch funktionieren beide Dateien bei der Konfiguration und beide sind unter OS/2 gültig.

Bitte beachten Sie, daß es keine allgemeine Konfiguration außer der einfachen nach der Installation gibt. Alles andere wird sich mehr oder weniger von Nutzer zu Nutzer unterscheiden. Das bedeutet auch, daß alles, was Sie in den Emacs Konfigurationsdateien ändern oder diesen hinzufügen, Emacs' Verhalten ändert. Denken Sie daran, wenn Sie Fragen zur Konfiguration haben und die Dateien bereits geändert haben.

Anmerkung: Emacs Version 20.x besitzt ein "Customization"-Menü - siehe Hilfe in der Menüleiste - mit dem Sie alle Emacs-Pakete/Modi etc. einstellen könen, die dies unterstützen. Es folgt eine Übersicht über grundlegende Konfigurationsschritte für Emacs 20.6 für OS/2, bei der auch Probleme, denen ich bei der Konfiguration begegnet bin, angesprochen werden und ich ein paar nützliche Hinweise gebe. Dabei wird jedoch nicht auf die Konfiguration über das Menü eingegangen.

Weitere Verzeichnisse zum loadpath hinzufügen

Wenn Sie meiner früheren Empfehlung, ein Extraverzeichnis für zusätzliche elisp-Pakete und -Dateien anzulegen, gefolgt sind, sollten Sie Emacs dieses als erstes mitteilen.

Fügen Sie folgendes zur Datei site-start.el hinzu:

(setq load-path (append '("x:/emacs/lisp/")
                     load-path))

Konfiguration der Kontext-Hilfe in Emacs

Emacs besitzt eine eingebaute, kontextabhängige Hilfe. Immer wenn der Cursor sich auf einer elisp-Variable oder einem Funktionsnamen befindet, kann man [C-h v] oder [C-h f] eingeben und erhält eine Beschreibung der Variable oder Funktion. Dazu benötigt Emacs die  TAGS Dateien in den Verzeichnissen, in denen sich elisp Dateien (*.el) befinden.

Emacs 20.6 enthält keine TAGS Dateien, weshalb Sie all diese Dateien selbst erzeugen müssen. Dies geschieht mit dem Programm etags in Verzeichnis x:\emacs\20.6\bin.

Please note

Als ich genau dies tun wollte, bekam ich jedesmal eine Fehlermeldung und nichts passierte. Als ich jedoch das etags Programm aus der Emacs 19.33 Distribution benutzte, konnte ich sofort alle TAGS Dateien erzeugen.

Allerdings konnte ich die kontextabhängige Hilfe damit immer noch nicht innerhalb Emacs benutzen. Jedesmal wenn ich [C-h v] oder [C-h f] eingab, bekam ich eine andere Fehlermeldung bezüglich der Datei fns-20.6.1.el im Verzeichnis x:\emacs\20.6\bin. Es stellt sich heraus, daß diese Datei am Ende Müll enthält. Um das Problem zu beheben, laden Sie sie in Emacs und löschen Sie den Müll.

Die Datei sollte so enden:

... dont-compile eval-when-compile eval-and-compile)
)))

Nun steht Ihnen die kontextabhängige Hilfe zur Verfügung.

Context-sensitive help
Abb.2: Kontextabhängige Hilfe in Emacs

Laden Sie ein funktionierendes etags-Programm herunter. Plazieren Sie die Dateien im Verzeichnis x:\emacs\20.6\bin. Zur Erleichterung habe ich eine Batch-Datei namens makeetags.cmd beigelegt, die alle standardmäßigen elisp-Verzeichnisse durchläuft und die TAGS Dateien erzeugt. Sie müssen diese Datei von innerhalb des x:\emacs\20.6\bin Verzeichnisses aufrufen, damit sie korrekt arbeiten kann.

Einrichten von Gnuserv

Wie ich schon sagte, enthält Emacs 20.6 keinen emacsclient. Emacsclient ist ein Hilfsprogramm, das zu editierende Dateien in einen laufenden Emacs einspeist. Ohne emacsclient würden Sie Emacs jedesmal, wenn Sie eine Datei editieren wollen, neu starten.

Wenn Sie Gnuserv installiert haben, fügen Sie folgendes Ihrer site-start.el hinzu:

(require 'gnuserv)

(gnuserv-start)

(setq gnuserv-frame (selected-frame))

Einrichten der PM frame-Parameter und Meta-Tasten

Viele Emacs-Befehle werden mit einer Tastenkombination eingeleitet, welche die sogenannte Meta-Key beinhaltet. Voreingestellt erkennt Emacs weder die <ALT> noch die <ALTGR> Taste als Meta-Key. Statt dessen müssen Sie <ESC> <x> benutzen, um eine solche Kommandosequenz zu starten.

Genauso weiß Emacs standardmäßig nichts über Ihre Bildschirmauflösung. Sie werden also das Emacs-Fenster vergrößern wollen, um es an eine Auflösung von 1024*768 anzupassen.

Wahrscheinlich möchten Sie auch eine andere Schrift für die Menüs auswählen.

Versuchen Sie folgendes:

(if (eq window-system 'pm)
  (setq default-frame-alist
    (append '((altgr-modifier . meta) ;; AltGr (and AltCar) generate M-
              (alt-modifier . meta)   ;; Alt generates M-
              (alt-modifier . alt)
              (shortcuts . (alt-f4))  ;; Disable all shortcuts but Alt+F4
              (width . 81) (height . 43) ;; for 1024*768 screens
              (top . -2) (left . 280)
;;              (font . "10.System VIO")
;;              (menu-font . "2.System VIO") ;; Use small font for menus
              (menu-font . "8.WarpSans Bold")) 
              default-frame-alist)))
Experimentieren Sie etwas mit der Fenstergröße und den Schriften, bis Sie zufrieden sind. Wie Sie vielleicht schon erraten haben, kennzeichnet ein Semikolon den Rest einer Zeile als Kommentar.

Mail/rmail konfigurieren

Falls Sie Emacs als E-Mail-Programm benutzen wollen, müssen Sie einige Dinge einstellen. Im folgenden wird angenommen, daß Sie für diesen Zweck rmail benutzen.

Fügen Sie folgendes Ihrer site-start.el hinzu und ändern Sie die Angaben Ihrem System entsprechend:

(let ((etc (getenv "ETC"))
      mbox)
  (setq etc (if etc (replace-char-in-string etc ?\\ ?/)
              "x:/mptn/etc/"))
  (setq etc (expand-file-name etc))
  (if (not (string-match "/$" etc))
      (setq etc (concat etc "/")))
  (setq mbox (concat etc "mail/inbox.ndx")   ;; Lamailer format
;;  (setq mbox (concat etc "mail/ohei")      ;; Unix format
        rmail-spool-directory (concat etc "mail/")
        rmail-primary-inbox-list (list mbox)
        display-time-mail-file mbox
  )
)
Please note In der Datei readme.os2 heißt es, daß rmail nun funktionieren sollte. Das tat es bei mir nicht und es widersetzte sich hartnäckig meinen Konfigurationsversuchen.

Falls Ihre lokale POP3-Mailbox ein Un*x-Format hat, scheint alles in Ordnung zu sein, aber wenn Sie das lamailer-Format benutzen, scheint das Abholen der Mail aus der lokalen Mailbox nicht zu funktionieren. Ich erhielt ständig die Fehlermeldung "Cannot convert to babyl format", wenn ich versuchte, die neue Mail mit rmail zu laden. Das Problem ist das movemail-Programm aus der Emacs-Distribution, welches sich im Verzeichnis x:\emacs\20.6\bin befindet. Nachdem ich so ziemlich jedes für OS/2 erhältliche POP3-Mailtransportprogramm ausprobiert hatte, habe ich das alte movemail-Programm aus der Emacs 19.33 Distribution installiert und das Problem verschwand sofort.

Plazieren Sie die ausführbare Datei in x:\emacs\20.6\bin.

Vergessen Sie außerdem nicht, folgendes Ihrer Konfigurationsdatei hinzuzufügen und entsprechend Ihrer Umgebung anzupassen:

(setq user-mail-address "you@domain.com"
      user-full-name "Vorname Nachname"  ;; for sendmail or feedmail
)
(setq sendmail-coding-system 'iso-latin-1)
Meine site-start.el enthält eine umfassendere Konfiguration der mail/rmail-Umgebung.

Nun sollten Sie alle Hürden der grundlegenden Installation der Version 20.6.1 von Emacs für OS/2 genommen haben.

Teil 2 dieser Anleitung wird sich mit der Einrichtung einiger zusätzlicher elisp-Pakete wie mailcrypt und bbdb beschäftigen. Außerdem versuchen wir uns an der Einrichtung einer von Mule unabhängigen ISO-8859-1 Umgebung für Mail und normales Editieren.


Oliver Heidelbach ist seit 1993 OS/2-Nutzer und Emacs-Nutzer seit 1994. Momentan arbeitet er als Redakteur für die Internet Movie Database (IMDb).

Artikelübersicht
editor@os2voice.org
[Vorherige Seite] [Inhalt] [Nächste Seite]
VOICE Homepage: http://de.os2voice.org