近年來,AI輔助程式設計領域迅速發展,各種軟體工具相繼湧現。從GitHub Copilot到ChatGPT、Claude、Cursor等,你可能已經體驗過其中一些工具。最近,這個領域迎來了一位重要的新成員:Windsurf AI編輯器。Windsurf AI編輯器旨在提供一種神奇的體驗,讓你回想起第一次使用ChatGPT時的驚嘆。本文將深入探討Windsurf AI編輯器的各個方面,包括其主要產品功能、使用說明、實際案例和最佳實踐。
Windsurf AI編輯器是什麼?它能做什麼?
Windsurf是一款集成AI功能的程式碼編輯器,或者如創始人所描述的,它是世界上第一個代理式IDE。基於開源的VS Code編輯器,Windsurf AI編輯器支持VS Code支持的所有程式語言,並兼容VS Code的插件生態系統。它利用OpenAI的GPT 4o和Claude 3.5 Sonnet等大型模型來提供其核心AI功能。此外,他們還開發了自己的Cascade Base和Codeium Fast模型,為用戶提供多種選擇。
Windsurf的主要功能包括程式碼自動完成、AI驅動的程式碼生成(具有深度上下文感知能力),以及能夠像AI代理一樣執行自動多步操作來解決複雜問題。創始團隊希望Windsurf能像Copilot一樣與開發者無縫協作,而不會掩蓋他們的光芒,同時也具備像AI代理一樣獨立解決複雜問題的能力。他們將這種體驗稱為“Flows”,旨在為開發者提供一種流暢無縫的體驗。
主要功能
- Cascade AI助手:Cascade具有AI代理功能,自動分析和分解你的指令,同時掃描項目程式碼,一步一步完成複雜任務。
- 自動完成:自動預測你即將編寫的程式碼,並用單一鍵擊完成。
- 超級自動完成:提供上下文和意圖感知的預測,不僅添加新程式碼,還為現有程式碼提供一致的修改建議。
- 編輯器內聊天:可用於解釋小段程式碼、重構、生成註釋或文檔。
- 指定上下文:你可以在Cascade中輸入
@
來選擇特定文件、目錄或程式碼塊作為上下文,以便在與AI聊天時進行更精確的控制。 - 深度上下文感知:Windsurf整合了Codeium在這一領域多年的研究經驗,允許對程式碼庫進行深度掃描和理解,以提供更有效的輸出和建議。
- 命令行操作建議:自動提示你執行相關的命令行操作。例如,如果你要求Windsurf完成一個需要第三方依賴的函數,它會修改相關文件並提示你執行命令來安裝依賴,你只需點擊確認即可。
- 多文件編輯:允許同時修改多個文件,同時確保修改的一致性。
- CodeLenses:在麵包屑導航頂部顯示快速操作,如解釋、重構、添加文檔字符串,方便一鍵執行。
- 終端聊天:在命令行中使用聊天功能,讓AI生成可立即執行的命令,省去你編寫或使用搜索引擎的麻煩。
深入功能概述
Cascade概述
Cascade是Windsurf的AI助手名稱。它具有對程式碼庫的深度理解能力、先進的內置工具使用能力和實時用戶意圖感知能力。通過這些綜合能力,Cascade旨在為開發者提供自然流暢的體驗。
點擊Windsurf編輯器菜單欄右上角的Cascade圖標,即可打開Cascade窗口,如下所示。
Cascade主要在兩種模式下運行:聊天模式和寫作模式,如下所示:
寫作模式
聊天模式
點擊上方寫作/聊天與Cascade的圖標,即可在兩種模式之間切換。你也可以點擊聊天框下方的切換按鈕或使用快捷鍵進行切換。(Windows為Ctrl + .,Mac為⌘ + .)
在寫作模式下,Cascade可以執行修改程式碼、編輯現有文件和添加新文件等操作,適合與實際程式碼編寫相關的任務。
在聊天模式下,Cascade僅在聊天窗口中回應,不會直接嘗試修改文件,適合詢問與程式碼本身無關的問題或當你不希望Cascade直接修改程式碼時。
Cascade的深度上下文感知
Cascade的深度上下文感知能力源自Windsurf創始團隊Codeium在這一領域多年的研究經驗積累。通過深度上下文感知,即使在面對生產環境中的大型程式碼庫時,Cascade也能根據項目中的相關程式碼生成結果和建議,而不僅僅依賴其自身的知識庫。
以下是一個視頻示例。從示例中,我們可以看到Cascade像AI代理一樣分析其面臨的任務,並一步一步執行操作,首先識別項目中與當前任務相關的內容,然後一步一步完成需求。
Cascade的自動命令行操作建議
在像AI代理一樣使用Cascade編寫程式碼的過程中,如果發現某些命令行操作需要在中途執行才能繼續正常進行,Cascade會直接在聊天窗口中提示你執行的命令並請求你的許可。你只需點擊確認執行,即可讓Cascade繼續,Cascade會自動讀取執行後獲得的結果,並根據結果進行下一步操作。
Cascade的實時深度意圖感知
一般來說,當我們編寫程式碼時,並不需要AI的幫助100%的時間。更多時候,我們可能會自己寫一點,然後從AI那裡得到一些幫助,然後自己完成一些邏輯。如果AI輔助程式設計工具沒有針對這種情況進行優化,它們可能會因為缺乏上下文而無法提供更好的結果。Windsurf為Cascade配備了強大的推理能力,結合基於當前操作的用戶意圖深度分析。每當你需要Cascade的幫助時,Cascade總能更準確地理解你想要做什麼。這在很多情況下可以為你省去麻煩,無需反復告訴AI你剛剛做了什麼,以及你接下來想要做什麼。當然,給AI更清晰的指令總是好的,但有時如果能省去一些麻煩,不是更好嗎?
Cascade的多文件同時編輯
對於簡單任務,在單一文件中編寫和修改程式碼通常就足夠了。然而,對於更複雜的任務,往往需要修改多個文件和各種類型的文件。對於AI輔助程式設計工具來說,不僅需要知道哪些文件需要同時修改,還需要確保不同文件之間的修改一致且相互響應。Cascade可以通過其深度上下文感知能力和像AI代理一樣一步一步完成任務的能力很好地實現這一點。
自動完成
自動完成功能可以預測你即將編寫的程式碼,不僅預測單行程式碼,還能生成大段預測程式碼。在Windsurf誕生之前,Codeium在這一領域已經積累了幾年的經驗,現在這種能力直接內建在Windsurf編輯器中。
超級自動完成
為什麼在已經有自動完成的情況下還要有超級自動完成?因為自動完成是一種“僅添加”類型的預測,它只幫助你預測即將添加的程式碼。而超級自動完成則可以在你編寫或修改程式碼時預測相關的程式碼修改。例如,當你更改一個字段名稱時,超級自動完成可以自動檢測所有使用該變數名稱的地方並提出修改建議。你只需按下Tab鍵即可接受。超級自動完成的觸發時機由Windsurf根據上下文智能預測,並在滿足某些條件時自動觸發。常見的觸發場景包括,除了上述例子外,修改類型定義、糾正拼寫錯誤,以及可能綁定表單的事件處理程序。
編輯器內聊天輔助
你可以通過快捷鍵(Windows為Ctrl + I,Mac為⌘ + I)在編輯器的任何位置直接打開內聯聊天窗口。
或者,當你選擇一段程式碼時,會自動在選擇的程式碼旁邊出現氣泡提示。
命令行AI聊天
除了在編寫程式碼時使用AI輔助外,你還可以在命令行操作中讓AI生成一些遺忘的命令行操作,省去你查找信息的麻煩。不過,友情提示:AI生成的命令也可能有缺陷,因此在執行前務必確認。
Code Lens
在菜單欄頂部,有常見操作的按鈕,如解釋程式碼、重構、添加文檔註釋,可以一鍵執行。
常見問題
Windsurf與其他AI程式碼編輯器(如Cursor、Cognition)有何不同?
它們都是AI輔助程式設計軟體,但在產品形式和可用性上有所不同。
例如,Cognition(Devin)獨立於IDE,更傾向於讓AI獨立完成複雜的大型任務,而不是與開發者實時協作。
與Cursor相比,Cursor的Composer也可以像AI代理一樣執行複雜任務,但Cursor尚未進行大規模推廣。根據作者的經驗,基於Codeium在深度程式碼上下文理解方面的多年積累,Windsurf在處理複雜任務和大程式碼庫時可能具有優勢。