10 Punkte von xguru 28 일 전 | 6 Kommentare | Auf WhatsApp teilen
  • Einführung eines experimentellen Renderers, der die Flacker- und Sprungeffekte des bisherigen Renderers beseitigt
  • Auch bei langen Unterhaltungen bleiben Speicher- und CPU-Auslastung konstant, und in der Terminal-Umgebung sind nun Mausklicks, Cursorbewegungen und Klicks auf UI-Elemente möglich
  • Aktivierung über die Umgebungsvariable CLAUDE_CODE_NO_FLICKER=1
  • Aufgrund struktureller Grenzen der bisherigen Terminal-ANSI-Codes musste zum Neuzeichnen von Zeilen außerhalb des Viewports bisher Code zum Löschen des gesamten Bildschirms verwendet werden; der neue Renderer löst dieses Problem, indem er den gesamten Viewport virtualisiert
  • Da Trade-offs wie fehlende native cmd-f-Suche, kein Copy-and-Paste und noch nicht fertig abgestimmte Scroll-Physik verbleiben, befindet sich die Funktion noch im experimentellen Stadium
  • Da sich die Gesprächsinhalte nicht im Scrollback, sondern im alternativen Bildschirm-Puffer befinden, kann nach dem Wechsel in den Transcript-Modus mit Ctrl+O eine Suche im less-Stil (/, n/N) verwendet werden
  • Das Eingabefeld bleibt auch während gestreamter Ausgabe am unteren Bildschirmrand fixiert
  • Unterstützt In-App-Mausereignisse wie das Anpassen der Cursorposition per Maus, das Aufklappen von Tool-Ergebnissen, das Öffnen von URLs/Dateipfaden und Textauswahl per Drag-and-Drop

Weitere Details siehe Fullscreen rendering in der Claude-Code-Dokumentation (unten angehängt)

Fullscreen-Rendering

  • Durch Setzen der Umgebungsvariable CLAUDE_CODE_NO_FLICKER=1 beim Start oder durch Hinzufügen von export CLAUDE_CODE_NO_FLICKER=1 zu ~/.zshrc / ~/.bashrc wird es automatisch auf alle Sitzungen angewendet
  • Erfordert Claude Code ab v2.1.88, befindet sich derzeit in der Research-Preview-Phase und das Verhalten kann sich je nach Feedback ändern
  • Die Bezeichnung „Fullscreen“ hat nichts mit dem Maximieren des Terminalfensters zu tun und funktioniert bei jeder Fenstergröße

Änderungen gegenüber der bisherigen Methode

  • Das Eingabefeld bleibt auch während gestreamter Ausgabe am unteren Bildschirmrand fixiert (ist das Eingabefeld fixiert, ist Fullscreen-Rendering aktiviert)
  • Da sich die Gesprächsinhalte im alternativen Bildschirm-Puffer befinden, ergeben sich folgende Unterschiede:
Bisher Danach
Textsuche mit Cmd+F oder tmux-Suche Nach Ctrl+O mit / suchen oder mit [ in den nativen Scrollback des Terminals schreiben und dann Cmd+F verwenden
Auswahl/Kopieren per nativer Drag-Funktion des Terminals In-App-Auswahl, automatisches Kopieren beim Loslassen der Maustaste
URL mit Cmd-Klick öffnen URL per Klick öffnen

Mausunterstützung

  • Klick auf das Prompt-Eingabefeld: Cursor an beliebiger Textposition platzieren
  • Klick auf eingeklappte Tool-Ergebnisse: aus- oder einklappen (Tool-Aufruf und Ergebnis werden gemeinsam erweitert)
  • Klick auf URLs/Dateipfade: Dateien werden mit der Standard-App geöffnet, http://-/https://-URLs im Browser
    • In xterm.js-basierten Terminals wie dem integrierten VS-Code-Terminal wird an den terminaleigenen Link-Handler delegiert, damit Links nicht doppelt geöffnet werden
  • Klicken und Ziehen: Textauswahl (Doppelklick: Wortauswahl, Dreifachklick: Zeilenauswahl)
  • Mausrad: Gespräch scrollen
  • Beim Loslassen der Maustaste wird ausgewählter Text automatisch in die Zwischenablage kopiert; kann unter /config deaktiviert werden

Scroll-Kurzbefehle

Tastenkürzel Aktion
PgUp / PgDn Eine halbe Bildschirmseite nach oben/unten scrollen
Ctrl+Home Zum Anfang der Unterhaltung springen
Ctrl+End Zur neuesten Nachricht springen und Auto-Follow wieder aktivieren
Mausrad Um einige Zeilen scrollen
  • Auf Tastaturen ohne dedizierte Tasten wie beim MacBook kann Fn+↑/↓/←/→ als Ersatz für PgUp/PgDn/Home/End verwendet werden
  • Beim Scrollen nach oben wird Auto-Follow vorübergehend pausiert; mit Ctrl+End oder durch Scrollen ganz nach unten wird es fortgesetzt
  • Die Tastenkürzel können über Aktionsnamen wie scroll:pageUp, scroll:pageDown usw. per Keybinding angepasst werden (siehe Keybindings-Dokumentation)
  • Über die Umgebungsvariable CLAUDE_CODE_SCROLL_SPEED kann der Faktor für die Scrollgeschwindigkeit des Mausrads angepasst werden (1–20, Standardempfehlung 3 auf Vim-Basis)

Unterhaltung durchsuchen und prüfen (Transcript-Modus)

  • Nach dem Wechsel in den Transcript-Modus mit Ctrl+O stehen Navigation und Suche im less-Stil zur Verfügung
Taste Aktion
/ Suche öffnen (Enter: bestätigen, Esc: abbrechen)
n / N Zum nächsten/vorherigen Suchtreffer springen
j/k oder / Eine Zeile scrollen
g/G oder Home/End Zum Anfang/Ende springen
Ctrl+U / Ctrl+D Eine halbe Seite scrollen
[ Gesamte Unterhaltung in den nativen Scrollback des Terminals schreiben (Cmd+F nutzbar)
v In temporäre Datei speichern und mit $VISUAL/$EDITOR öffnen
Esc, q, Ctrl+O Transcript-Modus beenden

Hinweise zur Verwendung mit tmux

  • Um das Scrollen per Mausrad in tmux zu nutzen, muss in ~/.tmux.conf set -g mouse on hinzugefügt werden
    • Ohne Mausmodus werden Mausrad-Ereignisse an tmux weitergereicht; Scrollen per Tastatur mit PgUp/PgDn funktioniert normal
    • Wenn Claude Code bei deaktiviertem tmux-Mausmodus gestartet wird, gibt es eine einmalige Hinweismeldung aus
  • Mit tmux -CC (iTerm2-Integrationsmodus) ist es nicht kompatibel
    • In diesem Modus funktionieren der alternative Bildschirm-Puffer und Mouse-Tracking nicht korrekt, und Doppelklicks können den Terminalzustand beschädigen
    • Die normale Nutzung von tmux in iTerm2 ohne -CC funktioniert korrekt

So bleibt die native Textauswahl erhalten

  • Wenn Mouse-Capture störend ist, kann zusätzlich CLAUDE_CODE_DISABLE_MOUSE=1 gesetzt werden, um Flackervermeidung und konstante Speichernutzung ohne Mouse-Capture zu aktivieren
    CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude  
    
  • Bei deaktiviertem Mouse-Capture bleiben Tastatur-Scrollfunktionen (PgUp, PgDn, Ctrl+Home, Ctrl+End) erhalten, aber Cursorplatzierung per Klick, Aufklappen von Tool-Ergebnissen, URL-Klicks und Scrollen per Mausrad sind deaktiviert
  • In SSH-Umgebungen oder innerhalb von tmux unterscheidet sich der Clipboard-Pfad bei Mouse-Capture; Claude Code zeigt nach dem Kopieren per Toast an, welcher Pfad verwendet wurde

Research Preview und Feedback

  • Wurde in den wichtigsten Terminal-Emulatoren getestet, aber in ungewöhnlichen Terminals oder bei speziellen Konfigurationen können Rendering-Probleme auftreten
  • Bei Problemen in Claude Code den Befehl /feedback ausführen oder im Claude-Code-GitHub-Repo ein Issue erstellen (Name und Version des Terminal-Emulators angeben)
  • Zum Deaktivieren die Umgebungsvariable entfernen oder CLAUDE_CODE_NO_FLICKER=0 setzen

6 Kommentare

 
neocode24 26 일 전

Ich nutze den integrierten Modus mit iterm -CC, daher ist mir nichts besonders Merkwürdiges aufgefallen...
Eher im Gegenteil: Seit einiger Zeit war es lästig, dass beim Scrollen während des Renderings zwangsweise an den Anfang gesprungen wurde. Jetzt bleibt die Position stehen und stattdessen erscheint eine new message-Benachrichtigung, das gefällt mir. Ist gut..

 
sm0514sm 27 일 전

Wenn ich das aktiviere, scheint ein Zeilenumbruch mit Shift + Enter nicht zu funktionieren :(

 
@deleted_gndfr0dev 27 일 전

Wirkt so, als würde es sich ein wenig in Richtung opencode verändern.

 
tested 27 일 전

Die TUI wird zur GUI

 
kimjoin2 27 일 전

Solche Änderungen gefallen mir~

 
byforce 28 일 전

Es wirkt, als müsste es noch etwas weiter ausgearbeitet werden.
Wenn man den Cursor setzt und dann mit der Maus eine andere Stelle auswählt, sollte automatisch kopiert werden, und beim Einfügen sollte es an der Stelle eingefügt werden, an der der Cursor war.
Stattdessen wird es an der mit der Maus ausgewählten Stelle eingefügt.