外掛裝好了,按鈕找到了,也按下去了。這時候的第一印象通常是:原來這是一種不用切換到另一個終端機視窗就能啟動 claude 的方法。當然很方便。不過,只為了一個按鈕就特地裝一個外掛,未免有點奇怪。

這個印象其實會誤導人。在有外掛之前,IDE 裡本來就有終端機,您隨時可以自己在裡面輸入 claude。外掛真正做的是另一件事:它把代理和編輯器串接起來,讓雙方都看得到彼此。您開啟了什麼、選取了什麼、linter 在抱怨什麼、建議的修改逐行看起來是什麼樣子,這些都不必再由您轉述。一鍵啟動,反而是這整套功能裡最無聊的一項。

Claude Code 本來就是在終端機裡跑的工具,沒有 IDE 也完全能正常運作:開啟終端機,輸入 claude,接著用平常說話的方式寫下需求就好。

差別不在於代理能不能啟動,而在於您拿什麼來檢查它的工作成果。它對磁碟上檔案的修改是實實在在的。編輯器關著的時候,您手上只有一份報告:"在三個方法裡加上了錯誤處理"。聽起來很像真的。但沒有東西可以對照。

外掛補上的正是這個缺口。下面說明它能帶來什麼,以及大家最常在哪裡踩坑。

1. 和編輯器串接能帶來什麼

官方外掛能做五件事。依序來看,先從促成這一切的那一項說起。

  • IDE 視窗裡的 diff。Diff 就是一份變更清單:哪些行被刪除、哪些行被新增、舊版和新版之間改了什麼。代理的修改會在您熟悉的編輯器 diff 檢視器裡開啟,而不是以文字形式出現在終端機裡。左邊是修改前,右邊是修改後。
  • 選取範圍的上下文。目前開啟的分頁和選取的片段會自動傳給代理。不需要把程式碼複製到對話裡,再用文字解釋您指的是哪一段。
  • 把程式碼傳給代理。選取一段程式碼,按下快捷鍵,提示詞裡就會出現正好指向這幾行的參照,格式像 @src/auth.ts#L1-99。
  • 來自 IDE 的診斷資訊。編輯器用紅線標出的 linter 錯誤和語法錯誤,會自動傳給 Claude。大家通常最後才發現這項功能,但它是最實用的功能之一:您看到問題的同時,代理也看到了。
  • 快速啟動。點一下 IDE 面板上的 Claude 標誌,或按快捷鍵,不必離開編輯器就能開啟代理。

2. 安裝:要裝兩樣東西,不是一樣

最常踩坑的就是這裡。外掛本身並不包含 Claude Code。它是在 IDE 的整合式終端機裡執行 claude 指令,再連線到它。所以兩個部分都要安裝:

  1. Claude Code 本身 - 如果沒裝,外掛會直接告訴您 Cannot launch Claude Code;
  2. Anthropic PBC 推出的 Claude Code [Beta] 外掛 - 從 Marketplace 安裝,裝好之後最好把 IDE 完全重新啟動,有時候重新啟動一次還不夠。

如果 claude 已經安裝,卻不在 IDE 尋找它的位置,可以在 Settings → Tools → Claude Code [Beta] → Claude command 填入完整路徑。

3. 一開始就用得到的快捷鍵

動作Windows / LinuxmacOS
開啟 Claude CodeCtrl+EscCmd+Esc
把選取的程式碼傳給代理Ctrl+Alt+KCmd+Option+K
快捷鍵沒反應時開啟 Claude Code點一下 IDE 面板上的 Claude 標誌

表格最後一列不是放著好看的。快捷鍵不一定每次都有效:這組按鍵有時會被系統攔截,有時會被別的外掛搶走。這不是故障,也不需要為此去修 IDE。改用滑鼠開啟就好,慢一點,但在哪裡都行得通。

IntelliJ IDEA 面板上帶有 Claude 標誌的 Claude Code 外掛按鈕

不用找太久:外掛的圖示就是 Claude 標誌,和介面上其他地方的一模一樣。不會認錯的。

Send to Claude Code

第二個快捷鍵是最常用的。選取一段程式碼,按下 Ctrl+Alt+K,指向這幾行的參照就會跳進代理的提示詞裡。選取範圍的動作選單裡也有同樣的功能,項目名稱是 Send to Claude Code。

選取程式碼旁的 Send to Claude Code 項目,以及插入代理提示詞中的程式碼行參照

提示詞裡會出現像這樣的一行,也就是檔案路徑加上行號範圍:

@presentations/assets/slides.css#L29-30

接著在後面用平常的話補上任務:

@presentations/assets/slides.css#L29-30 把 margin-left 拿掉,它會讓版面在窄螢幕上跑掉

雙方都有好處:代理不必花步驟去找檔案,您也不必為了這次搜尋耗掉上下文。

如果沒有外掛

用 IDE 本身的功能也能產生指向某一行的參照:在該行按右鍵 - Copy / Paste Special - Copy Reference。剪貼簿裡就會是 src/utils/slides.js:16。

格式不一樣:沒有 @,改用冒號分隔。這樣就不再是自動把檔案帶進上下文,只是請求裡的一段文字而已。不過拿來表示"看這裡"還是有效的:代理會讀到路徑,自己開啟對應的位置。

4. 兩種啟動方式和 /ide 指令

從 IDE 內建的終端機啟動 claude,所有功能都會自動啟用,什麼都不用做。

如果是從外部終端機(另一個視窗、Windows Terminal、iTerm)啟動,在您下指令之前,它和編輯器之間都不會有連線:

# 把 Claude Code 連線到已開啟的 IDE
/ide

我自己會乾脆養成習慣,一律從 IDE 的終端機啟動代理。這樣就完全不用去記 /ide:只有一種情況需要它,就是終端機在外部的時候。

還要注意啟動時所在的資料夾。代理看的是啟動位置底下的檔案,如果從旁邊的資料夾啟動,它處理的就會是錯的檔案。在您自己的專案裡,請從專案根目錄啟動,也就是在 IDE 裡開啟的那一個。

課程作業則不一樣:請從作業資料夾啟動代理,而不是從 codegym-project 的根目錄。每個作業都是一個獨立的資料夾,有自己的檔案和給代理的規則;如果從專案根目錄啟動,整門課程都會一下子進入代理的視野。

5. diff 要顯示在哪裡

變更要顯示在哪裡,是一項設定,不是固定不變的:

# 開啟 Claude Code 設定
/config

裡面有一個 diff tool 選項:值設為 auto 會在 IDE 裡顯示修改,設為 terminal 則留在終端機裡。如果 diff 一直停留在終端機,該檢查的是這裡,而不是去找外掛哪裡壞了。

在終端機裡,diff 是以文字呈現,大概像這樣:

diff --git a/src/main/java/RefundQueue.java b/src/main/java/RefundQueue.java
index 3a7f2bc..9d41a80 100644
--- a/src/main/java/RefundQueue.java
+++ b/src/main/java/RefundQueue.java
@@ -42,7 +42,7 @@ void prioritize(RefundRequest refundRequest) {
-    if (refundRequest.isUrgent()) {
+    if (refundRequest.isUrgent() || refundRequest.amount() > 100) {
         moveToTop(refundRequest);
     }
}

讀法是這樣的:帶減號的行是原本的內容,帶加號的行是修改後的內容。其他都是輔助用的標頭:顯示的是哪個檔案、片段從第幾行開始。

接下來就是值得開啟 IDE 顯示的原因。在 Claude 每次修改前都會徵求許可的模式下,這個詢問不只會以文字出現在終端機:IDEA 還會在內建的 diff 視窗裡開啟這項變更,並附上 Reject 和 Apply 按鈕。您可以在整個檔案的上下文中看著醒目標示的程式碼行,當場做決定。

IntelliJ IDEA 中的 diff 視窗,顯示建議的修改以及 Reject 和 Apply 按鈕

和主控台裡的文字 diff 相比,這簡直不在同一個層級:有語法醒目標示、有前後的程式碼行、有您熟悉的導覽方式。"接受或不接受"是看著程式碼決定的,而不是看著對程式碼的描述。

6. 三個常見的坑

Esc 無法中斷代理

在 JetBrains 的終端機裡,Esc 鍵預設會把焦點切回編輯器,所以根本傳不到 Claude Code。這種狀況很惱人:代理正在做錯的事,您按了 Esc,卻什麼都沒發生。

只要修一次就好:到 Settings → Tools → Terminal,取消勾選 Move focus to the editor with Escape。我會在裝好外掛之後馬上處理,不等第一次遇到這種狀況。

"No available IDEs detected"

代理看不到編輯器。請依序檢查:外掛已安裝並已啟用;IDE 已經完全重新啟動;claude 是從內建終端機啟動的,而不是從外部視窗。

WSL:代理在 Linux,IDE 在 Windows

這是同一個錯誤的特殊情況。如果 Claude Code 跑在 WSL2 裡,IDE 卻在 Windows 上,連線通常會被 WSL2 的網路隔離或防火牆擋住。解決方法是新增一條防火牆規則,或是把 WSL2 切換成 mirrored networking 模式,兩種做法外掛的文件裡都有詳細說明。

7. 這一切是為了什麼

和 IDE 串接帶來的最大好處是:代理在做事的同時,您就看得到它在做什麼。接下來的流程是這樣:

  1. Claude 提出一項修改;
  2. 您查看 diff,決定要不要接受;
  3. Git 記錄下您接受的內容。

第三步在這裡只是點到為止。Git 的工作流程、commit 和復原是另一個很大的主題,課程之後還會再回來談。現在只要記住一件事:存檔點是在您檢查之後才建立的,而不是之前。

這個循環只有在示意圖上才會這麼整齊。實際工作時,有一半的修改您會看都不看就接受,因為只是改個變數名稱;但也會有某一項讓您卡上十分鐘,最後請它重做。這很正常。重點不在於逐行細讀,而在於當某項修改看起來怪怪的時候,您有機會好好檢查。

沒有編輯器,就根本沒有這個機會:您只能拿描述來對照,而不是拿程式碼。

現在就試試看

在 IDEA 裡開啟任意一個專案,點一下面板上的 Claude 標誌。快捷鍵 Ctrl+Esc(macOS 上是 Cmd+Esc)效果相同,但不一定每次都有反應,這種情況難免,這時就用滑鼠吧。

接著在檔案裡選取幾行,按下 Ctrl+Alt+K,指向這幾行的參照就會自動跳進提示詞。請它做一件小事,例如:"幫這個方法加上註解"。看看修改如何在 diff 視窗裡開啟,然後按下 Reject。懂得拒絕,也是一種必要的能力。