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
- 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
- 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.
- 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=
- 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.
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.
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.
- 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.
- 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.
- ms.tru | - 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.
- ms.tru | - 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
- 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.
- [H. Hein | H. Hein] | - 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).