EN

Terminalsitzungen

KorTTY bietet eine Terminalschnittstelle mit Registerkarten, die mehrere gleichzeitige SSH-Verbindungen, geteilte Bildschirmlayouts und interaktive Terminalverwaltungsfunktionen unterstützt. In dieser Anleitung werden Registerkartenvorgänge, die Unterstützung mehrerer Fenster, die Anpassung des Terminals und erweiterte Sitzungsfunktionen behandelt.

Sitzungslebenszyklus

Das folgende Diagramm zeigt die Registerkarte „Terminal“ und den Sitzungslebenszyklus, einschließlich Split-Screen- und Broadcast-Modi.

Terminal session lifecycle

Arbeiten mit Tabs

Verwalten Sie mehrere SSH-Sitzungen mit diesen Tab-Operationen. Die angezeigten Tastenkombinationen sind die Standardwerte; Einstellungen → Tastatur bindet sie neu.

Aktion Verknüpfung
New Tab Ctrl+T (Cmd+T on macOS) — opens Schnellverbindung to start a new session
Tab umbenennen Klicken Sie mit der rechten Maustaste auf einen Tab und wählen Sie Tab umbenennen…, oder verwenden Sie Datei → Tab umbenennen… für den aktiven Tab. Der eingegebene Name ersetzt im Tab-Titel den Verbindungsnamen oder den Titel, den die Shell gesetzt hat; das Coding-Agent-Symbol, das Präfix [group] und das Suffix (DISCONNECT) bleiben darum herum erhalten. Lassen Sie den Namen leer oder bestätigen Sie den Namen, den der Tab von sich aus zeigt, und der Tab folgt wieder dem Titel der Shell und dem Verbindungsnamen, einschließlich späterer Änderungen daran. Solange die Shell den Tab benennt, hält die Eingabe des Verbindungsnamens diesen Namen fest. Ein Name kann bis zu 120 Zeichen lang sein; Zeilenumbrüche werden zu Leerzeichen, und Steuerzeichen sowie die unsichtbaren Bidi-Steuerzeichen, die die Lesereihenfolge von Text verändern, werden entfernt. Der Name wird mit einem Projekt gespeichert, und das Panel Coding-Agents sowie tab.list der Steuerungs-API zeigen ihn an; Duplizieren öffnet die Kopie unter dem Verbindungsnamen. Es gibt keine Tastenkombination, sodass jede Taste beim Programm im Terminal bleibt.
Titel aus der Shell Ein Terminal-Tab zeigt statt des Verbindungsnamens den Titel, den seine Shell setzt, etwa user@host: directory, sofern Sie den Tab nicht umbenannt haben; wenn Sie auf ihn zeigen, sehen Sie die Verbindung, zu der er gehört. Siehe Titel aus der Shell weiter unten; die Funktion lässt sich in den Fenster-Einstellungen ausschalten.
Tab schließen Ctrl+W (Cmd+W auf macOS) — schließt den aktiven Tab. Sie werden nur gefragt, wenn etwas verloren gehen könnte: der Tab hat geteilte Panes oder ein Befehl läuft noch (eine lokale Shell mit einem laufenden Kindprozess, oder eine SSH-Sitzung, die nicht am Prompt steht). Ein einzelnes Terminal im Leerlauf schließt sofort. Der Schließen-Button des Tabs und Schließen im Dashboard stellen dieselbe Frage. Die Verbindungseinstellung Tab ohne Nachfrage schließen unterdrückt die Frage ganz.
Andere Tabs schließen / Tabs rechts davon schließen Klicken Sie mit der rechten Maustaste auf einen Terminal-Tab und wählen Sie Andere Tabs schließen oder Tabs rechts davon schließen, oder verwenden Sie die gleichnamigen Einträge im Menü Datei, die vom aktiven Tab beliebiger Art ausgehen. Andere Tabs schließen schließt alle anderen Tabs des Fensters, Tabs rechts davon schließen die Tabs dahinter; der gewählte Tab bleibt geöffnet und wird zum aktiven Tab. Ein Eintrag ist ausgegraut, solange es nichts zu schließen gibt. Statt einer Frage pro Tab werden Sie höchstens einmal gefragt, N Tabs schließen?, mit der Anzahl der Tabs, die geteilte Bereiche oder einen noch laufenden Befehl haben. Wenn nur Terminals im Leerlauf und andere Tabs geschlossen werden, wird nichts gefragt, genau wie bei deren Schließen-Schaltflächen, und die Einstellung Aktive Terminal-Fenster ohne Nachfrage schließen auf dem Tab Terminal-Einstellungen unterdrückt die Frage wie bei Alle Tabs schließen. Ein Datei- oder Snippet-Editor mit nicht gespeicherten Änderungen fragt weiterhin selbst nach (Speichern / Verwerfen / Abbrechen), und Abbrechen bei einer beliebigen Frage lässt alle Tabs geöffnet. Eine laufende KI-Chat-Anfrage oder ein laufender Schwarm in einem Tab, der geschlossen wird, stoppt wie bei seiner Schließen-Schaltfläche. Es gibt keine Tastenkombination.
Geschlossenen Tab wieder öffnen Ctrl+Alt+Shift+T (Cmd+Option+Shift+T auf macOS), Datei → Geschlossenen Tab wieder öffnen oder Geschlossenen Tab wieder öffnen im Rechtsklickmenü eines Terminal-Tabs bringt den zuletzt geschlossenen Terminal-Tab zurück, mit einer neuen Sitzung zur gleichen Verbindung: seine Tab-Gruppe, der von Ihnen gewählte Name und die Terminal-Effekte kehren zurück, seine Ausgabe und seine geteilten Fenster nicht. Datei → Zuletzt geschlossen listet das, was Sie geschlossen haben, neueste zuerst, auch bevor korTTY zuletzt beendet wurde; wählen Sie einen Eintrag aus, um ihn wieder zu öffnen, oder Liste leeren, um die Liste zu leeren. Jeder Schließen-Event ist ein Eintrag: ein einzelner Tab (sein Schließen-Knopf, Tab schließen oder Schließen im Dashboard); alle Terminal-Tabs, die dieser Andere Tabs schließen, Tabs rechts davon schließen oder Alle Tabs schließen geschlossen hat, die zusammen wieder geöffnet werden; oder die Terminal-Tabs eines Fensters, das Sie geschlossen haben, während korTTY weiterlief, angezeigt als Fenster: …, die in einem neuen Fenster oder im aktuellen öffnen, wenn es keine Tabs hat. Auf macOS, wo korTTY weiterläuft nachdem Sie sein letztes Fenster geschlossen haben, öffnen Datei → Geschlossenen Tab wieder öffnen und Datei → Zuletzt geschlossen im Menüleistenmenü ein neues Fenster für das, was sie wieder öffnen. Tabs, deren Sitzung von selbst beendet wurde (exit, Ctrl+D), die Tabs, die das Öffnen eines projekts ersetzt, die Tabs einer incognito-Sitzung und alles, was beim Beenden von korTTY geschlossen wird, werden nicht gelistet; das, was offen war, wenn Sie korTTY beendet haben, kehrt mit Datei → Vorherige Sitzung wiederherstellen zurück. Die Liste hält die letzten 25 Schließungen aller Fenster zusammen und überlebt einen Neustart: korTTY speichert sie in seinem Sitzungs-Snapshot nur mit der ID jeder Tab-Verbindung, sodass nach einem Neustart eine Schnellverbindungssitzung, die nie gespeichert wurde, oder ein Tab, dessen Verbindung Sie gelöscht haben, nicht mehr gelistet ist. Ein wiedergeöffneter Tab meldet sich wie Verbinden im Connection-Manager an (siehe Anmelden) und verwendet die gespeicherte Verbindung mit den Änderungen, die Sie seitdem vorgenommen haben, sodass die Server-Zugriffsrichtlinie erneut geprüft wird; eine Anmeldemethode, die Sie für diese Sitzung in der Schnellverbindung gewählt haben, wird nicht wiederholt. Eine Schnellverbindungssitzung, die nie gespeichert wurde, öffnet sich mit den Einstellungen, die sie hatte, bis korTTY beendet wird. Die Liste speichert niemals einen temporären SSH-Schlüssel, sodass eine Sitzung, die einen verwendete, nachfragt. Wenn Sie ein Passwort-, Schlüssel- oder Tresor-Fragezeichen abbrechen, bleibt der Eintrag in der Liste. Der Schlüssel funktioniert in jedem Tab, auch wenn ein Terminal den Fokus hat und die Menüleiste ausgeblendet ist; wenn nichts wieder geöffnet werden kann, sagt die Statusleiste dies.
Glockenmarkierung Wenn ein Programm die Terminalglocke läutet oder in einem Tab, den Sie gerade nicht ansehen, eine Benachrichtigung anfordert, zeigt der Tab 🔔 in seinem Titel, bis Sie ihn auswählen oder sein Fenster in den Vordergrund holen; zusätzlich kann eine Desktop-Benachrichtigung erscheinen. Siehe Terminal-Benachrichtigungen.
Auf Aktivität / Stille überwachen Rechtsklick auf einen Terminal-Tab und wählen Sie Auf Aktivität überwachen, um benachrichtigt zu werden, wenn nach 10 Sekunden Stille Ausgabe erscheint, oder Auf Stille überwachen, um benachrichtigt zu werden, wenn ein Paneel, das druckte, still bleibt – standardmäßig 30 Sekunden. Der Tab erhält 🔔 und eine Desktop-Benachrichtigung, wenn Sie nicht darauf schauen. Beide sind deaktiviert, bis Sie sie einschalten und werden nie gespeichert. Die Stille-Verzögerung wird unter Einstellungen → Messaging als Auf Stille überwachen meldet nach von 5 bis 3600 Sekunden festgelegt. Siehe Einen Tab auf Aktivität oder Stille überwachen.
Nächster Tab ++ctrl+Tab++ (auch unter macOS Ctrl). Ist Strg+Tab wechselt die Tabs in der Reihenfolge ihrer letzten Nutzung in den Fenster-Einstellungen aktiviert, springt es stattdessen zu dem Tab zurück, den Sie vor dem aktuellen benutzt haben; halten Sie Ctrl gedrückt und drücken Sie erneut Tab, um weiter zurückzugehen, und lassen Sie Ctrl beim gewünschten Tab los.
Vorheriger Tab ++ctrl+shift+Tab++ oder, wenn dieselbe Einstellung aktiviert ist, der am längsten nicht benutzte Tab; solange Ctrl gedrückt bleibt, geht es von dort in Richtung der zuletzt benutzten Tabs
Zu einem Tab springen Ctrl+1 bis Ctrl+8 (Cmd auf macOS) wählen den ersten bis achten Tab des Fensters und Ctrl+9 den letzten, mit den Ziffern der oberen Reihe oder des Nummernblocks. Die Tasten funktionieren in jedem Tab, auch wenn das Terminal den Fokus hat, und eine Zahl, an deren Position kein Tab steht, bewirkt nichts. Es wird keine Ziffer in das Terminal eingegeben, auch nicht im Broadcast-Modus in die anderen Bereiche. Unter Windows und Linux springt nur Ctrl mit einer Ziffer, sodass AltGr-Zeichen und Ctrl+Shift+6 weiterhin das Terminal erreichen; Details zu Tastaturbelegungen finden Sie unter Tastaturkürzel.
Erneut verbinden Klicken Sie mit der rechten Maustaste auf eine Registerkarte, den Terminalbereich oder einen Servereintrag im Dashboard. Ist die Verbindung aktiv, wird sie sofort geschlossen und wieder aufgebaut; Wenn die Verbindung getrennt wird, wird sie wiederhergestellt. Das Terminalfenster bleibt geöffnet.
Tab-Gruppen Rechtsklick auf einen Tab, um ihn einer benannten Gruppe für bessere Organisation zuzuweisen; Keine Gruppe entfernt ihn wieder aus seiner Gruppe. Das gleiche Menü bietet Duplizieren, das einen weiteren Tab zur gleichen Verbindung öffnet und sich wie der Connection-Manager anmeldet (siehe Anmelden), und SFTP hier öffnen, das den SFTP-Manager im Ordner der fokussierten Paneel-Sitzung öffnet; es ist ausgegraut, solange das fokussierte Fenster keine SSH-Verbindung zum Teilen hat.
Tab-Farbe Eine Verbindung mit einer Tab-Farbe markiert jeden ihrer Terminal-Tabs mit einem farbigen Punkt vor dem Titel und einem 3 Pixel breiten Rahmen in dieser Farbe um das Terminal, zum Beispiel Rot für Produktionsserver. Der Rahmen umschließt alle geteilten Bereiche des Tabs und lässt sich in den Fenster-Einstellungen ausschalten; das Ein- oder Ausschalten ändert die Größe des Terminals um 3 Pixel auf jeder Seite. Ein geteilter Bereich, der zu einer Verbindung mit einer anderen Farbe geöffnet wurde, erhält an seinem Rand einen Rahmen in seiner eigenen Farbe, den der Tooltip aufführt (siehe Geteilte Bereiche anderer Verbindungen). Wenn Sie auf einen solchen Tab zeigen, erscheint ein Tooltip mit der Verbindung und dem Namen der Farbe, den Screenreader auch für den Punkt vorlesen. Legen Sie die Farbe im Verbindungseditor auf dem Tab Terminal-Einstellungen fest; Speichern im Connection-Manager aktualisiert die offenen Tabs in allen Fenstern. Eine Verbindung ohne eigene Farbe kann stattdessen die Farbe ihres Connection-Manager-Ordners oder der Umgebung ihrer hinterlegten Anmeldeinformationen zeigen. Der gelbe Tab einer Verbindung im Aufbau und der dunkelrote Tab einer fehlgeschlagenen oder verlorenen Verbindung bleiben unverändert.
Isolationsmarkierung Ein Tab, dessen Sitzung isolated von korTTY läuft und die anderen Tabs ein Schild anzeigen: eine Umrisslinie für den eigenen Prozess, eine ausgefüllte Linie für einen verifizierten Sandbox und eine mit einem Ausrufezeichen, wenn ein angeforderter Sandbox nicht aktiv ist. Eine Inkognito-Sitzung zeigt einen Spion. Der Tooltip gibt an, von was die Sitzung isoliert ist; siehe Was der Tab zeigt.

Titel aus der Shell

Viele Shells und Programme setzen mit der Escape-Sequenz OSC 0 oder OSC 2 einen Terminaltitel: Die Standard-bash von Debian und Ubuntu schreibt dort user@host: directory hinein, und Editoren oder Coding-Agents setzen die Datei oder die Aufgabe. Ein Terminal-Tab zeigt diesen Titel statt des Verbindungsnamens, wie üblich umgeben vom Coding-Agent-Symbol, dem Präfix [group] und dem Suffix (DISCONNECT). Ein Tab mit geteilten Bereichen zeigt den Titel des Bereichs, der den Fokus hat, und wechselt, wenn Sie in einen anderen Bereich wechseln.

  • Ein Name, den Sie dem Tab mit Tab umbenennen gegeben haben, hat immer Vorrang. Löschen Sie diesen Namen wieder, folgt der Tab erneut dem Titel der Shell.
  • Wenn Sie auf einen Tab zeigen, den seine Shell benannt hat, erscheint ein Tooltip mit der Verbindung, zu der er gehört: user@host und der Name der Verbindung.
  • Diesen Titel bestimmt der Server, daher entfernt korTTY Steuerzeichen und die unsichtbaren Bidi-Steuerzeichen, kürzt ihn auf 80 Zeichen und lässt ihn nie die Tab-Farbe, den farbigen Punkt oder den Rahmen ändern. Betrachten Sie den Titel als Hinweis; Tooltip und Tab-Farbe zeigen Ihnen, um welche Verbindung es sich handelt.
  • Der Titel wird nicht mit einem Projekt gespeichert und von Geschlossenen Tab wieder öffnen nicht übernommen. Ein erneutes Verbinden verwirft ihn, bis die neue Sitzung einen setzt, und ein Programm, das beim Beenden den vorgefundenen Titel wiederherstellt, wie es vim tut, bringt den Verbindungsnamen zurück, wenn vorher keiner gesetzt war.
  • Das Panel Coding-Agents und tab.list der Steuerungs-API melden den Titel, den der Tab anzeigt.
  • Unter Windows kann die Konsole hinter einer lokalen Shell einen eigenen Titel setzen, etwa den Pfad von cmd.exe, wie sie es auch im Windows Terminal tut; schalten Sie die unten genannte Einstellung aus, um den Verbindungsnamen beizubehalten.

Um auf jedem Tab die Verbindungsnamen zu behalten, schalten Sie Terminal-Tabs nach dem Titel benennen, den die Shell setzt in den Fenster-Einstellungen aus; die offenen Tabs aller Fenster folgen, sobald Sie speichern.

Sicher verbinden

Interaktive SSH-Terminals teilen das Host-Schlüssel-Vertrauen mit SFTP und dem von Mosh verwendeten SSH-Bootstrap. Die erste Verbindung zu einem normalisierten Host und Port zeigt den Schlüsselalgorithmus sowie den OpenSSH-SHA-256-Fingerabdruck an, wobei Nein standardmäßig ausgewählt ist. Sobald Sie ihn verifizieren und akzeptieren, verbinden sich exakte Übereinstimmungen stillschweigend; ein geänderter Schlüssel wird hart blockiert, ohne automatische Wiederholung, und die Warnung bietet Prüfen und ersetzen… für einen Schlüssel, den Sie mit dem Server-Administrator verifiziert haben. Siehe SSH-Hostschlüssel-Verifizierung.

Beim Öffnen einer Verbindung mit demselben Server oder einer neu ausgewählten Verbindung in einem Split wird ein Fortschrittsdialog angezeigt, während der SSH-Handshake auf einem Worker ausgeführt wird. Die Schnittstelle reagiert weiterhin sowohl auf die Host-Tasten-Bestätigung als auch auf Eingabeaufforderungen zur interaktiven Tastaturauthentifizierung.

Rechts teilen (neue Verbindung) und Unten teilen (neue Verbindung) folgen wie die Schnellverbindung der Serverzugriffsrichtlinie Ihrer Organisation: Ist der gewählte Server oder dessen Jump-Server gesperrt, zeigt korTTY die Meldung der Richtlinie sofort an, bevor es nach einem Passwort fragt oder die Verbindung speichert, und öffnet keinen Bereich. Rechts teilen (gleicher Server) und Unten teilen (gleicher Server) prüfen die Richtlinie erneut für den Server des Bereichs, den Sie teilen: Ein aus einer gespeicherten Verbindung geöffneter Bereich kann spätere Änderungen an ihr übernehmen; wurde ihr Server oder Jump-Server nach dem Öffnen des Bereichs auf einen gesperrten geändert, zeigt die Teilung dieselbe Meldung an und öffnet keinen Bereich.

Einige Fehler werden sofort abgelehnt, anstatt erneut versucht zu werden, weil ein erneuter Versuch das Ergebnis nicht ändern kann – ein geänderter Host-Schlüssel, eine fehlende oder nicht lesbare SSH-Schlüsseldatei, ein Jump-Server dessen gespeichertes Passwort nicht verwendet werden kann (z. B. wenn das Tresor-Verzeichnis gesperrt ist) oder dessen Einrichtung unvollständig ist, eine Mosh-Verbindung mit einem Jump-Server konfiguriert ist oder ein fehlender Mosh-Runtime vorliegt. Das Terminal löscht den Inhalt und zeigt sofort die Ursache an, statt durch die Wiederholungsanzahl zu arbeiten. Siehe Sprungserver für die Jump-Server-Fälle und die Mosh-Einschränkung.

Der angeheftete SithTermFX-Build von KorTTY enthält auch eine überprüfte Korrektur der Begrenzung der unteren Zeile: Beim Bewegen über einen Hyperlink oder die letzte sichtbare Terminalzeile wird TerminalTextBuffer nicht mehr nach der nicht vorhandenen Zeile bei line == height gefragt.

Verbindungsverlust und automatische Wiederherstellung der Verbindung

Wenn eine bestehende SSH-Verbindung verloren geht – Netzwerkabbruch, VPN-Abschaltung, Server entfernt – schließt sich der Tab nicht. Er wechselt stattdessen in einen roten Zustand für abgebrochene Verbindungen: Der Tab-Titel erhält einen (DISCONNECT)-Präfix, der Tab färbt sich dunkelrot, eine rote Statusleiste zeigt die Uhrzeit an, zu der die Verbindung verloren ging, und der Terminalcursor blendet sich aus, sodass eine tote Sitzung nicht mehr als lebendig erscheint. Nur ein normales Remote-Abmelden (Tipp von exit oder Ctrl+D am Prompt) schließt den Tab.

korTTY bemerkt einen stillen Transporttod innerhalb von etwa zehn Sekunden: Alle paar Sekunden sendet es eine SSH-Liveness-Prüfung (eine globale Anfrage, die der Server beantworten muss, dieselbe Technik wie ServerAliveInterval von OpenSSH) und behandelt zwei aufeinanderfolgende unbeantwortete Prüfungen als verlorene Verbindung. Die Prüfung aktiviert sich erst, nachdem der Server einmal geantwortet hat, sodass Server, die nie auf solche Anfragen antworten, ihre Sitzungen unberührt behalten. Eine unbeantwortete Prüfung zählt nur, solange überhaupt nichts vom Server ankommt: Wenn eine große Ausgabe, ein Einfügen oder eine Dateiübertragung auf derselben Sitzung über eine langsame Verbindung Daten fließen lässt, steht die Antwort möglicherweise nur hinter diesen Daten in der Warteschlange, sodass die Sitzung offen bleibt. Ein ausgefallenes Netzwerk liefert gar nichts, daher wird es weiterhin innerhalb von etwa zehn Sekunden bemerkt. Dies ist unabhängig vom SSH-Keep-Alive-Heartbeat, der inaktive Verbindungen offen hält, eine unterbrochene Verbindung jedoch nicht erkennt.

Um die Sitzung wieder in derselben Registerkarte aufzunehmen, doppelklicken Sie auf die rote Statusleiste oder die rote Registerkarte oder verwenden Sie Neu verbinden im Registerkarten-, Terminal- oder Dashboard-Kontextmenü oder in der Befehlspalette. In einer geteilten Registerkarte werden die Bereiche, deren Verbindung unterbrochen wurde, einzeln geschlossen. Im letzten verbleibenden Bereich bleibt die Registerkarte geöffnet und es wird das Angebot zur erneuten Verbindung angezeigt.

Wenn Verlorene Verbindungen automatisch wiederherstellen aktiviert ist (Einstellungen → Terminal, standardmäßig aktiviert), stellt die Registerkarte die Verbindung von selbst wieder her: Versuche beginnen nach 3 Sekunden und werden nach 5, 10, 20 und 30 Sekunden unterbrochen, bis zu einem Versuch pro Minute, und die rote Statusleiste zählt bis zum nächsten Versuch herunter. Eine erfolgreiche erneute Verbindung, eine manuelle erneute Verbindung oder das Schließen der Registerkarte beendet die automatischen Versuche. Permanente Fehler – Authentifizierung, Host-Schlüssel-Überprüfung, Konfigurationsverweigerungen – stoppen sie ebenfalls, sodass niemals ein falsches Passwort gegen den Server gehämmert wird. Während a session journal is running, its red decision bar takes precedence and no automatic attempt starts — the journal asks whether to reconnect and continue or to end with its closing summary. See Settings → Terminal for the setting.

Multi-Window-Unterstützung

Öffnen Sie zusätzliche Fenster, um Verbindungen nach Projekt oder Umgebung zu organisieren:

  • Neues Fenster: Ctrl+Shift+N (Cmd+Shift+N auf macOS) öffnet ein neues korTTY-Fenster. Jedes Fenster kann seine eigenen Tabs und Verbindungen haben.
  • Registerkarten zwischen Fenstern verschieben: Ziehen Sie eine Registerkarte aus der Registerkartenleiste und legen Sie sie auf der Registerkartenleiste eines anderen KorTTY-Fensters ab, um diese Registerkarte (und ihre Sitzung, einschließlich aller geteilten Terminals) in das andere Fenster zu verschieben.
  • Tabs neu anordnen: Ziehen Sie einen Tab innerhalb desselben Fensters, um seine Reihenfolge zu ändern; die Registerkarte „+“ bleibt am Ende.
  • Fenster speichern und wieder öffnen: Datei → Projekt speichern behält jedes offene Fenster mit seiner Position, Größe und seinen Tabs, und Datei → Projekt öffnen öffnet sie wieder in ebenso vielen Fenstern, siehe Fenster.

Terminal-Kontextmenü

Klicken Sie mit der rechten Maustaste in ein Terminal, um dessen Kontextmenü zu öffnen; in einem geteilten Tab wirkt es auf den angeklickten Bereich. Das Menü beginnt mit den unten aufgeführten Bearbeitungsbefehlen; wenn Sie mit der rechten Maustaste auf einen Link klicken, stehen Link öffnen und Linkadresse kopieren davor, bei einem Link auf eine Datei Datei im Snippet-Editor öffnen und Pfad kopieren (siehe Links in der Terminalausgabe):

Eintrag Was es tut
Kopieren Kopiert den ausgewählten Text in die Zwischenablage und behält die Auswahl bei. Ausgegraut, wenn nichts ausgewählt ist.
Einfügen Sendet den Text aus der Zwischenablage an die Sitzung, genau wie das Einfügen-Tastenkürzel (siehe Text einfügen).
Puffer löschen Löscht den Scrollback und den Bildschirm, behält jedoch die Prompt-Zeile bei. Während ein Vollbildprogramm wie vim oder less läuft, tut es nichts. Unter Windows und Linux, wo der Befehl keine Taste hat, führt die Befehlspalette ihn per Tastatur für den fokussierten Bereich aus.
Suchen Öffnet die Suchleiste oben rechts im Bereich, gleichbedeutend mit Bearbeiten → Suchen... (Cmd+F auf macOS; unter Windows und Linux Ctrl+F geht zum Shell, also verwenden Sie diesen Eintrag oder die Befehls-Palette). Tippen, um Treffer hervorzuheben, drücken Sie Enter oder Down für den nächsten Treffer und Up für den vorherigen, sowie Esc zum Schließen der Leiste. Das Groß-/Kleinschreibung ignorieren Kontrollkästchen in der Leiste behandelt Groß- und Kleinschreibung gleich.

Darunter folgen die Einträge weiterer Funktionen, in dieser Reihenfolge und einige nur dort, wo sie zutreffen: Menüleiste anzeigen (während die Menüleiste ausgeblendet ist), Im Snippet-Editor öffnen, SFTP hier öffnen (nur SSH-Panes, siehe SFTP), das AI Untermenü, der Screenshot und die Notizeinträge des Sitzungsjournals, Vorheriger Prompt, Nächster Prompt, Letzte Ausgabe auswählen und Letzte Ausgabe kopieren oder Shell-Integration einrichten… (siehe Shell-Integration), Thema, Hervorhebung (siehe Hervorhebung von Schlüsselwörtern), Terminal-Effekt (nur wenn Terminaleffekte aktiviert sind, siehe Terminaleffekte), Neu verbinden und Befehls-Zeitstempel anzeigen. Das Extras-Untermenü am Ende enthält Terminal teilen, Schriftgröße (siehe Schriftgröße und Zoom) und Broadcast-Modus, gefolgt, während der Broadcast-Modus Bereiche ausschließt, wie viele er ausschließt (siehe Broadcast-Modus), und Multi-Exec: Diesen Bereich einbeziehen (siehe Multi-Exec).

Text einfügen

Jeder Weg, Text in ein Terminal einzufügen, läuft über korTTY: Bearbeiten → Einfügen, Cmd+V unter macOS, Ctrl+Shift+V unter Windows und Linux, Einfügen im Rechtsklick-Menü, ein Mittelklick, der unter Linux die X11-Primärauswahl und auf den anderen Systemen die Zwischenablage einfügt, sowie Text, den Sie auf einem Bereich ablegen. Der Text geht an den Bereich, in den Sie einfügen, und seine Zeilenumbrüche kommen als Enter an, so wie beim Tippen.

Hat das Programm im Bereich Bracketed Paste eingeschaltet, wie es bash, zsh, fish und die meisten Editoren tun, während sie auf Eingaben warten, bettet korTTY den Text in die Bracketed-Paste-Marker ein. Das Programm erhält ihn dann als einen eingefügten Block statt als getippte Tasten, sodass ein Zeilenumbruch darin nicht von sich aus einen Befehl ausführt. Bracketed-Paste-Marker im Text selbst werden zuvor entfernt, auch die 8-Bit-Form, die eine Einzelbyte-Zeichenkodierung sendet, sodass Text, der von einer Webseite oder aus einer Datei kopiert wurde, den Paste weder vorzeitig beenden noch seine restlichen Zeilen als getippte Befehle ausführen lassen kann.

Nach einer Wiederverbindung und nach einem Terminal-Reset (dem Befehl reset oder ESC c in der Ausgabe) verwendet ein Bereich kein Bracketed Paste, bis sein Programm es wieder einschaltet; bis dahin wirken eingefügte Zeilenumbrüche wie Enter. Eine Mosh-Verbindung, die sich nach einer Netzwerkunterbrechung erholt, setzt dieselbe Sitzung fort und behält den Zustand.

Einfügeschutz

Manche Einfügungen fragen nach, bevor sie den Bereich erreichen. korTTY zeigt dann, was Sie gleich einfügen, und sendet nichts, bis Sie Einfügen wählen. Welche Einfügungen nachfragen, legen Sie unter Einstellungen → Terminal → Einfügeschutz fest (siehe Terminal-Einstellungen):

  • Zeilenumbrüche: Standardmäßig fragt eingefügter Text mit Zeilenumbruch nach, außer das Programm im Bereich verwendet Bracketed Paste, denn sonst würde jeder Zeilenumbruch wie Enter wirken und einen Befehl ausführen. Auch eine einzelne Zeile, die mit einem Zeilenumbruch endet, fragt nach, da sie sofort ausgeführt würde. Mit Immer fragt jeder eingefügte Text mit Zeilenumbruch nach, ob mit Bracketed Paste oder ohne; mit Aus fragt keiner nach.
  • Steuerzeichen: Eingefügter Text mit Steuerzeichen wie Escape, Strg+C oder Strg+Z oder mit unsichtbaren Zeichen, die die Schreibrichtung ändern, fragt immer nach, wenn die Warnung nicht auf Aus steht, auch wenn das Programm Bracketed Paste verwendet. Das Terminal auf dem Server reagiert auf Strg+C, Strg+Z und Strg+S, bevor das Programm den eingefügten Text sieht, und Zeichen, die die Schreibrichtung ändern, lassen den Text anders aussehen, als er gesendet wird. Gewöhnlicher Text enthält sie nie.
  • Größe: Eingefügter Text über 5 KiB fragt unabhängig von der Warnungseinstellung nach, weil großer eingefügter Text ein langsames Programm oder Gerät überfluten kann und schwer zu prüfen ist. Setzen Sie die Größe auf 0, um diese Prüfung abzuschalten.

Eine Verbindung kann im Verbindungseditor ihre eigene Warnung für Zeilenumbrüche festlegen, zum Beispiel Immer für Produktionsserver, während Ihre anderen Verbindungen den Standard behalten; jeder Bereich folgt der Verbindung, die in ihm läuft (siehe Einfügeschutz pro Verbindung).

Ihre Organisation kann mit dem Schlüssel paste-warning ihrer Unternehmensrichtlinie festlegen, wie oft die Warnung mindestens nachfragt. Das Auswahlfeld in Einstellungen → Terminal trägt dann den Hinweis „Verwaltet von Ihrer Organisation“ und bietet nur diese Stufe und strengere an, und weder Einstellungen → Terminal noch die eigene Warnung einer Verbindung oder eine Teamwork-Verbindung kann seltener nachfragen; eine Auswahl, die öfter nachfragt, bleibt erhalten.

Text, den der KI-Assistent geschrieben hat und den korTTY für Sie in einen Bereich einfügt, unterliegt strengeren Regeln als ein eigenes Einfügen, weil das, was ein Modell schreibt, durch Terminalausgaben oder ein gelesenes Dokument gesteuert werden kann. Ein Zeilenumbruch oder ein Steuerzeichen darin führt immer zu einer Nachfrage, egal was Einstellungen → Terminal, die eigene Warnung einer Verbindung oder die Unternehmensrichtlinie erlauben würden, und eine Größe über dem Schwellenwert fragt wie üblich nach. Steuerzeichen und richtungsändernde Zeichen werden entfernt, bevor der Text gesendet wird, sodass er nie Strg+C drücken oder eine Escape-Sequenz senden kann. Er gelangt nur in den einen Bereich, für den er bestimmt war, und nie in einen Bereich, während in dessen Tab der Broadcast-Modus eingeschaltet ist oder der Bereich an Multi-Exec teilnimmt: korTTY sendet dann nichts und fragt nicht nach. Der Dialog weist darauf hin, dass der Text vom KI-Assistenten stammt.

Paste confirmation

Der Dialog benennt den Bereich nach der Verbindung, die darin läuft – bei einem mit Rechts teilen (neue Verbindung) oder Unten teilen (neue Verbindung) geöffneten Bereich kann das ein anderer Server sein als der des Tabs –, zeigt die Zahl der Zeilen und die Größe, nennt die Gründe für die Nachfrage und gibt an, ob das Programm im Bereich Bracketed Paste verwendet. Die Vorschau zeigt den Anfang des Textes, Steuerzeichen als Symbole (etwa ␛ für Escape) und unsichtbare Zeichen als <U+XXXX>. Außerdem weist der Dialog darauf hin, wenn der Text aus der Mittelklick-Auswahl stammt, wenn Bracketed-Paste-Marker darin entfernt werden und wenn der Broadcast-Modus eingeschaltet ist: Eingefügter Text geht immer nur an den Bereich, in den Sie einfügen. Kopieren im Rechtsklick-Menü der Vorschau folgt dem internen Zwischenablagemodus der Unternehmensrichtlinie. Legt die Verbindung des Bereichs ihre eigene Warnung fest und ist diese Warnung der Grund für die Nachfrage, sagt der Dialog das und verweist auf den Verbindungseditor statt auf Einstellungen → Terminal; die Größenprüfung ändern Sie immer unter Einstellungen → Terminal.

Abbrechen ist die Standardschaltfläche und hat den Fokus, sodass Enter, Space und Esc das Einfügen verwerfen und vorausgetippte Eingaben es nie bestätigen können. Klicken Sie auf Einfügen, um einzufügen, oder wechseln Sie mit Tab dorthin und lösen Sie die Schaltfläche mit Space aus. Ein zweites Einfügen in denselben Bereich, während der Dialog offen ist, wird ignoriert, und eingefügter Text, den Sie erst bestätigen, nachdem sich der Bereich neu verbunden hat, wird verworfen, statt die neue Sitzung zu erreichen.

Ob Bracketed Paste aktiv ist, bestimmt der Server

Ob das Programm Bracketed Paste verwendet, teilt das Programm auf dem Server dem Terminal mit, und jede Ausgabe kann das behaupten: Eine präparierte Datei, die Sie mit cat anzeigen, oder eine Anmeldemeldung kann es in einer Shell einschalten, die es nicht beherrscht, etwa sh oder die Konsole vieler Netzwerkgeräte. Eingefügte Zeilenumbrüche werden dann ohne Warnung als Befehle ausgeführt. Wenn Sie auf Produktionsservern arbeiten, wählen Sie Immer, hier für alle Verbindungen oder im Verbindungseditor nur für diese Server.

Einfügen in langsame Geräte

Switches, Router, Konsolenserver und andere Geräte hinter SSH können Eingaben verlieren, die schneller ankommen, als sie sie lesen, sodass bei einer eingefügten Konfiguration Zeichen oder ganze Zeilen fehlen. Stellen Sie Pause nach jeder eingefügten Zeile unter Einstellungen → Terminal → Einfügeschutz ein (0 bis 1.000 ms; 0, der Standard, schaltet die Pause ab), dann sendet korTTY mehrzeiligen eingefügten Text Zeile für Zeile, mit dieser Pause nach jeder Zeile. Eine einzelne Zeile geht weiterhin sofort hinaus, und eingefügter Text, der eine Bestätigung verlangt, wird Zeile für Zeile gesendet, nachdem Sie Einfügen gewählt haben. Eine Verbindung kann im Verbindungseditor eine eigene Pause oder keine festlegen, sodass nur die Bereiche des Konsolenservers verlangsamt werden.

Während die Zeilen gesendet werden, zeigt die untere rechte Ecke des Bereichs, wie weit das Einfügen ist, etwa Füge Zeile 3 von 40 ein · Esc bricht ab. Der Bereich nimmt währenddessen keine Tastatureingaben an, sodass nichts, was Sie tippen, zwischen zwei eingefügten Zeilen landet; unter macOS funktionieren Cmd-Tastenkürzel weiterhin, und die Suchleiste des Bereichs nimmt Ihre Eingaben weiterhin an. Drücken Sie Esc, um das Einfügen abzubrechen: Die restlichen Zeilen werden nicht gesendet. Verwendet das Programm im Bereich Bracketed Paste, kommen die zeilenweise gesendeten Zeilen trotzdem als ein eingefügter Block an, und der Abbruch beendet diesen Block, sodass die bereits gesendeten Zeilen in der Eingabezeile des Programms stehen bleiben, ohne ausgeführt zu werden.

Ein neues Einfügen in den Bereich wird ignoriert, bis das zeilenweise Einfügen fertig ist, und im Broadcast-Modus werden die Tasten, die Sie in den anderen Bereichen tippen, nicht an ihn gesendet. Das Schließen des Bereichs, eine Wiederverbindung und das Schließen des Tabs brechen das Einfügen ab.

Text ablegen

Ziehen Sie Text aus einer anderen Anwendung, etwa einem Browser oder Editor, oder aus einem anderen korTTY-Fenster, und legen Sie ihn auf einem Terminalbereich ab, um ihn dort einzufügen. Er landet im Bereich unter dem Mauszeiger, der nicht der Bereich sein muss, in dem Sie getippt haben, und dieser Bereich wird zum fokussierten Bereich. Abgelegter Text wird wie jeder andere eingefügte Text behandelt: Bracketed-Paste-Marker darin werden entfernt, der Einfügeschutz fragt zuerst nach, wenn seine Regeln es verlangen, mit einem Hinweis im Dialog, dass der Text auf das Terminal gezogen wurde, und eine eingestellte Zeilenpause sendet ihn Zeile für Zeile. Der Text wird immer kopiert, sodass die Anwendung, aus der Sie ihn ziehen, ihn behält. Ein Bereich, der nicht verbunden ist oder noch zeilenweise einfügt, nimmt den abgelegten Text nicht an.

Abgelegte Dateien werden in SSH-Tabs dagegen per SFTP auf den Server kopiert. Ein Ziehvorgang, der Dateien zusammen mit ihrem Pfad als Text mitbringt, wie einer aus dem Finder oder Explorer, kopiert die Dateien und fügt den Pfad nie ein. Beides erfordert Drag-and-Drop ins Terminal erlauben unter Einstellungen → Terminal (standardmäßig eingeschaltet); ist die Einstellung aus, nimmt das Terminal weder Dateien noch Text an. Mit dem internen Zwischenablagemodus der Unternehmensrichtlinie wird Text, der aus einer anderen Anwendung gezogen wird, abgelehnt, genau wie das Einfügen aus der Zwischenablage des Betriebssystems, während Text, der innerhalb von korTTY gezogen wird, weiterhin eingefügt wird. Wenn Ihre Organisation die Dateiübertragung mit der Unternehmensrichtlinie abschaltet (file-transfer = "deny"), nimmt ein Terminalbereich keine abgelegten Dateien an: Der Mauszeiger zeigt beim Ziehen kein Kopiersymbol, und nichts wird kopiert.

Abgelegte Dateien gehen an den Server des Bereichs unter dem Mauszeiger, der zum fokussierten Bereich wird, und zwar in das Verzeichnis, in dem sich dessen Shell befindet. Eine Datei in einem abgelegten Ordner, die ein Link ist, wird mit dem Inhalt kopiert, auf den sie verweist; ein Link auf einen Ordner wird übersprungen, sodass ein Link, der im Baum nach oben zurückverweist, den Kopiervorgang nicht endlos laufen lassen kann, und das Fortschrittsfenster gibt an, wie viele verlinkte Ordner ausgelassen wurden. Scheint der Bereich als anderer Benutzer oder auf einem anderen Host zu laufen, zum Beispiel nach su, sudo -i oder einem verschachtelten ssh, kopiert korTTY die Dateien nicht und nennt den Grund: Die Dateien würden weiterhin mit der Anmeldung geschrieben, mit der der Tab geöffnet wurde, in ein Verzeichnis, das jemand anderem gehören kann. Verlassen Sie die innere Shell mit exit und legen Sie die Dateien erneut ab. Ein Ablegen auf einem Tab, dessen SSH-Sitzung gerade geschlossen wurde, meldet, dass die Sitzung geschlossen ist.

korTTY erkennt einen anderen Host auch an den Verzeichnismeldungen, die eine Shell per OSC 7 sendet und die den Hostnamen enthalten. Der erste Host, der gemeldet wird, solange die Sitzung noch die ist, bei der Sie sich angemeldet haben, wird zum eigenen Host der Sitzung; localhost, ein leerer Host und der vollständige Name dieses Hosts (etwa web01.example.com für web01) gelten als derselbe. Nennt eine Meldung einen anderen Host, behält korTTY das bisherige Verzeichnis bei und behandelt den Bereich als anderswo laufend, bis sich der ursprüngliche Host wieder meldet oder der Tab neu verbindet; ein Prompt, der lediglich wie Ihre eigene Anmeldung aussieht, beendet diesen Zustand nicht.

Programme können mit der OSC-8-Escape-Sequenz anklickbare Links im Terminal ausgeben; GCC kann zum Beispiel eine Warnung mit ihrer Dokumentation verlinken. Um einen solchen Link zu öffnen, halten Sie Cmd (macOS) bzw. Ctrl (Windows und Linux) gedrückt und klicken ihn an: Er öffnet sich in Ihrem Standardbrowser, ein mailto-Link in Ihrem Mailprogramm. Nur http-, https-, ftp-, ftps- und mailto-Links öffnen sich im Browser oder Mailprogramm (file:-Links öffnen sich als Text im Snippet-Editor, siehe unten), und ein mailto-Link darf nur Empfänger (to, cc, bcc), subject, body und in-reply-to ausfüllen.

Derselbe Klick öffnet eine Web- oder E-Mail-Adresse, die ein Programm als Klartext ausgibt, etwa die Adresse in einer Logzeile, einer Compiler-Meldung oder einem git push-Hinweis: Eine Webadresse öffnet sich in Ihrem Standardbrowser, eine E-Mail-Adresse wie ops@example.com als neue Mail an diese Adresse. Ein Punkt, Komma, Anführungszeichen oder eine schließende Klammer direkt nach einer Adresse gehört nicht dazu, und eine Adresse, die in die nächsten Zeilen umbricht, wird von jeder ihrer Zeilen aus gefunden. korTTY sucht die Adresse erst, wenn Sie klicken, und zwar in dem Text, den das Terminal in diesem Moment anzeigt; so öffnet sich auch eine Adresse vollständig, die ein Programm in mehreren Teilen ausgegeben hat, und die Ausgabe wird nicht langsamer. korTTY liest höchstens 16 Zeilen über und unter dem Klick (in einem sehr breiten Terminal weniger) und lässt eine Adresse, die darüber hinausreicht, unberührt, statt sie abgeschnitten zu öffnen. Was die folgenden Absätze über das Anklicken eines Links und über Links sagen, die sich nie öffnen, gilt auch für diese Adressen. Um dies auszuschalten, deaktivieren Sie Web-Adressen, E-Mail-Adressen und Dateipfade im Terminaltext erkennen unter Einstellungen → Terminal → Links; mit OSC 8 ausgezeichnete Links funktionieren weiterhin.

In SSH- und lokalen Shell-Tabs öffnet derselbe Klick einen Dateipfad, den ein Programm ausgibt, etwa /var/log/syslog, ~/notes.txt, ./build.gradle.kts oder das src/main/App.java:42:7 einer Compiler-Meldung, als Text im Snippet-Editor. Ein relativer Pfad braucht ein / und eine Dateiendung oder eine Zeilennummer, sodass Wörter wie and/or oder 24/7 Klartext bleiben, und Zeile und Spalte nach dem Pfad (:42, :42:7, (42,7)) gehören nicht zum Dateinamen. korTTY liest die Datei auf dem Rechner, auf dem die Sitzung läuft: über SFTP in einem SSH-Tab, von Ihrer Festplatte in einem lokalen Shell-Tab. Ein relativer Pfad wird zum Zeitpunkt des Klicks relativ zum aktuellen Verzeichnis der Shell aufgelöst (~ relativ zu Ihrem Home-Verzeichnis), sodass derselbe Text nach einem cd eine andere Datei bezeichnen kann; der Snippet-Editor zeigt den vollständigen Pfad an, den er geöffnet hat. Es öffnet sich nur eine reguläre UTF-8-Textdatei mit höchstens 10 MB; bei einem Verzeichnis, einer fehlenden Datei, einer Binärdatei oder einer größeren Datei nennt korTTY stattdessen den Grund. Netzwerkpfade wie \\server\share\x oder //server/share/x, Gerätepfade und das Home-Verzeichnis eines anderen Benutzers (~user/...) öffnen sich nie, sodass ein Klick Windows nicht dazu bringen kann, sich bei einem in der Ausgabe genannten Server anzumelden. Pfad-Links folgen Im Snippet-Editor öffnen: Die Unternehmensrichtlinie, die diesen Eintrag entfernt, schaltet auch sie ab, ihr schreibgeschützter Modus verhindert, dass die Datei auf den Server zurückgeschrieben wird, und nach su oder einem inneren ssh verweigert korTTY das Öffnen der Datei, statt sie als falscher Benutzer zu lesen. Mosh-Tabs haben keine Datei-Links.

file:-Links per OSC 8, wie sie ls --hyperlink, eza --hyperlink oder rg --hyperlink-format=default auf Dateinamen setzen, öffnen sich in SSH- und lokalen Shell-Tabs auf dieselbe Weise, aber schreibgeschützt: Das Programm, das den Link ausgegeben hat, hat die Datei hinter seinem Text gewählt, deshalb hält der Snippet-Editor Überschreiben und Speichern unter... gesperrt und lässt Sie den Text nur als Snippet speichern. Ein solcher Link öffnet sich nur, wenn er keinen Host, localhost oder den Host nennt, auf dem die Sitzung läuft: den Host, mit dem sich der Tab verbunden hat, den Host, den sein Prompt anzeigt, oder bei einer lokalen Shell den Namen dieses Computers (ein Kurzname wie web01 passt zu web01.example.com). Ein Link auf einen anderen Host, auf eine Netzwerkfreigabe (file:////server/share/...) oder mit Steuerzeichen im Pfad öffnet sich nicht, und in Mosh-Tabs bleibt jeder file:-Link Klartext.

Ein Link öffnet sich nur bei einem einzelnen Klick mit Cmd / Ctrl, bei dem sich die Maus zwischen Drücken und Loslassen der Taste nicht bewegt. Ein einfacher Klick auf einen Link bewirkt nichts, sodass ein Klick, der nur den Fokus in einen Bereich setzt, nie eine Seite öffnet. Ein Doppelklick auf einen Link wählt wie bei anderem Text sein Wort aus und ein Dreifachklick seine Zeile, und weder ein Doppelklick mit Cmd / Ctrl noch eine Auswahl, die Sie über den Bildschirm ziehen, öffnet den Link, auf dem sie endet. Auch Ctrl+Alt mit einem Klick öffnet keinen Link, weil Windows AltGr als Ctrl+Alt meldet. Der Klick mit Modifikatortaste funktioniert auch, während ein Programm wie tmux oder vim die Maus verwendet.

Alle anderen Links bleiben Klartext und bewirken beim Anklicken nichts: news:-, javascript:- und data:-Links, mailto-Links mit einem anderen Feld (einige Mailprogramme hängen die in einem attach-Feld genannte lokale Datei an) sowie Links, die Leerzeichen, Steuerzeichen oder unsichtbare richtungsändernde Zeichen (Bidi-Zeichen) enthalten oder länger als 8 KB sind. Wohin ein Link zeigt, bestimmt, wer ihn ausgibt – ein Server, eine Logdatei, die Sie mit cat anzeigen, die Ausgabe eines Programms –, deshalb übergibt korTTY einen Link nie an den Dateiöffner des Betriebssystems, der Programme und Skripte starten würde: Eine Datei öffnet sich immer nur als Text im Snippet-Editor.

Verlinkter Text wird in den Farben und mit dem Fettdruck, der Kursivschrift und der invertierten Darstellung gezeichnet, die das Programm dafür gewählt hat, nicht in der Standardtextfarbe des Terminals, und auch ein Farb- oder Attributwechsel mitten in einem Link wird angezeigt. Eine Auswahl oder ein Suchtreffer auf einem Link wird wie bei anderem Text hervorgehoben. Ein mit OSC 8 ausgezeichneter Link ist unterstrichen, solange Sie Cmd (macOS) bzw. Ctrl (Windows und Linux) über ihm gedrückt halten, also genau dann, wenn ein Klick ihn öffnet. Terminalaufzeichnungen behalten ebenfalls die Farben, den Fettdruck und die invertierte Darstellung von verlinktem Text bei.

Lassen Sie die Maus auf einem Link ruhen, um zu sehen, wohin er führt, bevor Sie ihn öffnen. Der Zeiger wird zur Hand, eine als Klartext ausgegebene Web- oder E-Mail-Adresse wird unterstrichen (ein mit OSC 8 ausgezeichneter Link, solange Sie Cmd / Ctrl gedrückt halten), und nach einer halben Sekunde zeigt ein Tooltip Cmd+Klick zum Öffnen (macOS) bzw. Strg+Klick zum Öffnen (Windows und Linux) und die Adresse, die der Link wirklich öffnet. Bei einer Datei zeigt der Tooltip Cmd+Klick zum Öffnen im Snippet-Editor bzw. Strg+Klick zum Öffnen im Snippet-Editor und den Pfad, bei einem file:-Link per OSC 8 dessen vollständiges file://-Ziel. Bei einem mit OSC 8 ausgezeichneten Link ist der Tooltip die einzige Stelle, die sein Ziel zeigt, denn das Programm kann dafür beliebigen Text ausgeben. Der Tooltip schreibt einen internationalen Hostnamen in seiner xn---Form, sodass ein Buchstabe aus einem anderen Alphabet, der nur wie ein lateinischer aussieht, auffällt, und er zeigt Leerzeichen, Steuerzeichen und unsichtbare richtungsändernde Zeichen (Bidi-Zeichen) als %-Codes; eine sehr lange Adresse wird am Ende gekürzt, ihr Host aber immer vollständig angezeigt. Eine Adresse, die korTTY nicht öffnet, etwa ein E-Mail-Link mit einem attach-Feld oder ein file:-Link auf einen anderen Host, bekommt keine Hand, und ihr Tooltip sagt, dass korTTY sie nicht öffnet. Unterstreichung und Tooltip verschwinden, wenn Sie den Link mit der Maus verlassen, eine Auswahl ziehen, scrollen, tippen oder zu einem anderen Fenster wechseln, und sie folgen dem Text, wenn neue Ausgabe ihn verschiebt.

Ist der Text eines OSC-8-Links selbst eine Webadresse auf einem anderen Host als dem, den der Link öffnet, etwa https://example.com/login, ausgegeben für einen Link auf https://login.example.net/ oder auf einen file:-Pfad, fragt ein Klick mit Cmd / Ctrl nach, bevor er den Link öffnet. Die Rückfrage nennt den Host, den der Text zeigt, und die Adresse, die der Link öffnet, in derselben Form wie der Tooltip, und Abbrechen ist die Standardschaltfläche, sodass Enter den Link nicht öffnet. Hostnamen werden ohne Rücksicht auf Groß-/Kleinschreibung, einen abschließenden Punkt oder ein vorangestelltes www. verglichen, und ein Link, dessen Text keine Webadresse ist, etwa ein Wort oder ein Dateiname, fragt nie nach.

Statt eine Taste gedrückt zu halten, können Sie mit der rechten Maustaste auf einen Link klicken: Das Kontextmenü beginnt dann mit Link öffnen und Linkadresse kopieren. Link öffnen öffnet den Link genau wie ein Klick mit Cmd / Ctrl, einschließlich der oben beschriebenen Rückfrage bei einem Link, dessen Text einen anderen Host zeigt. Linkadresse kopieren kopiert die Adresse in die Zwischenablage: bei einem OSC-8-Link die Adresse, die er wirklich öffnet, in der Form, die Ihr Browser erhält (ein internationaler Hostname in seiner xn---Form wie im Tooltip, aber nie gekürzt), nicht den Text, den das Programm dafür ausgegeben hat; bei einer als Klartext ausgegebenen Web- oder E-Mail-Adresse die Adresse so, wie sie ausgegeben wurde, eine E-Mail-Adresse also ohne mailto:. Mit dem internen Zwischenablagemodus der Unternehmensrichtlinie bleibt die Adresse innerhalb von korTTY. Bei einem Link auf eine Datei lauten die beiden Einträge Datei im Snippet-Editor öffnen, das sie wie ein Klick mit Cmd / Ctrl öffnet, und Pfad kopieren, das den Pfad ohne nachfolgende Zeilennummer kopiert; bei einem file:-Link per OSC 8 ist das der Pfad, den der Link wirklich öffnet, nicht der Text, den das Programm ausgegeben hat. Das Menü wirkt auf den Link, der sich in dem Moment unter dem Zeiger befand, als Sie die rechte Maustaste gedrückt haben, sodass neue Ausgabe, die vor dem Öffnen des Menüs eintrifft, daran nichts ändert, und es funktioniert auch, während ein Programm wie tmux oder vim die Maus verwendet. Ein Link, den korTTY nicht öffnet, etwa ein E-Mail-Link mit einem attach-Feld oder ein file:-Link auf einen anderen Host, erhält keinen der beiden Einträge.

Schnellauswahl

Die Schnellauswahl kopiert oder öffnet ohne Maus, was das Terminal anzeigt. Drücken Sie Cmd+Shift+Space (macOS) bzw. Ctrl+Shift+Space (Windows und Linux) oder wählen Sie Bearbeiten → Schnellauswahl: korTTY legt einen Rahmen um jede Webadresse, jeden Dateipfad, jede E-Mail-Adresse, UUID, IP-Adresse (IPv4 mit optionalem Port sowie IPv6), jeden Git-Commit-Hash und jede Zahl mit vier oder mehr Ziffern, die der fokussierte Bereich anzeigt, und setzt ein Kürzel aus einem oder zwei Buchstaben über die ersten Zeichen. Tippen Sie ein Kürzel, um dessen Text in die Zwischenablage zu kopieren; darüber erscheint kurz Kopiert. Halten Sie Shift gedrückt, während Sie den letzten Buchstaben des Kürzels tippen, um eine Webadresse in Ihrem Browser, eine E-Mail-Adresse als neue Mail oder in SSH- und lokalen Shell-Tabs einen Dateipfad im Snippet-Editor zu öffnen, genau wie ein Klick mit Cmd / Ctrl darauf; Shift mit dem Kürzel von etwas anderem kopiert es wie das Kürzel allein.

Die Kürzel beginnen in der untersten Zeile, sodass die neueste Ausgabe die ersten erhält. Bis zu 26 verschiedene Texte erhalten je einen Buchstaben, die Grundreihe zuerst (a, s, d, f, ...), sofern Sie keine eigenen Kürzelbuchstaben gewählt haben; bei mehr Texten hat jedes Kürzel zwei Buchstaben, und der erste Buchstabe, den Sie tippen, blendet die Kürzel aus, die nicht mit ihm beginnen, während Backspace ihn zurücknimmt. Derselbe Text an mehreren Stellen erhält ein einziges Kürzel, und höchstens 676 verschiedene Texte erhalten eines (mit eigenen Buchstaben deren Anzahl zum Quadrat). Ein Buchstabe, mit dem kein Kürzel weitergeht, wird ignoriert. Kürzel verwenden die Tasten, nicht die Zeichen, die diese tippen, sodass die Feststelltaste nie aus einem Kopieren ein Öffnen macht.

Esc beendet die Schnellauswahl, ohne etwas zu tun, ebenso jede Taste, die kein Kürzelbuchstabe ist, etwa eine Pfeiltaste, Enter, Space, eine Ziffer oder ein Buchstabe mit Ctrl, Alt oder Cmd. Auch ein Klick in den Bereich, Scrollen, der Wechsel zu einem anderen Tab oder Fenster, eine Größenänderung des Bereichs und eine Änderung der Schriftgröße beenden sie. Shift, Ctrl und die anderen Modifikatortasten allein ändern nichts, und das Gedrückthalten der Tasten, die die Schnellauswahl gestartet haben, startet sie nicht erneut. Überschreibt das Programm während der Schnellauswahl einen markierten Text, verliert dieser Text seinen Rahmen und sein Kürzel, die anderen behalten ihre; ist nichts mehr übrig, endet die Schnellauswahl.

Während die Schnellauswahl läuft, erreicht nichts, was Sie tippen, das Programm im Bereich: weder die Kürzelbuchstaben noch die Zeichen, die sie tippen würden, noch der Text einer Eingabemethode für Chinesisch, Japanisch oder Koreanisch, und im Broadcast-Modus auch nicht die anderen Bereiche. Kopien laufen über die Zwischenablage von korTTY, sodass der interne Zwischenablagemodus der Unternehmensrichtlinie sie innerhalb von korTTY hält. Die Schnellauswahl liest die Zeilen, die der Bereich an seiner Scrollposition anzeigt, einschließlich des Scrollbacks, wenn Sie zurückgescrollt haben, und lässt einen Text aus, der über die oberste oder unterste Zeile hinausreicht, statt ihn abgeschnitten anzubieten. Sie hängt nicht von Web-Adressen, E-Mail-Adressen und Dateipfade im Terminaltext erkennen unter Einstellungen → Terminal → Links ab. Sie braucht einen Terminal-Tab: In einem Snippet-Editor- oder Dateieditor-Tab bleibt Cmd+Shift+Space / Ctrl+Shift+Space beim Editor, und Bearbeiten → Schnellauswahl ist deaktiviert. Befindet sich die Tastatur in einer Seitenleiste eines Terminal-Tabs, etwa im KI-Chat, geht die Tastenkombination zuerst an diese Seitenleiste, und Bearbeiten → Schnellauswahl startet die Schnellauswahl von dort aus.

Eigene Muster und Kürzelbuchstaben

Neben dem, was sie selbst findet, kann die Schnellauswahl Text mit Kürzeln versehen, der nur für Sie zählt, etwa Ticketnummern, Hostnamen oder Bestellnummern. Geben Sie unter Schnellauswahl-Muster in Einstellungen → Terminal → Links einen regulären Ausdruck pro Zeile ein, zum Beispiel [A-Z]+-\d+ für JIRA-4711 oder web\d+\.prod\.example\.com für Ihre Webserver. Die Muster verwenden die Syntax regulärer Ausdrücke von Java und unterscheiden Groß- und Kleinschreibung, sofern sie nicht mit (?i) beginnen. Jeder Text, den ein Muster in den Zeilen trifft, die der Bereich anzeigt, erhält einen Rahmen und ein Kürzel wie die eingebauten Arten; das Kürzel zu tippen kopiert ihn, ebenso Shift mit dem Kürzel. Ein Treffer bleibt innerhalb einer Ausgabezeile, und eine Zeile, die über mehrere Bildschirmzeilen umbricht, zählt als eine Zeile. Leerzeichen an den Enden eines Treffers werden weggelassen; um nur einen Teil dessen mit einem Kürzel zu versehen, wonach Sie suchen, verwenden Sie ein Lookaround, etwa (?<=ticket #)\d+ für die Ziffern nach ticket #.

Wo ein Treffer Ihres Musters eine Webadresse, einen Pfad, eine Zahl oder einen anderen Treffer überlappt, den die Schnellauswahl selbst findet, erhält der längere das Kürzel, bei gleicher Länge Ihrer: JIRA-4711 wird als Ganzes angeboten statt der darin enthaltenen Zahl, während eine Webadresse, die ihn enthält, eine Webadresse bleibt. Überlappen sich zwei Ihrer Muster, gewinnt der längere Treffer, bei gleicher Länge das Muster weiter oben in der Liste.

Die Einstellungen nehmen bis zu 16 Muster mit je bis zu 512 Zeichen an. Ein Muster, das kein gültiger regulärer Ausdruck ist, das auch leeren Text trifft wie a* oder das ein unsichtbares Steuerzeichen enthält, das die Einstellungsdatei nicht speichern kann und das nie auf dem Bildschirm erscheint, wird rot unter dem Feld mit seiner Zeilennummer erklärt, und Speichern hält den Dialog offen, bis Sie es korrigieren oder entfernen. Weil der Text auf dem Bildschirm von Programmen stammt, auch auf Servern, darf jedes Muster höchstens 10 ms für eine Zeile und alle Muster zusammen höchstens 100 ms für eine Schnellauswahl brauchen: Ein Muster, das länger braucht, etwa (a+)+$ auf einer langen Folge von a, wird für den Rest dieser Schnellauswahl übersprungen, und die Schnellauswahl versieht mit Kürzeln, was sie bis dahin gefunden hat. Änderungen gelten beim nächsten Start der Schnellauswahl.

Buchstaben der Schnellauswahl-Kürzel legt die Buchstaben fest, aus denen die Kürzel bestehen, in der Reihenfolge ihrer Verwendung, zum Beispiel jfkdls, damit die Kürzel unter einer Hand bleiben. Das Feld verlangt mindestens zwei verschiedene Kleinbuchstaben von a bis z: Ein Großbuchstabe ist nicht möglich, weil Shift mit einem Kürzel dessen Treffer öffnet, und eine Ziffer, ein Satzzeichen oder jede andere Taste würde die Schnellauswahl beenden. Mit n Buchstaben erhalten bis zu n verschiedene Texte ein Kürzel aus einem Buchstaben und höchstens n × n überhaupt ein Kürzel. Lassen Sie das Feld für den Standard leer, asdfqwerzxcvjklmiuopghtybn.

Schriftgröße und Zoom

Passen Sie die Schriftgröße des aktiven Terminals im Handumdrehen an, ohne die Verbindung erneut herzustellen:

Verknüpfung Aktion
Alt++ Zoom ein (Schriftgröße vergrößern)
Alt+- Verkleinern (Schriftgröße verringern)
Alt+0 Zoom zurücksetzen auf gespeicherte/Standard-Schriftgröße
Ctrl + Mausrad Vergrößern/verkleinern Sie das Terminal (Befehlstaste + Rad unter macOS)

Wenn Sie Ctrl (oder Cmd unter macOS) gedrückt halten und mit dem Mausrad über das Terminal scrollen, ändert sich die Schriftgröße – Rad nach oben vergrößert, Rad nach unten verkleinert – anstatt durch den Puffer zu scrollen. Dies ergänzt die Tastenkombinationen Alt++ / Alt+- / Alt+0.

Zoom zurücksetzen stellt die Schriftgröße und -familie wieder her, wie sie bei der Verbindung waren, als Sie den Tab geöffnet haben (oder die gespeicherten Einstellungen der Verbindung oder die globale Vorgabe). Das Kontextmenü des Terminals hat dieselben Steuerelemente: Rechtsklick → Extras → Schriftgröße → Vergrößern, Verkleinern (jeweils zwei Punkte pro Schritt) oder Zurücksetzen. Der Zoom-Level gilt für den aktuellen Tab – alle seine geteilten Bereiche ändern sich gemeinsam – und lässt andere Tabs unverändert.

Hintergrundtransparenz

Ansehen → Hintergrund-Transparenz ist ein Schieberegler (0–100 %), der den Terminalhintergrund durchsichtig zum Desktop macht, während der Text vollständig und scharf bleibt. Bei 0 % ist der Hintergrund fest; höhere Werte lassen mehr vom Desktop durchscheinen. Der Wert wird gespeichert und bei Neustarts wiederhergestellt.

Nur der Terminal-Bereich wird transparent — die Titelzeile, Menüleiste, Statusleiste und jede Tab ohne Terminal bleiben fest, sodass das Fenster niemals zu einem durchsichtigen Loch wird.

Horizontale, vertikale und geschachtelte Split-Terminals erben den aktiven Transparengrad, einschließlich der Panes, die nach der Aktivierung der Transparenz hinzugefügt wurden. Der Eintritt in Vollbild mit F12 oder in Vollbild mit nur Terminal-Modus mit Ctrl+Shift+F macht die Terminalfläche vorübergehend opak, ohne den gespeicherten Wert zu ändern; das Verlassen des Vollbildmodus setzt diesen Wert jedem Pane zurück.

Da ein durchsichtiges Fenster einen anderen Fensterstil verwendet, den das Betriebssystem beim Öffnen des Fensters korrigiert, wird das Ein- oder Ausschalten der Transparenz (Überschreiten von 0 %) erst nach einem Neustart vollständig wirksam; Die Statusleiste zeigt einen Hinweis an, wenn Sie diesen Schwellenwert überschreiten. Das Anpassen des Pegels bereits im transparenten Modus wird live angewendet. Im transparenten Modus verwendet das Fenster eine schlanke benutzerdefinierte Titelleiste (Ziehen zum Verschieben, Schaltflächen zum Minimieren/Maximieren/Schließen, Doppelklick auf den Streifen zum Maximieren, Ziehen an den Rändern zum Ändern der Größe).

Der Schieberegler befindet sich nur in der Menüleiste im Fenster (die native macOS-Menüleiste kann keinen Schieberegler hosten).

Seitenleiste Remote-Dateien

Ansicht → Seitenleiste Remote-Dateien andockt eine schmale Dateiliste neben den Fenstern jedes Terminal-Tabs: Links andocken oder Rechts andocken wählt die Seite, und Seitenleiste Remote-Dateien ein-/ausblenden zeigt sie an oder versteckt sie. Sie zeigt den Ordner, in dem sich die Shell des fokussierten SSH-Panes befindet, und folgt ihm, während Sie cd umhergehen. Standardmäßig ist sie deaktiviert; die Position und die Breite, auf die Sie sie ziehen, werden gespeichert (Einstellungen → Terminal → Seitenleiste Remote-Dateien). Tabs mit nur lokalen Shell- oder Mosh-Panes zeigen keine Seitenleiste.

The remote files sidebar beside a terminal pane, following the shell into /var/www/shop

Die Seitenleiste listet über einen SFTP-Kanal der eigenen SSH-Sitzung des Panels, wie SFTP hier öffnen, sodass kein zweites Login, MFA-Prompt oder Zugriffsgrund erforderlich ist. Der Kanal öffnet sich das erste Mal, wenn die Seitenleiste in diesem Tab angezeigt wird, und schließt sich, wenn Sie die Seitenleiste ausblenden oder den Tab schließen. Ein in einem anderen Ort verbundenes Split-Pane wird mit seiner eigenen Sitzung verfolgt, wenn Sie darauf klicken; ein Klick in ein lokales oder Mosh-Pane lässt die Seitenleiste dort, wo sie ist. Während ein Transfer läuft, bleibt die Seitenleiste an ihrem Pane, bis die Transfers abgeschlossen sind, und die Seitenleiste gibt dies an.

So folgt sie der Shell:

  • Ordner, die die Shell meldet (OSC 7 aus einem Prompt-Hook oder der Agent-Hook von korTTY), werden nach einer kurzen Pause von deutlich unter einer Sekunde übernommen, in der korTTY zuerst prüft, ob der Prompt noch zu Ihrer eigenen Sitzung gehört; bei mehreren schnell aufeinanderfolgenden cd wird daher nur der letzte Ordner aufgelistet.
  • Einem eingetippten cd folgt sie erst, wenn der nächste Prompt den eigenen Benutzer und Host der Sitzung zeigt oder eine Shell mit Shell-Integration ihren nächsten Prompt markiert. Ein cd, das in einem Editor, einem Container oder einer verschachtelten Anmeldung eingetippt wird oder fehlschlägt, wird nie aufgelistet.
  • Ein anderer Benutzer oder Host (nach su, sudo -i, einem inneren ssh oder einem Container-Prompt) pausiert die Seitenleiste: Das Banner zeigt Folgt nicht: ein anderer Benutzer oder Host ist aktiv, und die letzte Auflistung bleibt stehen. Sie prüft den Prompt alle ein bis zwei Sekunden erneut und folgt wieder, sobald der Prompt den ursprünglichen Benutzer zeigt, zum Beispiel nach exit.
  • Die Pin-Schaltfläche beendet das Folgen und behält den angezeigten Ordner bei; wird die Anheftung gelöst, erscheint der Ordner, bis zu dem die Seitenleiste der Shell zuletzt gefolgt ist.

Die Liste hat Name, Größe und Geändert Spalten. Die Seitenleiste durchsucht nur: doppelklicken Sie auf einen Ordner oder klicken Sie auf einen Teil des Pfads über der Liste, um sich umzusehen, und geben Sie in das Filterfeld ein, um die Liste nach Namen einzuschränken. Es wird niemals in das Terminal getippt. Ein Ordner, der verschwunden ist, behält die letzte Auflistung bei und zeigt unter ihm Ordner nicht gefunden an. Schaltflächen in der Kopfzeile aktualisieren die Liste, öffnen den Ordner im SFTP-Manager derselben Sitzung, laden Dateien in den angezeigten Ordner hoch, laden die Auswahl herunter und verbergen die Seitenleiste. Das Verbergen während laufender Transfers fragt zuerst, und die Frage gibt an, wie viele Transfers das Verbergen abbricht; dieselbe Frage erscheint, wenn Sie sie aus dem Ansicht-Menü verbergen. Uploads und Downloads gehen über die SFTP-Transferliste am unteren Rand der Seitenleiste nach einer Bestätigung, die den Ordner auf dem Server nennt, weil die Seitenleiste hinter der Shell zurückbleiben kann. Dateien vom Desktop in die Liste fallen lassen lädt sie auf dieselbe Weise hoch, und das Ziehen einiger kleiner Dateien aus der Liste kopiert sie zum Desktop. Wenn die Richtlinie Ihrer Organisation den Dateitransfer deaktiviert, sind die Upload- und Download-Schaltflächen ausgegraut, das Fallenlassen wird abgelehnt, während Sie ziehen, und Zeilen können nicht herausgezogen werden; das Durchsuchen funktioniert weiterhin.

Lokale Shell-Registerkarten

Abgesehen von SSH und Mosh kann ein Terminal-Tab eine Lokale Shell hosten – die eigene Shell der lokalen Maschine, die über eine Pseudoterminal-Verbindung (siehe Lokale Shell) geöffnet wird. Einige Terminal-Verhaltensweisen sind lokaler Shell bewusst:

  • Ctrl+D schließt den Tab für lokale cmd.exe/PowerShell-Sitzungen. Diese Windows-Shells beenden sich nicht bei EOF, weshalb Ctrl+D sonst keine Wirkung hätte. Für Shells der bash-Familie (Git Bash/Cygwin/WSL, macOS/Linux) und SSH hat Ctrl+D seinen normalen Sinn für EOF – die Shell beendet sich und der lokale Tab wird automatisch geschlossen.
  • Bestätigung schließen verwendet den Wortlaut „Local-Shell“ anstelle von „SSH-Verbindung beenden?“ und die Eingabeaufforderung zum Schließen des Fensters ist transportneutral („Aktive Sitzungen“), da ein Fenster SSH-, Mosh- und Local-Shell-Registerkarten mischen kann.
  • Das aktuelle Verzeichnis folgt der interaktiven Shell. Unter macOS und Linux aktualisiert korTTY es vom lokalen Shell-Prozess; Native PowerShell- und cmd-Eingabeaufforderungen stellen absolute Windows-Pfade bereit. Nach cd, pushd, popd oder Set-Location löst Im Snippet-Editor öffnen einen ausgewählten Dateinamen in das aktuelle Verzeichnis und nicht in das Startverzeichnis der Registerkarte auf. Wenn das Verzeichnis nicht sicher bestimmt oder zugeordnet werden kann, stoppt korTTY mit einem Fehler, anstatt eine gleichnamige Datei aus dem falschen Verzeichnis zu öffnen.
  • Nach einer Identitätswechsel wird „Im Snippet-Editor öffnen“ grau. Sobald die Sitzung nicht mehr als die Identität läuft, mit der der Tab geöffnet wurde – nach su, einem inneren ssh oder einem Shell-Start-sudo – ist die Kontextmenü-Eintrag deaktiviert, sowohl in SSH-Tabs als auch in lokalen Shell-Tabs: Die verfolgten Verzeichnisse und die Dateizugriffe gehören weiterhin der ursprünglichen Anmeldung und würden die falsche Pfadauflösung ergeben. Der Eintrag wird automatisch wieder aktiv, sobald der Prompt den ursprünglichen Benutzer anzeigt (normalerweise nach exit). Ein lokaler Shell-Tab, dessen konfigurierte Shell-Befehl selbst ein Remote-Client wie ssh oder mosh ist, bleibt der Eintrag für den gesamten Tab deaktiviert. Falls die Belastung trotzdem ausgelöst wird, beendet korTTY mit einem Fehler statt die falsche Pfadauflösung vorzunehmen. Die KI-Kontextmenü-Aktionen folgen der gleichen Regel: Sie bieten nicht mehr die Option, den Inhalt der ausgewählten Datei dem Chat hinzuzufügen (siehe Eine ausgewählte Datei dem Chat hinzufügen).
  • Zwischenablage-Text bleibt in Agent-Shortcuts erhalten. Eingetippter und eingefügter Text durchläuft denselben Terminal-Input-Filter, einschließlich bracketed paste und split UTF-8-Eingabe, sodass ein eingefügter Dateiname Teil der agent ...-Anfrage bleibt und Enter ihn exakt einmal dispatcht. In einer Verbindung mit einer ein-Byte-Zeichenkodierung wie ISO-8859-1 wird jedes getippte Zeichen sofort gesendet.

Sitzungsjournal

Jede Terminal-Registerkarte kann eine behalten Sitzungsjournal: Serverausgaben und eingegebene Befehle werden in ein Capture-Log aufgenommen, eine KI komprimiert sie zu einer lesbaren Zeitleiste und Screenshots und Notizen können über die Journalleiste oder das Rechtsklickmenü des Terminals hinzugefügt werden. Journale starten automatisch für Verbindungen, die sie aktivieren, oder rückwirkend für eine laufende Sitzung über Tools > Sitzungsjournal starten/stoppen – der vorhandene Scrollback wird importiert. Siehe Sitzungsjournal.

Split-Screen mit Übertragung

Teilen Sie die Terminalansicht, um mehrere Verbindungen nebeneinander anzuzeigen, und senden Sie optional Eingaben gleichzeitig an alle Bereiche des Tabs oder mit Multi-Exec an Bereiche Ihrer Wahl in jedem Tab und Fenster.

Vorgänge aufteilen

  • Bereich teilen: Klicken Sie mit der rechten Maustaste auf einen Bereich und wählen Sie Extras → Terminal teilen, dann Rechts teilen oder Unten teilen, jeweils zum gleichen Server oder zu einer neuen Verbindung. Teilungen lassen sich verschachteln, sodass ein Tab ein Raster aus Bereichen enthalten kann. Die Befehlspalette teilt den fokussierten Bereich mit den Befehlen von Ansicht → Bereiche aus dem nächsten Punkt, etwa Rechts teilen.
  • Mit der Tastatur teilen: Ctrl+Shift+O (Cmd+Shift+O auf macOS) teilt den Bereich, in dem sich die Tastatur befindet, auf dem eigenen Server dieses Bereichs, wie es Rechts teilen (gleicher Server) oder Unten teilen (gleicher Server) tut. Der neue Bereich kommt rechts neben einen breiten Bereich und unter einen hohen, sodass die Bereiche auch bei wiederholtem Teilen ungefähr quadratisch bleiben, und die Tastatur wechselt in den neuen Bereich. Ansicht → Bereiche enthält denselben Befehl als Bereich teilen sowie Rechts teilen und Unten teilen, um die Seite selbst zu wählen. Die Taste funktioniert in jedem Terminal-Tab, solange sich die Tastatur darin befindet; unter Windows und Linux erreicht sie die Shell nicht mehr, die sie als Ctrl+O erhielt und diese Taste selbst weiterhin bekommt.
  • Unabhängige Sitzungen: In jedem Bereich kann eine andere SSH-Verbindung angezeigt werden.
  • Gleicher Server heißt: der Server des Bereichs: Rechts teilen (gleicher Server) und Unten teilen (gleicher Server) öffnen eine neue Sitzung zum Server des Bereichs, den Sie teilen, mit der Anmeldung, die dieser Bereich verwendet hat. Für einen Bereich, den Sie mit Rechts teilen (neue Verbindung) oder Unten teilen (neue Verbindung) geöffnet haben, ist das der Server, den Sie dafür gewählt haben, nicht der des Tabs, und auch die daraus geteilten Bereiche bleiben auf diesem Server; jeder andere Bereich wird zum Server des Tabs geteilt. Hat sich der Bereich mit einem temporären SSH-Schlüssel angemeldet, der inzwischen abgelaufen ist, meldet die Teilung das und öffnet keinen Bereich.
  • Bereiche einer anderen Farbe: Ein Bereich, der mit Rechts teilen (neue Verbindung) oder Unten teilen (neue Verbindung) zu einer Verbindung geöffnet wurde, deren Tab-Farbe von der des Tabs abweicht, und die von ihm auf demselben Server geteilten Bereiche zeigen an ihrem Rand einen 3 Pixel breiten Rahmen in dieser Farbe, mit dem Fokusring darin. Der Rahmen liegt wie der Ring über dem Rand des Bereichs, ändert also nie die Größe des Terminals, und er bleibt bei seinem Bereich, wenn Sie andere Bereiche teilen, verschieben, maximieren oder schließen. Der Tooltip des Tabs listet diese Bereiche mit Verbindung und Farbe auf, und Screenreader nennen beides nach dem Namen des Bereichs, zum Beispiel Bereich 2 von 2, Verbindung db-prod, Tab-Farbe rot (#D32F2F).
  • Anpassbare Fensterbereiche: Ziehen Sie die Trennlinien, um die Fenstergrößen anzupassen.
  • Bereich schließen: Das × in der oberen rechten Ecke eines Bereichs, Extras → Terminal teilen → Teilung schließen in seinem Kontextmenü, Ansicht → Bereiche → Bereich schließen für den Bereich, in dem sich die Tastatur befindet, oder exit in seiner Shell schließt diesen Bereich ohne vorherige Nachfrage. Das × erscheint nur, solange der Tab mehr als einen Bereich hat, und Teilung schließen und Bereich schließen sind im letzten deaktiviert; exit im letzten Bereich schließt den Tab. Nach Bereich schließen wechselt die Tastatur in den ersten verbleibenden Bereich.
  • Mit der Tastatur zwischen Bereichen wechseln: Ctrl+Alt mit einer Pfeiltaste (Cmd+Option auf macOS) setzt den Tastaturfokus auf den Bereich auf dieser Seite; am Rand des Tabs bleibt der Fokus, wo er ist. Ansicht → Bereiche enthält dieselben Befehle sowie Nächster Bereich und Vorheriger Bereich, die alle Bereiche des Tabs durchlaufen und nach dem letzten von vorn beginnen. Bei einem einzelnen Bereich erreichen die Tasten das Programm im Terminal; zu Desktops, die diese Tasten zuerst abfangen, siehe Tastaturkürzel.
  • Fokusring: In einem Tab mit zwei oder mehr Bereichen markiert ein blauer Ring den Bereich, in dem sich die Tastatur befindet. Solange die Tastatur woanders ist, etwa in einem anderen Fenster oder einem Seitenpanel, bleibt ein schwächerer Ring auf dem Bereich, auf den die Menübefehle wirken. Der Ring wird über den Rand des Bereichs gezeichnet und ändert nie die Größe seines Terminals, und er wird nicht angezeigt, solange ein Bereich maximiert ist. Screenreader nennen jeden Bereich Bereich 2 von 3, nummeriert wie im Dashboard.
  • Fokusring aus: deaktivieren Sie Aktives Split-Terminal umrahmen in den Fenster-Einstellungen, um den Ring auszublenden. Sie erkennen dann das aktive Pane durch den Cursor.
  • Bereich maximieren: Ctrl+Shift+Enter (Cmd+Shift+Enter auf macOS) oder Ansicht → Bereiche → Bereich maximieren lässt den Bereich, in dem sich die Tastatur befindet, vorübergehend den ganzen Tab ausfüllen; erneutes Drücken zeigt wieder alle Bereiche, jede Trennlinie dort, wo sie war. Das ist nicht der Schriftzoom: Nur der maximierte Bereich wird größer. Ein Badge oben rechts, etwa Maximiert · verborgene Bereiche: 2, zeigt, dass andere Bereiche verborgen sind, und das Häkchen bei Bereich maximieren zeigt es im Menü. Die verborgenen Bereiche laufen in ihrer bisherigen Größe weiter, sodass ihre Programme keine Änderung der Fenstergröße bemerken. Teilen, Schließen oder Verschieben eines Bereichs, das Wechseln der Tastatur in einen anderen Bereich (mit den Tasten, Nächster Bereich und Vorheriger Bereich, dem Coding-Agents-Panel oder der Steuerungs-API) und das Ziehen eines Bereichs zeigen wieder alle Bereiche. Die Taste braucht zwei oder mehr Bereiche; bei einem einzelnen Bereich erreicht sie das Programm als Enter. Ein Projekt, das gespeichert wird, während ein Bereich maximiert ist, speichert alle Bereiche mit ihren Trennlinien, ohne die Maximierung. Screenreader lesen das Badge zusammen mit dem Namen des Bereichs vor.
  • Fokussierter Bereich: Bearbeiten → Kopieren, Bearbeiten → Einfügen, Bearbeiten → Suchen..., die KI-Aktionen und die Aufzeichnung des aktiven Splits wirken auf den Bereich, der den Tastaturfokus hat oder zuletzt hatte – also den, in den Sie tippen, egal wie der Fokus dorthin kam (per Klick, Mittelklick oder Sprung aus dem Coding-Agents-Panel). Schließen Sie einen anderen Bereich, bleiben sie bei diesem Bereich; wird der fokussierte Bereich selbst geschlossen, wechseln sie zum ersten verbleibenden Bereich. Das Rechtsklick-Menü des Terminals wirkt auf den Bereich, den Sie mit der rechten Maustaste angeklickt haben.
  • Zugriffsgrund einmal pro Registerkarte abgefragt: Wenn ein Server nach einem Grund für die Verbindung fragt, wie es ein Jump-Host im CyberArk-Stil tut, fragt ein Split nicht erneut. korTTY sendet den Grund, der beim Öffnen des Tabs angegeben wurde, da ein Server, der danach fragt, eine Sitzung schließt, die mit nichts antwortet. Bei einer Aufteilung auf einen anderen Server oder bei einem Server, der etwas anderes fragt, wird ebenfalls einmal gefragt, und ein neuer Tab beginnt immer mit der Frage. Lehnt der Server die Begründung ab, etwa weil eine Ticketnummer inzwischen abgelaufen ist, verwirft korTTY diese und fragt beim nächsten Versuch erneut nach.
  • Panes verschieben: Halten Sie Shift+Alt (Windows/Linux) oder Shift+Option (macOS) und ziehen Sie ein Pane auf ein anderes, um die Reihenfolge zu ändern. Ohne Tastenkombination wird ein Maus-Ziehen für die Textauswahl im Terminal verwendet.
  • Mit Projekten gespeichert: Ein Projekt speichert die Bereiche jedes Tabs, den Server jedes Bereichs und die Position jeder Trennlinie, und beim Öffnen kommen die Bereiche zurück, sobald der Tab verbunden ist. Der Zugriffsgrund, der für den Tab angegeben wurde, wird auch für seine Bereiche verwendet.

Broadcast-Modus

Wenn der Broadcast-Modus aktiviert ist, werden Tastatureingaben gleichzeitig an alle Bereiche des Tabs gesendet. Dies ist nützlich, um dieselben Befehle auf mehreren Servern auszuführen. Schalten Sie ihn mit Extras → Broadcast-Modus im Rechtsklickmenü eines Bereichs oder mit Ansicht → Bereiche → Broadcast an alle Bereiche dieses Tabs ein oder aus, das auch die Befehlspalette ausführt; zum Einschalten brauchen beide zwei oder mehr Bereiche, und das Häkchen zeigt, ob er für den aktiven Tab eingeschaltet ist.

  • Gespiegelt: getippter Text, Enter, Backspace, Esc, Tab und Shift+Tab, die Pfeiltasten, Home / End, Page Up / Page Down, Ins / Del und F1 bis F11, einschließlich ihrer Shift, Ctrl und Alt Kombinationen (F12 schaltet den Vollbildmodus um).
  • Für jeden Bereich kodiert: jeder Bereich erhält eine Taste so, wie sein eigenes Programm sie erwartet. Wenn ein Bereich mc oder vim ausführt, die das Terminal in Anwendungs-Pfeiltasten umschalten, kommen seine Pfeile als ESC O A an, während eine Shell im nächsten Bereich ESC [ A erhält, sodass Verlauf und Vervollständigung in beiden funktionieren.
  • Bleiben lokal: die Scrollback-Tasten (Shift+Page Up / Shift+Page Down, und Ctrl+Up / Ctrl+Down unter Windows und Linux oder Cmd+Up / Cmd+Down auf macOS) scrollen nur den fokussierten Bereich. Dasselbe gilt für die Prompt-Tasten Ctrl+Shift+Up / Ctrl+Shift+Down (Cmd+Shift+Up / Cmd+Shift+Down auf macOS), solange der fokussierte Bereich Prompt-Markierungen hat; in einem Bereich ohne sie erreichen sie das Programm und werden unter Windows und Linux wie jede andere Pfeiltaste gespiegelt. Ein Vollbildprogramm wie vim oder less hat keinen Scrollback, sodass, während eines im fokussierten Bereich läuft, Shift+Page Up / Shift+Page Down (und Ctrl+Up / Ctrl+Down unter Windows und Linux) an dieses Programm gehen und, wie die anderen Tasten, an jeden anderen Bereich.
  • Nicht gespiegelt: Einfügen und Snippets gehen nur an den fokussierten Bereich, und was Sie in die Suchleiste eingeben, bleibt in der Suchleiste. Eine Taste geht nur dann an die anderen Bereiche, wenn der Bereich, in dem Sie tippen, sie auch an sein eigenes Programm sendet; daher senden die Tasten zum Kopieren und Einfügen (Ctrl+Shift+C / Ctrl+Shift+V unter Windows und Linux) und die Tasten von Menübefehlen nichts an sie.
  • Markierung an den Bereichen und am Tab: Solange der Broadcast-Modus eingeschaltet ist, zeigt jeder Bereich des Tabs einen bernsteinfarbenen Rahmen und oben rechts ein Badge Broadcast-Modus, und der Tab zeigt in seinem Reiter ein bernsteinfarbenes Fork-Symbol, dessen Tooltip sagt, dass Ihre Eingabe an alle seine Bereiche geht. Screenreader lesen Broadcast-Modus nach dem Namen des Bereichs vor.
  • Bereiche, die Ihre Tasten nicht bekommen dürfen, werden ausgelassen: Der Broadcast-Modus sendet nichts in einen Bereich, der gerade eingefügten Text zeilenweise sendet (siehe Einfügen in langsame Geräte), sodass keine Ihrer Tasten zwischen zwei eingefügten Zeilen landet. Er lässt auch einen Bereich aus, in dem ein Lauf des korTTY-KI-Agenten aktiv ist, damit Ihre Eingaben für die anderen Bereiche nicht mit den Befehlen kollidieren, die er ausführt, sowie einen Bereich, dessen Coding-Agent auf Ihre Entscheidung wartet (BLOCKED), wo ein gespiegeltes Y und Enter alles genehmigen würde, was er fragt. Der Bereich erhält Ihre Tasten wieder, sobald das Einfügen abgeschlossen ist, der Lauf beendet ist oder der Agent nicht mehr wartet. Solange Bereiche ausgelassen werden, zeigt Extras im Rechtsklickmenü eines Bereichs unter Broadcast-Modus an, wie viele es sind, zum Beispiel Derzeit ausgelassene Bereiche: 1 von 3. Was Sie selbst in einem solchen Bereich tippen, geht weiterhin an die anderen Bereiche.
  • Ein KI-Agent startet nur dort, wo Sie tippen: Der Agent-Shortcut, etwa agent restart nginx und Enter, startet einen einzigen Lauf, und zwar in dem Bereich, in dem Sie ihn tippen. Die anderen Bereiche erhalten die Zeile wie jede andere Befehlszeile, sodass ihre Shell sie als Befehl ausführt (und meist meldet, dass es keinen Befehl agent gibt), aber in ihnen startet kein Lauf.
  • Ein Passwort geht nur an Bereiche, die danach fragen: Solange der Cursor des Bereichs, in dem Sie tippen, auf einer Passwortabfrage steht, etwa [sudo] password for anna: (eine kurze Zeile, die mit einem Doppelpunkt endet und ein Passwort, eine Passphrase oder eine PIN erwähnt), gehen Ihre Tasten einschließlich Enter nur an die Bereiche, deren Cursor ebenfalls auf einer Passwortabfrage steht. In einem Bereich an einem gewöhnlichen Shell-Prompt würde das Passwort angezeigt, als Befehl ausgeführt und im Shell-Verlauf und im Sitzungsjournal gespeichert. Wie das Sitzungsjournal erkennt korTTY die Abfrage an ihrem Text, weil kein Server dem Terminal mitteilt, dass er das Echo Ihrer Eingabe abgeschaltet hat.
  • Ein hängender Bereich friert korTTY nicht ein: Die Tasten für die anderen Bereiche werden im Hintergrund gesendet, an jeden Bereich in der Reihenfolge, in der Sie sie getippt haben, sodass ein Server, der nicht mehr antwortet, nur seinen eigenen Bereich aufhält, während das Fenster und die anderen Bereiche weiter reagieren.
  • Verborgene Bereiche erhalten die Tasten weiterhin: Solange ein Bereich maximiert ist, geht, was Sie darin tippen, weiterhin an die verborgenen Bereiche, im Broadcast-Modus und wenn sie ebenfalls an Multi-Exec teilnehmen. Sein Badge zeigt dann, wie viele von ihnen Ihre Eingabe erhalten, zum Beispiel Maximiert · verborgene Bereiche: 2, davon erhalten Ihre Eingabe: 2, und wird bernsteinfarben. Bereiche, die aus einem der oben genannten Gründe ausgelassen werden, werden nicht mitgezählt.

Multi-Exec

Multi-Exec sendet, was Sie in einem Bereich tippen, an andere Bereiche Ihrer Wahl, in jedem Tab jedes Fensters, etwa um dieselben Befehle auf mehreren Servern auszuführen, die in verschiedenen Tabs geöffnet sind. Der Broadcast-Modus erfasst alle Bereiche eines Tabs; bei Multi-Exec wählen Sie jeden Bereich einzeln, und die gewählten Bereiche geben Ihre Eingabe aneinander weiter: Was Sie in einem von ihnen tippen, geht an alle anderen.

  • Bereiche wählen: Extras → Multi-Exec: Diesen Bereich einbeziehen im Rechtsklickmenü eines Bereichs, Multi-Exec: Alle Bereiche dieses Tabs einbeziehen im Rechtsklickmenü eines Tabs oder Ansicht → Multi-Exec mit Diesen Bereich einbeziehen für den Bereich, in dem sich die Tastatur befindet, Alle Bereiche dieses Tabs einbeziehen und Alle Terminals dieses Fensters einbeziehen. Im Dashboard tut das Rechtsklickmenü einer Bereichs- oder Verbindungszeile dasselbe für jeden Bereich oder Tab jedes Fensters, ohne dorthin zu wechseln. Wählen Sie Diesen Bereich einbeziehen oder Alle Bereiche dieses Tabs einbeziehen erneut, nimmt das den Bereich bzw. die Bereiche des Tabs wieder heraus, und die Häkchen zeigen, ob sie teilnehmen.
  • Immer markiert: Ein teilnehmender Bereich zeigt einen bernsteinfarbenen Rahmen und oben rechts ein Badge Multi-Exec, links neben dem Maximieren-Badge, solange er maximiert ist. Sein Tab zeigt in seinem Reiter ein bernsteinfarbenes Fork-Symbol, dessen Tooltip sagt, wie viele Bereiche des Tabs teilnehmen, und seine Dashboard-Zeile zeigt dasselbe Symbol. Solange irgendein Bereich teilnimmt, zeigt die Statusleiste jedes Fensters einen Chip wie Multi-Exec · Bereiche: 3 · Tabs: 2 · Fenster: 1. Multi-Exec fragt nicht nach einer Bestätigung; die Markierungen bleiben, solange es läuft. Screenreader lesen Multi-Exec nach dem Namen des Bereichs vor.
  • Mit einem Klick beenden: Beenden im Chip der Statusleiste oder Ansicht → Multi-Exec → Multi-Exec beenden nimmt jeden Bereich jedes Fensters heraus. Das Schließen eines Bereichs, seines Tabs oder seines Fensters nimmt ihn ebenfalls heraus; ein Tab, den Sie in ein anderes Fenster ziehen, behält seine Bereiche in Multi-Exec.
  • Was an die anderen Bereiche geht: dieselben Tasten wie im Broadcast-Modus, jeweils passend für das Programm im jeweiligen Bereich codiert, und nur aus einem teilnehmenden Bereich. Einfügen, Snippets, der Text einer Eingabemethode für Chinesisch, Japanisch oder Koreanisch und über die Steuerungs-API gesendeter Text bleiben in ihrem Bereich.
  • Dieselben Sicherheitsregeln wie im Broadcast-Modus: Ein Bereich, der gerade eingefügten Text zeilenweise sendet, in dem ein Lauf des korTTY-KI-Agenten aktiv ist oder dessen Coding-Agent auf Ihre Entscheidung wartet, erhält währenddessen nichts, und der Chip in der Statusleiste zeigt, wie viele Bereiche ausgelassen werden, zum Beispiel derzeit ausgelassen: 1. Der Agent-Shortcut startet einen Lauf nur in dem Bereich, in dem Sie tippen, und solange dieser Bereich eine Passwortabfrage zeigt, gehen Ihre Tasten ebenfalls nur an die Bereiche, die an einer Passwortabfrage stehen.
  • Ein hängender Server friert korTTY nicht ein: Die Tasten werden im Hintergrund an jeden Bereich gesendet, in der Reihenfolge, in der Sie sie getippt haben, sodass ein Server, der nicht mehr antwortet, nur seinen eigenen Bereich aufhält.
  • Zusammen mit dem Broadcast-Modus: Multi-Exec und der Broadcast-Modus eines Tabs können gleichzeitig eingeschaltet sein; ein Bereich, den beide erreichen würden, erhält jede Taste nur einmal.
  • Von Ihrer Organisation abgeschaltet: Eine Unternehmensrichtlinie mit multi-exec = "deny" sperrt jeden Weg, einen Bereich teilnehmen zu lassen – in den Menüs, den Rechtsklick-Menüs, dem Dashboard, der Befehlspalette und den Tastenkürzeln –, und der Broadcast-Modus lässt sich nicht mehr einschalten. Multi-Exec beenden funktioniert weiterhin.
  • Eine Benachrichtigung für einen einmal getippten Befehl: Ein lange laufender Befehl, den Sie in die teilnehmenden Bereiche tippen, löst eine Desktop-Benachrichtigung aus, nicht eine pro Bereich, und eine Glocke, mit der die anderen Bereiche auf Ihre gespiegelten Tasten antworten, löst keine aus; siehe Terminal-Benachrichtigungen.

Terminale Auswirkungen

Terminaleffekte können den sichtbaren Terminalstil und die Ausgabeanimation ändern. Effekte sind Java-Plugins, die über Plugins > Terminaleffekte verwaltet werden.

Benutzerkontrollen

  • Aktuelles Terminal: Verwenden Sie Ansicht > Terminaleffekt oder das Terminal-Kontextmenü, um einen Effekt für das aktive Terminal auszuwählen.
  • Schnellverbindung: Wählen Sie den Effekt und die Geschwindigkeit, bevor Sie eine temporäre oder gespeicherte Verbindung öffnen.
  • Connection-Manager: Speichern Sie den Effekt und die Geschwindigkeit einer gespeicherten Verbindung, damit neue Tabs sie automatisch verwenden.
  • Geschwindigkeit: Verwenden Sie den Schieberegler für 1x bis 10x; Wenn das immer noch zu langsam ist, geben Sie im numerischen Geschwindigkeitsfeld einen benutzerdefinierten Wert bis zu 99x ein.

Plugin-Verwaltung

  • Öffnen Sie Plugins > Terminaleffekte, um Plugins zu verwalten.
  • Die Tabelle listet geladene Plugins mit aktivem Status, Namen und Beschreibung auf.
  • Löschen Aktiv in einer Plugin-Zeile, um es installiert zu lassen, aber für die Aktivierung nicht verfügbar zu machen.
  • Terminal-Effekte aktivieren am oberen Rand schaltet die Funktion komplett aus: die Tabelle, Importieren und Neu laden sind ausgegraut, und die Effekt-Einträge der Menüs stehen erst wieder zur Verfügung, wenn Sie sie erneut aktivieren.
  • Neu laden lädt die Plugins erneut, zum Beispiel nachdem Sie ein JAR per Hand in ~/.kortty/plugins kopiert haben.
  • Externe .jar-Plugins importieren. KorTTY kopiert sie in ~/.kortty/plugins.
  • Exportieren Plugins, die über eine Quell-JAR verfügen. Der gebündelte MOTHER-Effekt ist exportierbar.

Warning

Importierte Terminaleffekt-Plugins sind vertrauenswürdiger Java-Code und werden nicht in einer Sandbox gespeichert. Importieren Sie Plugins nur aus Quellen, denen Sie vertrauen.

Eine ausführliche Dokumentation zur Plugin-Entwicklung finden Sie unter Terminaleffekt-Plugins.

SSH-Keep-Alive

Verhindern Sie, dass Verbindungen aufgrund von Inaktivität unterbrochen werden, indem Sie SSH-Keepalive-Nachrichten konfigurieren:

  1. Schalten Sie SSH Keep-Alive aktivieren in Einstellungen → Terminal ein.
  2. Stellen Sie Intervall (Sekunden) ein (5 bis 600 Sekunden, Standard: 60).
  3. KorTTY sendet SSH_MSG_IGNORE-Heartbeat-Nachrichten im konfigurierten Intervall und aktiviert TCP-Socket-Keepalive, während die Option aktiv ist.

Note

Wenn ein Server, eine Firewall, ein VPN oder ein NAT-Gateway inaktive Sitzungen früher als im konfigurierten Intervall schließt, kann die Verbindung trotzdem beendet werden. Überprüfen Sie in diesem Fall die serverseitige SSH-Konfiguration und die Netzwerk-Leerlauf-Timeout-Einstellungen sowie das KorTTY-Protokoll.

Terminalprotokollierung

Schreibt die Terminalausgabe einer Verbindung zur Prüfung und zum Debuggen in eine Datei. Dies ist unabhängig vom Session Journal: Es handelt sich um ein einfaches Transkript ohne Zusammenfassungen, Markierungen oder Screenshots, und beide können gleichzeitig ausgeführt werden.

Konfigurieren Sie es an einer beliebigen Stelle:

  • Connection-Manager > Bearbeiten Verbindung > Terminal-Logging für eine gespeicherte Verbindung.
  • Schnellverbindung > Terminalprotokoll für eine einmalige Sitzung oder zum Ändern der Einstellung für die Verbindung, die Sie gerade öffnen möchten.

  • Protokollierung aktivieren.

  • Wählen Sie einen Protokollordner. Bleibt es leer, verwendet KorTTY ~/.kortty/terminal-logs. Sie wählen den Ordner aus; Die Dateinamen sind KorTTYs.
  • Wählen Sie ein Protokollformat:
  • Einfacher Text – Eine zeitgestempelte Zeile pro Ausgabezeile.
  • XML – Strukturiertes XML mit Zeitstempeln.
  • JSON – Strukturiertes JSON mit Zeitstempeln.
  • Optionally adjust the maximum file size (default: 10 MB) and the retention period (default: 30 days), and turn off Start a new file every day or Compress closed files (gzip) — both are on by default. Schnellverbindung's Terminal log section covers enable, folder, format and compression; size limit, retention and daily rotation keep their configured or default values.

Das Terminal-Logging-Tab der gespeicherten Verbindung bietet ebenfalls die Option SSH-Benutzer pro Zeile aufnehmen und Arbeitsverzeichnis pro Zeile. Die Verzeichniswahlen umfassen Nicht aufnehmen, Vollständiger Pfad (wenn bekannt) und Relativ zum zuerst gemeldeten Verzeichnis. Relativer Pfad verwendet das erste Verzeichnis, das die Sitzung meldet, als Basis und wird als directoryBase erfasst; ein unbekanntes Verzeichnis bleibt leer und wird nie spekuliert. Diese Felder werden vor dem Pufferungserzeugen erfasst und werden durch den geheimen Redakteur weitergeleitet. Ein Administrator kann entweder Einstellung über die Unternehmensrichtlinie vorschreiben; ein verwaltetes Kontrollfeld ist gesperrt, und der Logger übernimmt den Wert, sobald er gestartet wird.

Dateinamen

Jeder Datei wird der Name <date>-<time>-<server>_<number> zugewiesen, zum Beispiel 2026-08-04-14-30-12-web01_1.log.gz. Der Datumsteil sorgt dafür, dass eine Liste von Verzeichnissen chronologisch sortiert wird, und die anhängende Nummer unterscheidet Verbindungen, die gleichzeitig offen sind – zwei Tabs auf dem gleichen Server erhalten die Namen _1 und _2 und schreiben nie in einander Dateien.

Rotation, Komprimierung und Retention

Standardmäßig wird eine neue Datei täglich erstellt und immer dann erneuert, wenn die maximale Größe erreicht ist (diese Teile werden mit .p2, .p3, … nummeriert); die tägliche Rotation kann deaktiviert werden, sodass nur eine Rotation nach Größe erfolgt. Bei der Rotation wird nichts jemals überschrieben oder gelöscht.

Geschlossene Dateien werden standardmäßig komprimiert. Die aktuell geschriebene Datei bleibt immer unkomprimiert, sodass sie bei einem Absturz nicht abgeschnitten werden kann. Deaktivieren Sie Geschlossene Dateien komprimieren (gzip), um fertige Dateien stattdessen als einfachen Text beizubehalten. Eine Verbindung, die keine Ausgabe erzeugt, erstellt überhaupt keine Datei.

Dateien, die älter als die Retentionsdauer sind, werden automatisch gelöscht, sobald eine Verbindung gestartet wird und nach jeder täglichen Rotation. Legen Sie die Retention auf 0 fest, um alles zu behalten. Nur die Protokolldateien von korTTY werden entfernt – alles andere bleibt unverändert, daher ist es sicher, die Einstellung auf ein Verzeichnis zu setzen, das auch für andere Zwecke verwendet wird.

Was vor dem Schreiben entfernt wird

Erfasste Zeilen durchlaufen die gleiche Schwärzung wie das Session Journal im Erfassungsthread, bevor irgendetwas gepuffert oder geschrieben wird: das eigene Passwort der Verbindung und alle Ersetzungsregeln, die in der Richtlinie Ihrer Organisation definiert sind. Das Geheimnis gelangt nie in die Datei, sodass hinterher nichts bereinigt werden muss.

Protokolldateien und ein Protokollordner, den KorTTY selbst erstellt hat, sind auf Besitzerrechte eingestellt, sofern das Dateisystem dies unterstützt. Ein Ordner, den Sie selbst ausgewählt haben, behält die von Ihnen erteilten Berechtigungen.

Redaction deckt nur das ab, was KorTTY weiß

Ein Passwort, das korTTY für die Verbindung speichert, wird ausgeblendet. Ein Geheimnis, das Sie selbst in einen Befehl eingeben oder das ein Programm ausgibt, wird nicht ausgeblendet – korTTY kann dies nicht erkennen. Behandeln Sie den Log-Ordner als sensibel und verwenden Sie Richtlinien zur Ersetzung von Mustern, die sich wiederholen.

Logdatei-Manager

Werkzeuge > Logdatei-Manager… (Ctrl+Shift+X, Cmd+Shift+X auf macOS) listet jede Datei auf, die das Terminalprotokoll geschrieben hat, ermöglicht Filtern, Anzeigen, Exportieren und Löschen sowie zeigt an, wann der Aufräumvorgang jede einzelne Datei entfernen kann. Es öffnet sich als Fenster oder, mit Einstellungen > Fenster > Tool-Fenster als Tabs öffnen, als Tab.

Logfile Manager

Was aufgeführt ist. Nur Dateien, deren Namen von KorTTY selbst generiert werden (<date>-<time>-<server>_<number>[.p<part>].<log|xml|json>, unkomprimiert oder komprimiert) aus dem Standardordner, dem Log-Ordner jeder gespeicherten Verbindung, jedem Ordner, in den ein Logger jemals geschrieben hat (also Schnellverbindungssitzungen und seitdem gelöschte Verbindungen sind abgedeckt), sowie Ordner, die Sie mit Ordner hinzufügen… einfügen. Alles andere in diesen Ordnern wird ignoriert, und eine Datei, die noch geschrieben wird, ist als live gekennzeichnet: sie kann angezeigt werden, aber nicht exportiert oder gelöscht werden.

Spalte Bedeutung
Dateiname Der Name auf der Festplatte; ein live Badge kennzeichnet Dateien, die noch geschrieben werden
Verbindungsname Der in der Protokolldatei aufgezeichnete Name, bei älteren Protokollen auf den Dateinamens-Slug zurückgreifend. IP-Adressen ohne Hostname erhalten einen stabilen Anzeigename aus 10.000 generierten Namen; bei Hovern wird die aufgezeichnete Server-Adresse angezeigt. Ein Adressenfehler in einem alten Protokoll wird als unbekannt angezeigt, ohne DNS-Abfrage durchzuführen
Badges festgelegte Markierungen, inklusive benutzerdefinierter Namen; Halten schützt eine Datei vor Löschen
Gestartet Wann diese Datei (oder ein Teil) geöffnet wurde, entnommen aus dem Namen — die Standardsortierung, neueste zuerst
Größe (MB) Größe auf der Festplatte; für .gz, .zst und .bz2 Dateien ist das die komprimierte Größe
Typ Klartext, XML oder JSON
Komprimierung none, gzip, zstd oder bzip2
Löschbar ab Der erste Tag, an dem der Aufräumprozess die Datei löschen kann. Der Aufräumvorgang läuft, wenn eine Verbindung mit Protokollierung gestartet wird und bei jedem täglichen Rollover; die eigentliche Löschung kann später erfolgen. Nicht komprimierte Dateien, zstd/bzip2-Exporte und Ordner ohne bekannte Aufbewahrungsfrist verfallen nie und zeigen ein Minuszeichen
Ordner Wird angezeigt, wenn Dateien aus mehr als einem Ordner aufgelistet werden

Klicken Sie auf einen Spaltenkopf, um nach dieser Spalte zu sortieren, und erneut klicken, um die Richtung umzudrehen.

Filtern. Die Filterleiste reduziert die Liste durch einen Text, der in der Datei-, Ordner-, Verbindung-, erfassten Serveradresse- oder jedem Badge-Name (einschließlich benutzerdefinierten Badges) vorkommen muss, durch eine Zeitperiode, durch Typ und durch Kompression. Die Zeitperiode passt auf jede Datei, die mit ihr überschneidet: eine Sitzung, die um 08:00 begann und bis 09:30 lief, wird für die Zeitperiode 09:00–09:30 angezeigt, da sie Einträge aus dieser Zeit enthält. Lassen Sie eine Zeit leer, um die ganze Tag zu bedeuten; eine nicht lesbare Zeit wird markiert und ignoriert.

Exportieren. Wählen Sie eine oder mehrere Dateien aus und wählen Sie Export…. Das Format des Log-Inhalts bietet Unverändert, Plain Text, XML und JSON, unabhängig vom Archivformat: keine Kompression, zstd (Standard), gzip, bzip2 oder ZIP. Zum Beispiel kann ein JSON-Log innerhalb eines gzip-Archivs in XML umgewandelt werden. Völlige, unveränderte Exporte speichern die Bytes des entschlossenen Quellmaterials; Umwandlungen und Auswahl von Zeit- oder Zeilenangaben generieren das Dokument basierend auf vollständigen Einträgen und behalten den erfassten Kontext. Keine Zeitstempel, Benutzer oder Verzeichnisse werden erfunden. Die Dateien werden mit -export oder -selection benannt, sodass die Aufbewahrung sie nicht besitzt. Eine Umwandlung lehnt fehlerhafte ausgewählte Einträge oder Einträge über 16 MiB ab, anstatt sie schweigend zu trümmern. Exporte laufen im Hintergrund, zeigen den Fortschritt an und unterstützen die Abbruchfunktion; ein fehlgeschlagener oder abgebrochener Export veröffentlicht keine teilweise Datei.

Klicken Sie auf Export… unter den Optionen, um Speichern unter für ein einzelnes Log oder eine Auswahl von Zeilen zu öffnen, oder wählen Sie einen Zielordner für mehrere Logs. Export… und Abbrechen bleiben sichtbar unter den scrollbaren Optionen, auch wenn das Fenster verkleinert wird.

Markieren Sie Nur ein Zeitfenster exportieren, um Einträge zwischen Von und Bis zu behalten (Bis umfasst die ganze Minute). Im Viewer wählen Sie Zeilen aus und wählen Ausgewählte Zeilen exportieren… über die Werkzeugleiste oder das Kontextmenü; dies verwendet die gleichen Format-, Archiv- und Schutzoptionen. Die Auswahl eines Teils eines strukturierten Eintrags umfasst den kompletten ursprünglichen Eintrag, einschließlich der Anzeige von formatierten JSON- oder XML-Daten. Selektionen mit Header-Only enthalten keine Einträge und erzeugen keine Datei. Selektionen im Viewer lehnen den Ersatz eines bestehenden Ziels ab; wählen Sie einen neuen Namen. Live-Logs bleiben vor dem Schließen vor Export geschützt.

Sicherheit. ZIP kann optional den ZIP mit Passwort verschlüsseln (AES-256) verwenden, wobei das Passwort wiederholt wird. Jeder Archiv kann zusätzlich den Zusätzlich mit GPG verschlüsseln und eine öffentliche Schlüssel, die in der GPG-Schlüsselverwaltung registriert ist, verwenden. Dies umhüllt das gewählte Archiv mit .gpg, einschließlich eines bereits mit Passwort verschlüsselten ZIP-Dateis. GPG verwendet ein installiertes gpg-Executabel und ein OpenPGP-öffentlichen Schlüssel/Zertifikat; bei fehlendem Executabel, fehlendem Schlüsseldatei oder nicht nutzbarer Empfänger erfolgt kein Export. Klartext-Arbeitsdateien sind ausschließlich für den Besitzer und werden danach gelöscht; Exportpasswörter werden nicht gespeichert.

Log export options

Badges. Wählen Sie Dateien aus und wählen Sie Badges, um die markierten Labels auf alle ausgewählten Dateien anzuwenden. Vorgeschlagene Vorlagen sind Hold, Prüfen, Vorfall, Wichtig, Fertig und Weitergeben. Nur Hold verändert das Verhalten: sowohl die automatische Aufbewahrung als auch die manuelle Löschung springen die Datei überspringend, und Löschbar ab zeigt ein Strichzeichen an, bis Hold entfernt wurde. Auch unlesbare Badge-Metadaten blockieren die Löschung. Andere Badges organisieren die Liste und verfügen über keine automatischen Aktionen. Erstellen Sie ein wiederverwendbares benutzerdefiniertes Badge mit einem Namen von bis zu 40 Zeichen, einer Farbe, einem der 30 toolbar-artigen Symbole und einem der fünf Stile: Dezent, Kontur, Vollfarbe, Farbmarkierung oder Minimal. Deaktivieren Sie ein Badge, um es zu entkoppeln; suchen Sie dessen Name im Suchfeld der Tabelle. Badges befinden sich in verborgenen Sidecar-Dateien neben dem Log und überleben die gzip-Kompression; behalten Sie diese Sidecars bei der Verschiebung von Logs außerhalb von korTTY.

Pinned and custom badges

Löschen entfernt die ausgewählten Dateien ohne eine Pause nach einer Bestätigung, dass die Namen der entpackten Dateien getrennt werden: Diese können weiterhin von einer anderen laufenden KorTTY-Instanz geschrieben werden, die von dieser nicht gesehen wird.

Ansehen. Geschlossene JSON- und XML-Logs öffnen sich mit Formatiert anzeigen aktiv. JSON-Objekte und Arrays werden eingerückt; XML-Einträge zeigen eingerückte Attribute und Inhalt. Dadurch wird eine temporäre Anzeige-Kopie und eine auf dem Festplatte basierende Abbildung der Quellzeilen erstellt; die Aktivierung des Options wird zurückschalten, um die ursprünglichen physischen Zeilen zu zeigen. Die Log-Datei selbst bleibt unverändert. Plain Text und live Snapshots verwenden den rohen Ansichtmodus. Ansehen (oder ein Doppelklick) öffnet die Datei in einem Viewer, der nur die auf dem Bildschirm angezeigten Zeilen liest, sodass ein mehrhundert-Megabyte-Log ohne das Laden in den Speicher geöffnet wird; eine komprimierte Datei wird zunächst in eine private temporäre Kopie entpackt, die beim Schließen des Viewers gelöscht wird. Links und Pfade hervorheben unterstreicht Web-Adressen, E-Mail-Adressen und Dateipfade – ein Klick kopiert sie in die Zwischenablage, nichts wird geöffnet – und Schlüsselwörter hervorheben färbt Übereinstimmungen mit einer Schlüsselwörter-Hervorhebungs--Einstellung, standardmäßig der integrierte Fehler-Set. Ctrl+F öffnet die Suche (fallensensitiv; ß und ss werden als unterschiedliche Buchstaben gezählt), Zu Zeile springt, und das Kontextmenü kopiert eine Zeile oder die ausgewählten Zeilen (bis zu 2.000 pro Mal). Sehr lange Zeilen werden bis zu 8.192 Zeichen angezeigt; Zeile kopieren kopiert bis zu 64 KiB einer solchen Zeile, während Ausgewählte Zeilen kopieren sie wie angezeigt kopiert. Ein live-Datei wird als Snapshot angezeigt mit einer Aktualisierungs-Schaltfläche; wenn der Logger die Datei während der Anzeige rotiert oder komprimiert, sagt der Viewer dies und bietet an, sie neu zu laden.

Log viewer

Formatted JSON log

Formatted XML log

Terminalaufzeichnung

Die Terminalaufzeichnung ist als ressourcenschonende Wiedergabefunktion konzipiert. KorTTY zeichnet Terminal-Bildschirmstatusänderungen und Zeitereignisse in einer JDK/GZIP-Streaming-komprimierten .korttyrec.jsonl.gz-Datei pro Terminal-Tab-Sitzung auf. Ältere .korttyrec.jsonl-Wiedergabedateien bleiben lesbar.

Aufzeichnungen konfigurieren

  1. Um die Aufzeichnung automatisch nach jedem App-Neustart zu aktivieren, öffnen Sie Einstellungen > Video und aktivieren Sie Terminalaufzeichnung nach App-Neustart aktivieren.
  2. Um die Aufzeichnung nur für diese Sitzung zu aktivieren, öffnen Sie Tools > Video Manager... und wählen Sie Terminalaufzeichnung für diese App-Sitzung aktivieren.
  3. Legen Sie den Speicherpfad fest. Wenn die Standardeinstellung beibehalten wird, verwendet KorTTY ~/.kortty/recordings.
  4. Wählen Sie den Standardbereich (aktiven Split oder gesamten Tab). Aufzeichnungen sind immer KorTTY-Replay-Dateien; der Videoexport ist ein separater Schritt und erfordert ffmpeg.
  5. Aktivieren oder deaktivieren Sie Auto-Pause, wenn das Terminal im Leerlauf ist und legen Sie den Leerlaufschwellenwert fest (Standard: 20 Sekunden).
  6. Optional: Aktivieren Sie Terminalfarben in neuen Aufnahmen erfassen, wenn exportierte Videos Terminalfarben wiedergeben sollen.
  7. Optional: Legen Sie den ffmpeg-Pfad fest und klicken Sie auf Prüfen. Wenn ffmpeg fehlt, bleibt der Videoexport deaktiviert, Wiedergabedateien bleiben jedoch verwendbar.
  8. Klicken Sie auf Speichern.

Aufnahme starten und stoppen

  1. Öffnen oder fokussieren Sie eine SSH-Terminal-Registerkarte.
  2. Wenn die Terminalaufzeichnung aktiviert ist, klicken Sie in der Terminalleiste auf Aufzeichnung starten, wählen Sie Extras > Terminalaufzeichnung starten/stoppen oder drücken Sie Ctrl+Shift+E (Befehl+Umschalt+E unter macOS).
  3. Wenn die Registerkarte mehrere geteilte Terminals enthält, wählen Sie aus, ob nur die aktive Teilung oder die gesamte Registerkarte aufgezeichnet werden soll.
  4. Klicken Sie auf Aufzeichnung stoppen oder drücken Sie erneut Ctrl+Shift+E, um das aktuelle Segment zu stoppen.
  5. Starten und stoppen Sie so oft wie nötig auf derselben Registerkarte. KorTTY hängt alle Segmente an dieselbe Wiedergabedatei an, bis die Registerkarte geschlossen wird.

Exportieren Sie ein Video

  1. Öffnen Sie Tools > Video-Manager....
  2. Wählen Sie eine .korttyrec.jsonl.gz-Wiedergabedatei aus der Liste aus.
  3. Stellen Sie sicher, dass der ffmpeg-Status besagt, dass der Videoexport aktiviert ist.
  4. Klicken Sie auf Exportieren....
  5. In den Exportoptionen:
  6. Wählen Sie Gesamte Aufzeichnung exportieren oder geben Sie Start-/Endzeiten im Minuten- oder MM:SS-Format ein.
  7. Wählen Sie, ob Terminalfarben einbezogen werden sollen (nur verfügbar, wenn die Wiedergabe Farbdaten enthält).
  8. Wählen Sie das Format WebM/VP9 oder MKV/FFV1 und dann einen Ausgabepfad.
  9. Während KorTTY Frames rendert und ffmpeg ausführt, zeigt der Exportfortschrittsdialog die aktuelle Phase, den Fortschrittsbalken und die geschätzte verbleibende Zeit an. Beim Export wird die aufgezeichnete Terminalgeometrie verwendet, sodass große Terminalbildschirme nicht beschnitten werden.

Aufnahmen ansehen und verwalten

  1. Öffnen Sie Tools > Video-Manager....
  2. Wählen Sie eine .korttyrec.jsonl.gz-Wiedergabedatei aus.
  3. Klicken Sie auf Anzeigen, um die Wiederholung direkt in KorTTY abzuspielen.
  4. Verwenden Sie die Replay-Viewer-Timeline zum Scrubben oder geben Sie einen Zeitsprung-Wert ein, z. B. 5 für Minute 5 oder 5:30 für Minute 5 und 30 Sekunden.
  5. Stellen Sie Geschwindigkeit zwischen 1x und 20x ein, um die Wiedergabegeschwindigkeit zu steuern.
  6. Klicken Sie auf Umbenennen..., um die Wiedergabedatei umzubenennen.
  7. Klicken Sie auf Löschen, um die ausgewählte Wiederholung nach der Bestätigung zu löschen.