Warp vs. Ghostty:哪個終端應用更符合你的開發需求?
Warp 擁有許多功能,包括 AI,而 Ghostty 則在開箱即用方面更輕量級。以下是我們關于哪個終端應用程序最適合您的指南。
譯自Warp vs. Ghostty: Which Terminal App Meets Your Dev Needs?,作者 David Eastman。
在The New Stack最近對Ghostty的評測之后,我想從Warp用戶的角度來看待它。它們都是終端應用程序(如果你喜歡的話,可以稱之為GUI shell),盡管Warp在功能方面(包括AI)明顯更強大。另一方面,Ghostty的設計目標是開箱即用。這篇文章是對這兩個終端在其各自環境下的初步介紹。
為什么選擇終端?
當我將Warp描述為“重量級”時,這僅僅從我的MacBook上應用程序的大小差異就可以看出(300MB vs 50MB):
圖片
圖片
開發人員之間似乎存在著文化差異:一些開發人員幾乎“生活”在他們的終端中——購買他們喜歡的字體,盡可能地運行命令和編寫腳本,而無需使用任何GUI應用程序;而另一些開發人員則大部分時間都在應用程序中度過,如果他們不得不出于任何原因使用終端,就會感到緊張。我承認Ghostty的目標用戶非常接近前者,因此它擁有大量的配置選項。但是,開發人員有理由理解和使用這兩種風格。
我現在使用的是MacBook,但優秀的終端的強大之處在于它可以在盡可能多的操作系統和發行版上運行——這就是人們仍然學習如何正確使用vim的原因。Warp即將登陸Windows(有一個等待列表),Ghostty將在1.0版本之后登陸。兩者都涵蓋了主要的Linux發行版,但我預計Ghostty會更積極地支持。
不管我們是否喜歡,在任何平臺上進行計算仍然是關于文件、文件夾和進程的。一個好的應用程序可以隱藏這些基礎知識,但是如果你不能控制文件權限或理解長時間運行的任務,你的效率將會迅速下降。
例如,在我的MacBook上,我可以快速安裝tree(或者我可以自己編寫這個函數)……
……然后顯示一個項目結構的僅目錄視圖。
圖片
即使我從未聽說過Avalonia,這個tree也能讓我快速了解它是什么,比在我的Mac上使用Finder要快得多。
終端也成為一個非常強大的記錄場所。使用支持多個標簽的終端,我可以有效地顯示不同會話的記錄——并在需要時繼續任何一個會話。
我不會過多地介紹Ghostty,因為我們之前的文章已經很好地介紹了它。我很樂意使用Homebrew來安裝它,但你也可以使用二進制文件。
brew install --cask ghostty
這是在Warp中安裝它。
圖片
請注意,Warp為長時間運行的命令(進程)提供了通知。這是一個在終端上簡潔高效地完成某些操作的很好的例子。如果你查看頂部,你會看到當Warp塊完成(已完成的命令調用和響應)時,它會記錄所花費的時間。
Ghostty開箱即用,無需配置。但是,應該理解的是,許多shell行為來自shell配置本身。我已經安裝了zsh shell和oh-my-zsh(一個“有主見的提示系統”),它也具有行為。我完全承認我不總是知道哪個負責什么。
為了快速檢查Ghostty的啟動方式,我們可以在啟動Ghostty時流式傳輸日志:
log stream --level debug --predicate 'subsystem=="com.mitchellh.ghostty"'
這讓我們了解它嘗試的默認設置。我已經總結如下:
- known but unimplemented action actinotallow=29 - found Ghostty resources dir: /Applications/Ghostty.app/Contents/Resources/ghostty- - shell integration automatically injected shell=termio.shell_integration.Shell.zsh - known but unimplemented action actinotallow=16 - started subcommand path=/usr/bin/login pid=89591 - received and ignored icnotallow=~ - unimplemented OSC command: change_window_icon
我正在尋找的是它自動集成了(注入)我的zsh shell,這很好。但同樣重要的是,如果它遇到它不理解的設置,它不會出現問題。
如果我想設置配置,只需在應用程序中按cmd-,。在這個例子中,我復制了我在一個博客中看到的隨機配置:
theme=catppuccin-latte window-height=30 window-width=110 title="Oh, hello" window-title-font-family="MonoLisa Variable" font-family="MonoLisa Variable" font-size=14 font-feature=-liga font-thicken=true
我實際上并沒有安裝這些字體和主題,但是我們上面流式傳輸的日志確認Ghostty拒絕了這些設置并繼續運行,而沒有停止啟動。即便如此,它確實“加粗”了我的字體并更改了窗口標題:
圖片
會話、窗口和標簽
將終端用作記錄場所最常見的方法是打開帶有幾個標簽的終端窗口。每個標簽實際上都是一個獨立的shell,專注于單獨的項目或進程。
在Warp中,我只需點擊欄上的加號即可在新窗口中添加新標簽。在Ghostty中,命令?T也能做到同樣的事情:
圖片
Ghostty還會設置那些快速標簽,?1、?2和?3——這是一個不錯的想法。請注意,Ghostty明智地繼承了我的git顏色設置。
在許多情況下,我們可以長時間保持終端開啟,但永遠不考慮恢復是不明智的。
在Warp中,在幾個標簽中工作后,我可以命名并保存配置,或啟動已命名的配置:
圖片
如果我隨后退出Warp,重新打開并啟動,我將獲得窗口和標簽——此外,我還擁有可幫助我記住正在做什么的歷史記錄。
如果我想在Ghostty中獲得類似的行為,可以將這些鍵值對添加到配置中:
... window-save-state = always quit-after-last-window-closed=true
如果我隨后使用cmd–z退出Ghostty,重新啟動會正確重置我的窗口。有趣的是,我擁有與Warp相同的會話歷史記錄。我認為omz_history管理著這種共享歷史記錄行為:
圖片
目前,你無法更改Ghostty中標簽的顏色,這是一種區分正在進行的進程的好方法——我肯定在其他終端中使用過這種方法。在Warp中這很簡單:
圖片
但我已經看到了對此的功能請求。
結論
Ghostty必須與許多優秀的終端應用程序(例如,Kitty)競爭,但目前它已經相當穩定。作為一名開發者,你應該重視任何可在任何平臺上使用的終端應用程序,以便能夠快速在新環境中啟動新項目。
有時,你將受益于Warp中的細節(終端中的AI可以幫助你記住模糊的命令和標志),但在其他情況下,速度和個性化至關重要。隨著像Zig這樣的語言的出現,生產中可能會有更多快速的應用程序。因此,請同時保留Warp和Ghostty——根據需要使用每一個。