{{indexmenu_n>2}} **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. ---- [[tustep:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]] ---- ====== Definition von Editormakros ====== - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|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=|| ALT+t schreibt y,r=||,6*CUR_LE ALT+r schreibt und positioniert Cursor y,r=||,FND_BLANK,|| ALT+r schliesst Zeichenfolge in Tags ein y,r=FND_BEG,||,FND_END,|| 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,||,MRK_INS,|| **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**Zürich** liegt an der Limmat**Limmat**".\\ **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 ====== - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|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 ====== - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|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 ====== - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|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:"",ital:"",bold:"" y,c_caps="" y,c_ital="" y,c_bold="" **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 '', , '' 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/[[editormakros#Tagging markierter textstellen|Tagging markierter Textstellen]].\\ \\ \\ ===== Anwendungsbeispiele: ===== \\ ====== Eingabe von Tags in eine Adressdatenbank ====== - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\ Definition eines Editormakros zur erleichterten Eingabe von Rubrikentags in eine [[tustep:loesungen:sortieren#adressdatenbank|Adressdatenbank]].\\ Das Editormakro kann in eine Datei geschrieben und dann mit ''#EDIERE,DEFINITIONEN=datei'' **aktiviert** werden.\\ y,t= "",split, "",split, "

",split, "",split, "",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, "",split, "",split, "

",split, "",split, "",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 positioniert.\\ \\ ====== Umbrechen einer Textzeile (word wrap) ====== - {{files_open:benutzericons:ms.tru-lg.jpg?nolink&16x16|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 [[tustep:loesungen:editormakros:quelltext_umbrechen|kleines Skript]] benutzt werden.\\ \\ ====== Tagging markierter Textstellen ====== - {{files_open:benutzericons:ms.tru-lg.jpg?nolink&16x16|ms.tru}} ms.tru | - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|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:"", ital:"", spac:"", bold:"", under:"
    ", Abbrechen y,c_caps="",EXCH_CUR,"" y,c_ital="",EXCH_CUR,"" y,c_bold="",EXCH_CUR,"" y,c_spac="",EXCH_CUR,"" y,c_under="
",EXCH_CUR,"
    " 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 ====== - {{files_open:benutzericons:ms.tru-lg.jpg?nolink&16x16|ms.tru}} ms.tru | - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|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) ====== - {{files_open:benutzericons:ms.tru-lg.jpg?nolink&16x16|ms.tru}} ms.tru\\ \\ Ein **einfaches Beispiel** für eine Makroleiste inkl. einer temporären Mausleiste ist hier herunterzuladen:\\ \\ {{files_open:daten:meinfach.tf|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: [[tustep:tutorial3:grundlagen_segmentdatei|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: [[praesentation:start|Link]].\\ Die hier hinterlegte Beispieldatei **MAKLEIST**n_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] | - {{files_open:benutzericons:ms.tru-lg.jpg?nolink&16x16|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:\\ Erster Apparat Zweiter Apparat 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,' ',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,' ',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:"":0A, app2:"":07, app3:"":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,"",MRK_INS,"] ",5*CUR_LE Y,C_APP2=SPLIT,SPLIT,CUR_UP,"",MRK_INS,"] ",5*CUR_LE Y,C_APP3=SPLIT,SPLIT,CUR_UP,"",MRK_INS,"] ",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 ... ... 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,' ',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). ---- [[tustep:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]