Snippets

Befehle, die man ständig braucht — gebunden an einen Host, eine Gruppe, ein Tag oder gar nichts. Strg+Umschalt+P öffnet die Palette, drei Buchstaben genügen: „wfr“ findet „WildFly Restart“.

Geltungsbereiche

Ein Snippet kann an mehreren Stellen zugleich gelten. Sortiert wird nach Nähe: Was direkt an diesem Host hängt, steht oben, dann Gruppe, dann Tag, dann global. Gruppenbindungen vererben sich an Untergruppen.

Gebunden wird über eine Auswahl mit Suche, nicht über eingetippte IDs. Das Gewählte steht als Chips darunter und lässt sich einzeln wieder wegnehmen. Der Unterschied ist nicht Bequemlichkeit: Eine abgeschriebene hst_9f3a… mit einem Zeichen daneben gibt keinen Fehler, sondern ein Snippet, das für nichts mehr gilt — und den Grund sucht man an der falschen Stelle.

Tags sind der Sonderfall: Sie sind frei erfundene Wörter, dort lässt sich auch etwas eintragen, das es noch nicht gibt.

Die Palette

Wer einen Servernamen tippt, bekommt Hosts angeboten — über den Snippets, weil „verbinden“ dann die häufigere Absicht ist. Ein Einstieg statt zwei: Man will etwas tippen und nicht vorher entscheiden, in welcher Liste es steht.

Nicht auf Strg+K. Das ist in readline „bis Zeilenende löschen“ — derselbe Konflikt wie bei Strg+A. Die Palette liegt deshalb auf Strg+Umschalt+P und Strg+Umschalt+K; auf macOS zusätzlich auf Cmd+K, wo es keinen Konflikt gibt. Plain Strg+K lässt sich in den Einstellungen dazuschalten.

Platzhalter

{{name}} wird vor dem Ausführen abgefragt, vorbelegt aus den Umgebungsvariablen des Hosts — und geshell-quotet.

Was aus einer Eingabe wird
Vorlage:   systemctl restart {{dienst}}
Eingabe:   wildfly; reboot
Ergebnis:  systemctl restart 'wildfly; reboot'
           # ein Argument, kein zweiter Befehl

Die Vorschau zeigt die fertige Zeile, nicht die Vorlage. Wer bewusst mehrere Argumente einsetzen will, schreibt {{!name}} und übernimmt die Verantwortung.

Das Quoting ist die Stelle, an der aus einem Komfortmerkmal eine Injektionslücke wird. Wer daran etwas ändert, muss die Snippet-Testsuite laufen lassen — sie sagt, welche Fälle abgedeckt sind.

Tastenkürzel

Ein Snippet kann auf Strg+Umschalt+1 bis 9, 0 und F1 bis F12 liegen. Nur diese Tasten: Alles andere gehört readline oder der Gegenstelle, und ein Snippet auf Strg+C nähme einem das Abbrechen weg.

Pakete

Eine Sammlung als lesbare Datei — zum Weitergeben, zum Sichern, zum Mitnehmen. Vor dem Einspielen zeigt tessera, was drinsteht, und markiert die Stellen, an denen Platzhalter ungeschützt eingesetzt werden.

Was in einem Paket steht, sind Befehle, die später auf einem Server laufen; sie ungesehen zu übernehmen wäre das Gegenteil von dem, was tessera sonst tut.

Geltungsbereiche kommen nicht mit — sie zeigen auf Host- und Gruppen-IDs, die es beim Empfänger nicht gibt.