Benutzerhandbuch

Befehlsvorschläge

Befehlsvorschläge zeigen während der Eingabe in einer normalen Terminalsitzung eine Liste von Vorschlägen an, die aus den Vervollständigungsdefinitionen Ihrer Shell stammen. Der Befehl bleibt in der gewohnten Eingabezeile des Terminals, und die Auswahl eines Vorschlags fügt Text ein, ohne ihn auszuführen. Diese Funktion verwendet kein KI-Modell.

Vorschläge sind unter macOS und Linux verfügbar. Unter Windows ist die Funktion derzeit deaktiviert (siehe den Abschnitt „Windows“ weiter unten).

Einstellungen und Bedienung

Einstellungen ▸ Terminal ▸ „Befehlsvorschläge“ bietet drei Modi:

  • Automatisch (Standard): VelaTerm sammelt Ihre Eingabe etwa 25 ms lang und fragt dann die Shell nach Vorschlägen; weiteres Tippen startet diese Wartezeit nicht neu. Tippen Sie weiter, während eine Anfrage läuft, wird für die nächste Anfrage nur Ihre neueste Eingabe verwendet, und veraltete Ergebnisse werden verworfen. Ein exakter Treffer bleibt in der Liste.
  • Mit Tab: Vorschläge erscheinen nur, wenn Sie Tab drücken.
  • Aus: Es wird keine Vorschlagsliste angezeigt, und Tab behält das native Verhalten der Shell bei.

Eine Änderung wirkt sich sofort auf geöffnete Terminals aus, und die Auswahl gilt für alle Clients, die mit demselben VelaTerm-Backend verbunden sind.

Tastatur und Maus:

  • ↑ und ↓ wählen einen Vorschlag aus; Bild↑ und Bild↓ blättern durch längere Listen.
  • Tab oder ein Mausklick fügt den ausgewählten Vorschlag ein.
  • Enter geht immer an die Shell und führt den aktuellen Befehl so aus, wie er eingegeben wurde, ohne einen Vorschlag zu übernehmen.
  • Esc schließt die Liste.
  • Ctrl+Leertaste fordert Vorschläge manuell an.
  • Kann die Auswahl nicht weiter wandern, gehen ↑ und ↓ an die Shell zurück. Ein Druck auf ↑ beim ersten Vorschlag ruft daher den vorherigen Befehl aus dem Verlauf auf.

Die Vorschläge werden in dieser Reihenfolge angeordnet: exakte Treffer, Präfixtreffer, Treffer innerhalb der Zeichenfolge und danach sonstige Treffer der Shell. Unter den exakten Treffern und den Präfixtreffern stehen Treffer mit übereinstimmender Groß- und Kleinschreibung vorn; innerhalb jeder Gruppe stehen kürzere Vorschläge vorn, und bei gleicher Länge wird alphabetisch sortiert.

Die Liste hebt den Teil jedes Vorschlags hervor, der zu Ihrer Eingabe passt, und zeigt die Beschreibung der Shell an, sofern eine vorhanden ist; bewegen Sie den Mauszeiger über einen Vorschlag, um eine lange Beschreibung zu lesen. Die Liste behält ihre Position und Auswahl bei, während die Ergebnisse aktualisiert werden. Das Übernehmen eines Vorschlags schließt die Liste, auch wenn der Vorschlag ein Verzeichnis ist, das auf / endet. Drücken Sie erneut Tab, um die nächste Verzeichnisebene zu sehen. Im Modus „Automatisch“ öffnet weiteres Tippen die Liste erneut.

Ändern Sie die Eingabe, während eine Einfügung aussteht, wartet VelaTerm auf ein neues Ergebnis der Shell und fügt den Vorschlag nur ein, wenn er weiterhin angeboten wird.

Unterstützte Shells

ShellVorschläge
ZshNative Vervollständigungs-Widgets und compadd; Ihre vorhandenen Vervollständigungsdefinitionen werden verwendet.
Bash 4 oder neuerRegistrierte Vervollständigungsfunktionen und -spezifikationen; Befehls- und Dateinamen, wenn nichts registriert ist.
FishNative Vorschläge von complete -C samt Beschreibungen.
PowerShell (pwsh) mit PSReadLineDas native CommandCompletion.CompleteInput.
Bash 3.2 und andere ShellsNur das native Tab-Verhalten; keine Vorschlagsliste.

Die mit macOS ausgelieferte Bash hat die Version 3.2. Um Vorschläge mit Bash unter macOS zu verwenden, legen Sie eine neuere Bash (etwa eine mit Homebrew installierte) als Login-Shell fest.

Vorschläge sind nur in normalen Terminalsitzungen verfügbar. Agentensitzungen bleiben unverändert.

Wie die Integration geladen wird

VelaTerm lädt seine Shell-Integration, wenn ein Terminal startet. Die Startdateien Ihrer Shell werden nie verändert, und ein benutzerdefinierter Startbefehl wird weiterhin ausgeführt, nachdem die Integration geladen ist. Terminals, die bereits liefen, bevor Sie eine Version mit dieser Funktion installiert haben, müssen neu gestartet werden.

  • Zsh lädt die Integration über temporäre Startdateien nach Ihren eigenen Login-Dateien und stellt anschließend ZDOTDIR wieder her. Im Terminal wird nichts eingegeben.
  • Bash startet mit einer temporären --rcfile, die zuerst Ihre Login-Dateien in der bei Bash üblichen Reihenfolge liest (/etc/profile, dann die erste vorhandene Datei aus ~/.bash_profile, ~/.bash_login und ~/.profile) und danach die Integration lädt. Im Terminal wird nichts eingegeben. Zwei Unterschiede zu einer normalen Login-Shell bleiben bestehen: shopt -q login_shell meldet false, und ~/.bash_logout wird beim Beenden der Shell nicht ausgeführt.
  • Fish und PowerShell bieten keinen vergleichbaren Einstiegspunkt beim Start. Daher sendet VelaTerm beim Start der Shell einen Befehl, der die Integration lädt; diese Zeile erscheint oben im neuen Terminal.

Die Ausführungsrichtlinie von PowerShell gilt auch für das Integrationsskript; VelaTerm umgeht sie nicht.

Vorschläge pausieren, während ein Befehl läuft, während ein Vollbildprogramm geöffnet ist, während Sie Zeichen mit einer Eingabemethode (IME) zusammensetzen und während der Navigation im Verlauf (Ctrl+R, Ctrl+S und die Pfeiltasten). Die Pfeiltasten lösen nie eine automatische Anfrage aus, sodass wiederholtes Drücken von ↑ weiter durch frühere Befehle blättert. Ist keine Integration aktiv oder wurden keine Vorschläge gefunden, behält Tab sein natives Verhalten bei.

Wenn Sie im Terminal SSH oder eine weitere verschachtelte Shell starten, wird die Integration in dieser Umgebung nicht installiert.

Windows

Unter Windows wird unabhängig von der Einstellung keine Integration geladen, und die Einstellung „Befehlsvorschläge“ ist ausgeblendet. Terminals mit cmd, Windows PowerShell, pwsh, Git Bash und WSL behalten ihr natives Tab-Verhalten. Die Funktion bleibt deaktiviert, weil sie dort in jedem neuen Terminal einen Befehl eingeben müsste und jede Anfrage Hilfsprozesse starten würde, was die Eingabe verlangsamt.

Einschränkungen

  • Die Vorschläge hängen von den Vervollständigungsdefinitionen ab, die für Ihre Shell installiert sind. VelaTerm bringt keinen eigenen Befehlskatalog und keine verlaufsbasierten Vorhersagen mit.
  • Einige komplexe Vervollständigungsskripte für Bash stützen sich auf interne Mechanismen von Readline, die die Integration nicht exakt nachbilden kann.
  • Vervollständigungsfunktionen können externe Programme ausführen und langsam sein. Die Liste wartet höchstens zwei Sekunden, eine noch laufende Shell-Funktion wird jedoch nicht beendet; drücken Sie wie gewohnt Ctrl+C, um sie zu unterbrechen.
  • Die Integration reserviert Ctrl+F12 für das Sammeln von Vorschlägen und Ctrl+F11 für das Einfügen einer Auswahl. Eine Shell-Konfiguration, die diese Tasten nach dem Start des Terminals neu belegt, kann die Vorschläge außer Kraft setzen. Unter Bash 4.0 bis 4.3 kapselt die Integration außerdem die Tastenbelegungen von Enter und Ctrl+J.
  • Beschreibungen stammen von der Shell. Viele Vervollständigungsdefinitionen für Bash liefern keine, daher zeigen deren Vorschläge keine Beschreibung.

Getestete Umgebungen

Die Funktion wurde unter macOS mit Zsh und Bash 5.2 sowie unter Linux mit Bash, Zsh, Fish und PowerShell 7.4 getestet.