同步輸出
頻繁更新大塊可見螢幕區域的命令列程式,在尚未啟用 同步輸出的情況下,可能會在 Ghostty 這類快速終端機中 出現畫面撕裂。
在某些系統上,頻繁更新大塊可見螢幕區域 的命令列程式在使用 Ghostty 時可能反覆閃爍 或出現嚴重的畫面撕裂,而其他終端機模擬器則不會出現這種情況。 這通常不是 Ghostty 的 bug,而是這些程式自身的 bug。
背後的原因通常是 Ghostty 渲染得太快, 而重繪螢幕的這些程式更新螢幕儲存格的速度不夠快,趕不上渲染器——因此出現撕裂。
在不影響效能的前提下,Ghostty 在這裡能做的並不多。因此我們 強烈建議受影響程式的使用者在收到此問題影響時,向上游開發者提交 issue, 並附上此頁 面向開發者 一節的連結, 好讓他們知道如何修復底層問題。
已知受此問題影響的程式包括:
如果你是遇到此問題的 CLI 或 TUI 應用程式開發者,就需要實作 [同步輸出] 通訊協定,它會在螢幕完全更新、可以 安全渲染下一幀時通知 Ghostty
不過,作為最佳實踐,我們還建議只更新 確實需要更新的儲存格,並避免 在更新新儲存格前擦除整列或整個作用中的螢幕。 改用 [游標位置 (CUP)] 把游標重設到需要更新的部分, 更新那些儲存格,再用 [擦除列 (EL)] 擦除該列的其餘部分。這不僅能 減輕不支援同步輸出協定的終端機上出現的畫面撕裂, 還能透過減少不必要的更新和傳送給終端機的資料量 大幅提升效能。