Inhaltsverzeichnis

Vorbemerkung: Ein Editormakro ist eine Folge von Steuerbefehlen und/oder Zeichenfolgen, die per Tastenkombination oder Mausaktion in der Art eines Shortcuts aufgerufen und ausgeführt werden kann. Editormakros können im Editor direkt definiert werden oder in eine Datei geschrieben und dann (mit #TUE) aktiviert werden.


Zurück zum Inhaltsverzeichnis - Lösungen und Tipps


Definition von Editormakros

- schneider-lastin schneider-lastin

Die Anweisung für die Definition eines Editormakros lautet allgemein:

y,name=makroanweisung

y,name=makroanweisung1,makroanweisung2,makroanweisung3,...

y,name=n*makroanweisung

→ Eine Makroanweisung ist entweder ein Steuerbefehl (z.B. SPLIT) oder eine Zeichenfolge (z.B. text).
→ Eine Zeichenfolge muss in frei wählbare Trennzeichen eingeschlossen werden (z.B. |text| oder :text: ).
Mehrere Makroanweisungen werden durch Komma getrennt.
→ Soll eine Makroanweisung mehrmals ausgeführt werden, kann dies durch Zahl*makroanweisung erreicht werden (z.B. 3*CUR_RI setzt den Cursor drei Positionen nach rechts).

Beispiele für einfache Editormakros (mit name = einzelner Buchstabe a-z, inkl. äöü)

Definition                            Aufruf  Effekt

y,t=|text|                            ALT+t   schreibt text
y,t=|<tag>|                           ALT+t   schreibt <tag>
y,r=|<reg></reg>|,6*CUR_LE            ALT+r   schreibt <reg></reg> und positioniert Cursor
y,r=|<reg>|,FND_BLANK,|</reg>|        ALT+r   schliesst Zeichenfolge in Tags ein
y,r=FND_BEG,|<reg>|,FND_END,|</reg>|  ALT+r   schliesst Wort in Tags ein
y,z=CMD_LINE,:zn,,,||:,CUR_LE         ALT+z   schreibt Anweisung in Kommandozeile

→ Der Aufruf des Makros erfolgt durch Drücken von ALT+Buchstabe.
→ Das Makro wird an der aktuellen Cursor-Position ausgeführt.

Beispiele für andere Makronamen (Aufruf ebf. über Tastenkombination)

name          Aufruf

SA_x          SHIFT+ALT+x      [x steht für Einzelbuchstabe a-z]
CA_x          CTRL+ALT+x       [dto.]
SC_x          SHIFT+CTRL+x     [dto.]

M_n           ALT+n            [n steht für Ziffer 0-9]
SA_n          SHIFT+ALT+n      [dto.]
CA_n          CTRL+ALT+n       [dto.]
SC_n          SHIFT+CTRL+n     [dto.]

→ Zu weiteren Makronamen und ihren zugehörigen Tastenkombinationen siehe Handbuch/Editor.

Makroaufrufe durch Mausaktionen
Editormakros können nicht nur über Tastenkombinationen, sondern auch durch Aktionen mit der Maus oder eine Kombination aus beiden aufgerufen werden.
Dadurch stehen viele weitere Möglichkeiten zur Verfügung, ein Editormakro auszulösen. Hier seien nur wenige genannt; weitere siehe im Handbuch/Editor.
Hinweis: Einige dieser Makros werden bei Beginn einer TUSTEP-Sitzung automatisch definiert (siehe Handbuch) und bewirken das Erscheinen der Copy-Delete-Move-Leiste.

               Linke     Mittlere  Rechte
               Maustaste Maustaste Maustaste

Click          M_LC      M_MC      M_RC
Press          M_LP      M_MP      M_RP
Release        M_LR      M_MR      M_RR

Shift+Click    S_LC      S_MC      S_RC
Shift+Press    S_LP      S_MP      S_RP
Shift+Release  S_LR      S_MR      S_RR

Lesebeispiele für Makronamen:
M_LC bedeutet: linke Maustaste drücken (Click)
M_MP bedeutet: mittlere Maustaste drücken und bewegen (Press)
M_RR bedeutet: rechte Maustaste nach Press loslassen (Release)
S_LC bedeutet: Shift-Taste und gleichzeitig linke Maustaste drücken

Beispiel für die Verwendung von Mausaktionen:

y,S_LP=MRK_INI
y,S_LR=MRK_REP,|<reg>|,MRK_INS,|</reg>|

Effekt: Ein (bei gedrückter Shift-Taste) mit der Maus markierter Begriff wird gemerkt und mit Registertags versehen nachgestellt. Aus „Zürich liegt an der Limmat“ wird durch das Markieren der Begriffe „Zürich“ und „Limmat“: „Zürich<reg>Zürich</reg> liegt an der Limmat<reg>Limmat</reg>“.
Verwendete Steuerbefehle:

MRK_INI      definiert die Anfangsposition der Markierung
MRK_REP      kopiert den markierten Text in den Zwischenspeicher
MRK_INS      fügt den markierten Text ein


Definition von Punkt-Makros

- schneider-lastin schneider-lastin

Editormakros, deren Name mit einem Abkürzungspunkt endet (name.), dienen in der Regel zur Auflösung von Abkürzungen oder zum Einfügen kurzer Textteile an der Cursor-Position.
Die Anweisung für die Definition eines Punkt-Makros lautet allgemein:

y,name.=makroanweisung

Beispiele für Punkt-Makros

Definition                                                           Aufruf  Effekt

y,ub.=|Universitätsbibliothek|                                       ALT+p   ersetzt "UB" im Text durch "Universitätsbibliothek"
y,ZfdA.=|Zeitschrift für deutsches Altertum und deutsche Literatur|  ALT+p   ersetzt "ZdfA" im Text durch "Zeitschrift für ..."
y,PhF.=|Philosophische Fakultät|                                     ALT+p   ersetzt "PhF" im Text durch "Philosophische Fakultät"

→ Der Cursor muss in oder nach dem zu ersetzenden Wort stehen.
→ Der Aufruf zur Auflösung einer Abkürzung lautet immer ALT+p.

Mit dem Aufruf

ALT+y

erhält man eine Liste aller definierten Punkt-Makros und kann durch Auswahl eines Makros dieses ausführen, d.h. der ausgewählte (Lang-)Text wird an der Cusor-Position in den Text eingesetzt.

Abfragen und Löschen von Editormakros

- schneider-lastin schneider-lastin

Definierte Editormakros können mit folgender Anweisung aufgelistet werden:

y

Definierte Editormakros können mit folgender Anweisung wieder gelöscht werden:

y,name=


Definition von Makroleisten

- schneider-lastin schneider-lastin

Anstelle von Tastenkombinationen und/oder Mausaktionen können Editormakros auch über eine Makroleiste aufgerufen werden. Eine Makroleiste ist eine Zeile im Editorfenster mit Buttons/Feldern; wird ein Button/Feld mit der Maus angeklickt, wird das Makro aufgerufen.
Es gibt permanente, temporäre und imaginäre Makroleisten.

1. Permanente Makroleisten


Die Anweisung für die Definition einer permanenten Makroleiste lautet allgemein:

y,name*=fld1,fld2,fld3,...

→ Der Name der Makroleiste darf maximal 11 Zeichen lang sein.

Beispiel für eine einfache permanente Makroleiste

y,ml*=Farb_ein,Farb_aus,Text_ins
y,mlFarb_ein=CMD_LINE,"c1",ENTER,"zu*",ENTER
y,mlFarb_aus=CMD_LINE,"c0",ENTER,"zu*",ENTER
y,mlText_ins=|Dieser Text wird eingesetzt.|

Erklärung: Mit der ersten Anweisung wird eine permanente Makroleiste mit dem Namen ml und den Feldern/Buttons Farb_ein, Farb_aus, Text_ins definiert. Mit den folgenden Anweisungen werden die zu den Buttons gehörenden Editormakros definiert: Farb_ein aktiviert die Farbgruppe c1; Farb_aus schaltet die Farben wieder aus; mit Text_ins wird an der Cursor-Position ein bestimmter Text eingesetzt.
Der Makroname setzt sich zusammen aus dem Namen der Makroleiste + dem Button-Namen.

2. Temporäre Makroleisten

Die Anweisung für die Definition einer temporären Makroleiste mit der Meldung text und den Feldern/Buttons fld1, fld2, fld3 … lautet allgemein:

y,?name=text,fld1,fld2,fld3,...

→ Der Name der Makroleiste darf maximal 11 Zeichen lang sein.

Beispiel für eine einfache temporäre Makroleiste

y,?tags="Bitte Tags auswählen",caps:"<c>",ital:"<i>",bold:"<b>"
y,c_caps="<c></c>"
y,c_ital="<i></i>"
y,c_bold="<b></b>"

Erklärung: Mit der ersten Anweisung wird eine temporäre Makroleiste mit dem Namen tags, dem Meldungstext Bitte Tags auswählen und den drei Feldern/Buttons <c>, <i>, <b> definiert. Mit den folgenden Anweisungen werden die zu den Buttons gehörenden Editormakros definiert: Bei Anklicken eines Buttons wird das entsprechende (Anfangs- und End-)Tag an der Cursorposition eingesetzt.
Der Makroname setzt sich zusammen aus einer Namensergänzung (hier: c_, siehe erg bei Aufruf) + dem Button-Namen.

Aufruf einer temporären Makroleiste

Temporäre Makroleisten können innerhalb eines Editormakros mit folgendem Steuerbefehl aufgerufen werden

SWITCH:erg?name

Für die obige Beispielleiste etwa durch das einfache Editormakro

y,t=SWITCH:c_?tags
Aufruf:
ALT+t

Der Meldungstext wird in der Anweisungszeile, die Makroleiste in der Statuszeile angezeigt. Diese Anzeige bleibt nur bis zur nächsten Maus- oder Tastatureingabe lesbar.

Ein ausführliches Beispiel für eine temporäre Makroleiste siehe unter Anwendungsbeispiele/Tagging markierter Textstellen.


Anwendungsbeispiele:


Eingabe von Tags in eine Adressdatenbank

- schneider-lastin schneider-lastin

Definition eines Editormakros zur erleichterten Eingabe von Rubrikentags in eine Adressdatenbank.
Das Editormakro kann in eine Datei geschrieben und dann mit #EDIERE,DEFINITIONEN=datei aktiviert werden.

y,t=
 "<v></v>",split,
 "<n></n>",split,
 "<p></p>",split,
 "<o></o>",split,
 "<s></s>",split

Aufruf des Editormakros nach seiner Aktivierung durch Drücken von ALT+t
Effekt: Die Tags werden (an der Cursor-Position!) in die Datei geschrieben.

Erweiterung dieses Makros:

y,t=confirm,"ze",enter,cur_up,split,
 "<v></v>",split,
 "<n></n>",split,
 "<p></p>",split,
 "<o></o>",split,
 "<s></s>",split,5*cur_up,3*cur_ri

Aufruf des Editormakros nach seiner Aktivierung durch Drücken von ALT+t
Effekt: Änderungen in der Datei werden ggf. gespeichert (CONFIRM); das Ende der Datei wird gezeigt („ze“, ENTER); eine Leerzeile wird eingetragen (CUR_UP, SPLI); die Tags werden in die Datei geschrieben; der Cursor wird zum direkten Eintragen nach <v> positioniert.

Umbrechen einer Textzeile (word wrap)

- ms.tru ms.tru

Aus Gründen der Übersichtlichkeit kann es sinnvoll sein, einen bereits in TUSTEP eingegebenen oder importierten Text nachträglich zu umbrechen. Dies entspricht der aus anderen Editoren wie Notepad++ oder sublime text bekannten Option word wrap.
Hier ein Beispiel für eine TUSTEP-Adaption:

Y,CA_f=BEG_REC,80*CUR_RI,SKP_WORD,SPLIT

Aufruf: CTRL+ALT+f.
Effekt: Cursor springt an den Anfang des aktuellen Datensatzes (BEG_REC), von dort 80 Schritte nach rechts (80*CUR_RI) und zum nächsten Wortzwischenraum (SKP_WORD), wo die Zeile umbrochen wird (SPLIT).
Diese Tastenkombination muss dann für jede zu umbrechende Zeile einmal ausgeführt werden, was nur bei punktueller Anwendung und einem kurzen Text gangbar erscheint. Sollen längere Texte insgesamt neu umbrochen werden, kann ein kleines Skript benutzt werden.

Tagging markierter Textstellen

- ms.tru ms.tru | - schneider-lastin schneider-lastin

Mit den folgenden Makrodefinitionen können markierte Textstellen getaggt, das heißt über eine temporäre Makroleiste in die ausgewählten Anfangs- und Endetags eingeschlossen werden.

y,M_RP=SET_INS,SAVE_CUR,MRK_INI
y,M_RR=MRK_REP,SWITCH:c_?tags

y,?tags="Bitte Tags auswählen",
  caps:"<c>",
  ital:"<i>",
  spac:"<s>",
  bold:"<b>",
  under:"<ul>",
  Abbrechen
y,c_caps="</c>",EXCH_CUR,"<c>"
y,c_ital="</i>",EXCH_CUR,"<i>"
y,c_bold="</b>",EXCH_CUR,"<b>"
y,c_spac="</s>",EXCH_CUR,"<s>"
y,c_under="</ul>",EXCH_CUR,"<ul>"
y,c_abbrechen=MRK_IGN

Effekt: Ein Wort oder Textbereich wird mit der rechten Maustaste markiert. Die Anfangsposition des Cursors wird gemerkt (SAVE_CUR), beim Loslassen der (rechten) Maustaste wird der markierte Bereich gespeichert und der alte Speicherinhalt überschrieben (MRK_REP), die temporäre Makroleiste mit den Tags wird aufgerufen (SWITCH:c_?tags). Beim Anklicken eines Buttons/Tags wird zuerst das Endetag an der Cursorposition eingesetzt, dann an der zuvor gemerkten Cursorposition (EXCH_CUR) das Anfangstag.

Wort per Doppelklick markieren und speichern

- ms.tru ms.tru | - schneider-lastin schneider-lastin

In Textverarbeitungsprogrammen wie LibreOffice, Notepad++ oder dem Editor unter Windows ist es möglich, ein Wort (ohne ggf. angrenzende Interpunktionszeichen!) mittels Doppelklick zu markieren. Diese Funktionalität - ergänzt durch ein Speichern des Wortes sowohl in der Editor- wie der WINDOWS-Zwischenablage - kann für den TUSTEP-Editor durch folgende Anweisung erreicht werden:

Y,M_LD=FND_BEG,MRK_INI,FND_END,MRK_REP,DEFINE_CB

Erklärung: Die Mausaktion „linke Maustaste Doppelklick“ (M_LD) wird belegt. Bei deren Ausführung (durch Doppelklick in ein Wort) wird der Anfang des Wortes gesucht (FND_BEG), daraufhin eine Markierung begonnen (MRK_INI), die bis zum Ende des Wortes (FND_END) ausgeführt wird. Der markierte Text wird in die Editor-Zwischenablage gesteckt (MRK_REP) und zusätzlich in die WINDOWS-Zwischenablage gespeichert (DEFINE_CB). Das markierte Wort kann nun per rechtem Mausklick oder CTRL+V bzw. STRG+V an anderer Stelle eingefügt werden.

Soll das markierte Wort zusätzlich farblich hervorgehoben werden, ist die Anweisung wie folgt zu erweitern:

Y,M_LD=FND_BEG,MRK_INI,FND_END,MRK_REP,CUR_LE,FND_BEG,MRK_INI,FND_END,MRK_MRK,DEFINE_CB


Wenn nicht nur das Wort, sondern angrenzende Interpunktionszeichen, Klammern oder Tags mit markiert und gespeichert werden sollen, lautete die oben als erste gegebene Anweisung wie folgt:

Y,M_LD=SKP_LE,MRK_INI,FND_BLANK,MRK_REP,DEFINE_CB


Editormakros-Konfigurationsbeispiel (Makro-/Mausleisten)

- ms.tru ms.tru

Ein einfaches Beispiel für eine Makroleiste inkl. einer temporären Mausleiste ist hier herunterzuladen:

meinfach.tf [24KB]


Die Datei kann direkt in ein Projektverzeichnis abgelegt, angemeldet und mit folgendem Kommando definiert werden:

#E,DE=meinfach.tf

Anschließend sind im Editor drei Schaltflächen zu sehen: „Text“, „Mausleiste“ und „Hilfen“.
Über „Text“ können exemplarische Textbausteine an die Stelle des Cursors eingefügt werden, „Mausleiste“ gibt eine kurze Information über die Benutzung der temporären Mauleiste aus und über „Hilfen“ lassen sich die TUSTEP-Beschreibungen sowie weitere Hilfsmöglichkeiten ansteuern.

Die temporäre Mausleiste kann aufgerufen werden, indem ein Textabschnitt mit der gedrückten rechten (!) Maustaste markiert wird. Anschließend stehen einige Möglichkeiten zum Tagging des markierten Textes zur Verfügung.

Die gezeigten Funktionen sind lediglich für Demonstrationszwecke konzipiert und im Gegensatz zur unten genannten Datei MAKLEIST nicht auf die praktische Nutzung ausgelegt. Allerdings kann die Datei von jedem Nutzer entsprechend den individuellen Bedürfnissen abgeändert werden.
Der aktuelle Inhalt der Einstellungen kann im Editor betrachtet werden:

#E,meinfach.tf

Hierbei ist auf die Nummerierung der Datensätze zu achten, welche die Datei als Segment-Datei ausweist. Segment-Dateien sollten nicht direkt im Editor bearbeitet werden, um keine fehlerhafte Datensatznummerierung zu erhalten. Stattdessen ist die Datei nach folgender Beschreibung zu bearbeiten: Grundlagen - Segmentdatei

Um den Editor wieder auf die Grundeinstellungen zurückzusetzen, kann folgendes Kommando genutzt werden:

#E,DE=-STD-


Ein etwas umfangreicheres Beispiel für angewandte Editormakros kann gefunden werden unter: Link.
Die hier hinterlegte Beispieldatei MAKLEISTn_n dient in erster Linie der verbesserten Bedienbarkeit des TUSTEP-Editors für Nutzer mit eingeschränkter Motorik, allerdings kann dieselbe Funktionalität von jedem Benutzer eingesetzt und individuell angepasst werden. Die Einstellung und Beschreibung entspricht der o.g.

Nutzung von Editormakros zur Apparaterstellung

- [H. Hein | H. Hein] | - ms.tru ms.tru

Viele Editionen zeichnen sich dadurch aus, dass sie unter dem Text mehrere Apparate haben, um unterschiedliche Phänomene zu dokumentieren:
Entstehungsvarianten, Abweichungen in anderen Textzeugen, Testimonien und Quellen.
Oft sehen die Apparateinträge in den Daten so aus:

<a1>Erster Apparat</a1>
<a2>Zweiter Apparat</a2>

usw.

Hier bietet sich ein einfaches Tastaturmakro an, welches die Apparate-Tags in eine eigene Zeile schreibt und den Cursor zwischen Anfangs- und Endetag positioniert. Außerdem wird der Apparateintrag etwas eingerückt:

Y,M_1=split,split,cur_up,' <a1></a1>',5*cur_le

Das Tastaturmakro wird aufgerufen mit ALT+1. Es generiert einen Eintrag für den ersten Apparat. Analog könnte man die weiteren Ziffern mit den entsprechenden Apparaten kombinieren:

Y,M_2=split,split,cur_up,'  <a2></a2>',5*cur_le


Man könnte das Makro noch verbessern, indem man das Wort, welches als Lemma in den Apparat kommen soll, mit der Maus markiert und automatisch eintragen lässt und mittels einer temporären Mausleiste abfragt, in welchen Apparat das Wort eingetragen werden soll:

= Drücken der **rechten** Maustaste --> Beginn Markierung (s.u.) und farbliche Hervorhebung des markierten Textes.
Y,M_RP=SET_INS,SAVE_CUR,MRK_INI,MRK_CHG:0C

= Loslassen der **rechten** Maustaste --> "Tag1"-Mausleiste anzeigen
Y,M_RR=MRK_REP,SWITCH:c_?tag1

=     Abfragen, was mit dem markierten Bereich geschehen soll:
Y,?TAG1="Markierten Bereich mit Tags für Apparat- oder Registereintrag versehen?",
 app1:"<a1>":0A,
 app2:"<a2>":07,
 app3:"<a3>":08,
 nix:"Mark. aufh.":0A

=     Im Folgenden wird definiert, was zu geschehen hat, wenn
=     eines der Felder der temporären Mausleiste angeklickt wird:
Y,C_APP1=SPLIT,SPLIT,CUR_UP,"<a1>",MRK_INS,"] </a1>",5*CUR_LE
Y,C_APP2=SPLIT,SPLIT,CUR_UP,"<a2>",MRK_INS,"] </a2>",5*CUR_LE
Y,C_APP3=SPLIT,SPLIT,CUR_UP,"<a3>",MRK_INS,"] </a3>",5*CUR_LE
Y,C_NIX=MRK_IGN


Effekt: Ein Wort oder Textbereich wird mit der rechten Maustaste markiert. Die Anfangsposition des Cursors wird gemerkt (SAVE_CUR), beim Loslassen der (rechten) Maustaste wird der markierte Bereich gespeichert und der alte Speicherinhalt überschrieben (MRK_REP), die temporäre Makroleiste mit den Apparatetags wird aufgerufen (SWITCH:c_?tag1). Beim Anklicken eines Buttons/Tags in der temporär angezeigten Mausleiste wird zuerst das Endetag an der Cursorposition eingesetzt, dann an der zuvor gemerkten Cursorposition (EXCH_CUR) das Anfangstag.

Für Apparate, die über eine längere Textstrecke gelten, muss man dann sogenannte Langeinträge machen. Sie enthalten zusätzlich zum Apparateintrag selbst, der wie beim „Einwortapparateintrag“ an das erste Wort gehängt wird, einen Endepunkt am letzten Wort der Textstrecke. Um den Langeintrag vom Kurzeintrag zu unterscheiden, hat sich die Kodierungsfolge <l1> … </l1> … <ep1/> bewährt. Auch hierbei stehen die Ziffern wieder für den entsprechenden Apparat.

Ein passendes Makro wäre:

Y,A_1=split,split, cur_up,' <l1></l1>',5*cur_le

Den Endepunkt muss man in diesem Fall noch manuell setzen. Hier wird nun die ALT-Taste mit der 1 im Nummernblock gedrückt.

Diese Makros verlangen noch einiges an manueller Eingabe. Man könnte über das Markieren mit der Maus die Eingabe erleichtern (s. oben).


Zurück zum Inhaltsverzeichnis - Lösungen und Tipps