Post on 21-Nov-2020
transcript
© Heimo Schön 12/2002 Seite 1/24
Emacs / Xemacs
© Heimo Schön 12/2002 Seite 2/24
Xemacs / Emacs
� Zwei unterschiedliche Projekte
� Emacs (ursprüngliche Projekt)
� Xemacs (etwas mehr Features)
� (X)Emacs existiert für
� DOS
� Windows
� alle UNIX-Varianten
� jeweils: Textmodus und grafische Oberfläche
© Heimo Schön 12/2002 Seite 3/24
Xemacs / Emacs
� Früher war vi der „Unix-Standard-Editor“ ; dieser wurde mitlerweile durch emacs abgelöst
� Bedienung ist gewöhnungsbedürftig -
� aber die CTRL- und ALT- Sequenzen sind auch auf z.B. bash identisch
� in der Kommandozeile wird TAB (Expansion) und CTRL-R (revert-search) unterstützt.
© Heimo Schön 12/2002 Seite 4/24
Emacs Starten
� Starten des Editors:$ emacs [optionen] [datei ...]$ xemacs [optionen] [datei ...]
Menüleiste
Buttons
Dateireiter
Dateibuffer
Statuszeile (des Buffers)
Kommandoeingabezeile /Meldungsausgabezeile
© Heimo Schön 12/2002 Seite 5/24
Emacs Kommandozeile
�
Kommandozeile durch M-x
�
M- steht für die Meta-Taste. Entweder ALT- oderESC-Taste
�
Für M-x drücken Sie:entweder: ESC-Taste und danach die Taste xoder: ALT-Taste und Taste x gleichzeitig
© Heimo Schön 12/2002 Seite 6/24
Emacs M- C-
�
„M-x Kommando“ ist häufig durch eine Tastenkombinationen vereinfacht:
entweder: M-x find-fileoder: C-x C-f
�
C- steht für die Ctrl-Taste
�
Abbruch des laufenden Kommandos mit, verlassen der Kommandozeile, usw:
C-g(mehrmals drücken schadet nicht um sicher zu sein)
© Heimo Schön 12/2002 Seite 7/24
Emacs Statuszeile
Font (änderbar in Options-Font oder Options-Font-size)
Bufferstatus ** Buffer wurde geändert (nicht gesichert)-- Buffer ist änderbar (noch nicht geändert)%% Buffer ist schreibgeschützt (n. änderbar)
Dateiname Bearbeitungsmodus
Position im Text:All alles sichtbarTop DateianfangBot Dateiende
© Heimo Schön 12/2002 Seite 8/24
Emacs Datei bearbeiten
�
Text selektierenentweder: mit Maus (linke Taste gedrückt halten)oder: C-Space und mit Cursortasten bewegen
�
Selektierten Text ausschneiden: C-w
�
Selektierten Text in Kopierbuffer holen: M-wKopierbuffer=Kill-Ring (kann bel. lang werden)
� Text aus Kopierbuffer einfügen (yank): C-y
�
Einträge im Kopierbuffer (Kill-Ring) M-yansehen (nach C-y ist M-y mehrf. mögl)
© Heimo Schön 12/2002 Seite 9/24
Emacs Datei bearbeiten
�
Emacs beenden C-x C-c
�
Zeile bis zum Ende löschen C-k
� Leere Zeile löschen C-k
�
Undo (beliebig oft, bis zum Arbeitsbeginn) C-_
�
File öffnen C-x C-f
�
File öffnen C-x C-f C-x 4 C-f
�
File speichern C-x C-s
� File speichern unter neuem Namen C-x C-w
© Heimo Schön 12/2002 Seite 10/24
Emacs Buffer
�
Buffer löschen (aus dem Editor) C-x C-k
�
In anderen Buffer wechseln C-x b
�
In den anderen Buffer wechseln C-x o
� Liste aller Buffer (auswählen mit f) C-x C-b
�
Zwei Buffer im Fenster C-x 2
�
Ein Buffer im Fenster C-x 1
�
Text in der Zeile einrücken TAB
© Heimo Schön 12/2002 Seite 11/24
Emacs Suchen
�
Vorwärts suchen C-s
�
Rückwärts suchen C-r
� Suchstring erweitern (während C-s/C-.r) C-w
�
Vorwärts/Rückwärts weitersuchen C-s / C-r
�
Suchen mit regular-expression C-M-s
�
Suche beenden d. Cursor-Tasten o. ENTER
�
In der Suche zurückgehen BACKSPACE
� Suche abbrechen C-g
© Heimo Schön 12/2002 Seite 12/24
Emacs Ersetzen / Ausschneiden
�
Ersetzen M-x replace-string
�
Ersetzen mit Abfrage M-%
�
Spalten (Rectangle) aus einem Text ausschneiden durch Selektion eines rechteckigen Bereichs (mit Maus oder C-Space und Cursortasten). Danach M-x delete-rectangle
� Zeilennummerierung M-x line-number-mode
�
Spaltennummerierung M-x column-number-mode
© Heimo Schön 12/2002 Seite 13/24
Emacs Makro / Hilfe
�
Makro aufzeichnen C-x (Makro Aufzeichnung beenden C-x )Makro ausführen C-x e
�
Tutorial (Anfänger) C-x t
�
Hilfe Index C-h C-h
� Modus beschreiben C-h m
�
Alle Befehle zu einem Begriff C-h a
�
Infosystem starten C-h i
© Heimo Schön 12/2002 Seite 14/24
Emacs Konfiguration
�
Emacs
� kleiner Kern in C (Lisp Interpreter)
� Rest in Lisp programmiert
�
Konfiguration erfolgt in der Lisp-Datei ~/.emacs( set q l i ne- number - mode t )( set q t each- ext ended- commands- p t )( r equi r e ' f ont - l ock)( gl obal - f ont - l ock- mode t )( set q f ont - l ock- maxi mum- decor at i on t )( r equi r e ' f unc- menu)( add- hock ' emacs- l i sp- mode- hook ' f ume- add- menubar - ent r y)( r equi r e ' cr ypt ) ( di r ekt es Öf f nen von gz- f i l es)
© Heimo Schön 12/2002 Seite 15/24
Emacs
�
Terminal (shell) im Emacs öffnen M-x shell
�
Mail verfassen M-x mailMail absenden C-c C-c
�
Erweiterte Suche nach Begriffen M-x apropos
� Compilieren (System bauen) M-x compile(emacs führt in einem Buffer das Makefile aus,Fehler können mit Maus angeklickt werden - daraufhin erscheint die Source in einem neuenBuffer)
© Heimo Schön 12/2002 Seite 16/24
Emacs
�
Sprung zur Definition einer Funktion(ein TAGS File muß existieren) M-.
�
Suchen und Ersetzen in allen Datein eines Projekts M-x tags-search
�
Debugger starten M-x gdb(siehe Seite 20)
� eingebaute Psychoanalyse M-x doctor
© Heimo Schön 12/2002 Seite 17/24
Emacs / Ediff
�
Ediff (z.B. Tools-Compare-TwoBuffers)
�
Übung:$ cp / et c/ passwd . / passwd1$ xemacs passwd1 &
o i n passwd1 mehr er e Änder ungeno C- x 2o C- x C- f / et c/ passwdo Tool s- Compar e- TwoBuf f er s
© Heimo Schön 12/2002 Seite 18/24
Directory Manipulation
�
Wechseln in den Directory-Editor-Mode M-x dired
�
Files öffnen (edit) mit „e“ oder öffnen in other-buffer mit „o“
�
Markieren zum Löschen mit „d“ und Löschen ausführen (execute) mit „x“
� Directroy erzeugen mit „+“
© Heimo Schön 12/2002 Seite 19/24
Emacs als IDE (eine Übung)
�
Ein C-Programm erzeugen : C-x C-f hello.c
�
Electric-C-Mode ein-/ausschalten C-c C-a
�
Electric-Characters: anstatt () M-( anstatt ENTER M-J
� Compilieren: M-x compilecursor-down-Tastegcc -g -o hello hello.c
�
(M-X ispell-comments-and-strings)
© Heimo Schön 12/2002 Seite 20/24
Emacs als IDE
�
Einrücken (indent) einer Zeile TAB
�
Einrücken eines Bereichs M-x indent-region
�
Kommentar Anfang M-;
Kommentar Ende M-q
© Heimo Schön 12/2002 Seite 21/24
Emacs als IDE
�
TAG-Tabels erstellen mit etags -t * .[ch]
�
Dabei wird ein File TAGS erzeugt
�
Suchen in der Tagtabel M-.Pfad und Dateiname des TAGS-File angeben
� Suchen nach Funktionen, Variabeln, Definitionen, ...
�
Cursor auf die gesuchte Funktion und dann M-. drücken; damit wird diese Funktion zum Default
�
Beim Suchen ist tab-completition aktiv
© Heimo Schön 12/2002 Seite 22/24
Emacs als Debugger
�
Gnu-debugger starten M-x gdb(Namen des Executeable „hello“ angeben)
�
Am GDB-Prompt eingeben:Breakpoint am Beginn von main() break main bProgramm starten run rSingle-Step next n
� GDB-Hilfe help
�
GDB-Beenden quit
�
Zum GDB-Prompt C-Ende
© Heimo Schön 12/2002 Seite 23/24
Emacs Links
�
http://www.linuxjournal.com/article.php?sid=5765
�
Links zu beiden : http://www.emacs.org
�
Emacs für Windows FAQ und Download:http://www.gnu.org/software/emacs/windows/ntemacs.html
© Heimo Schön 12/2002 Seite 24/24
Fragen ?
http://elina.htlw16.ac.at/~hoerandl/folien