在程式開發過程中,經常需要對程式碼進行臨時註釋以進行除錯或測試。許多 IDE 提供了快捷鍵(例如 Ctrl+/
)來快速註釋或取消註釋選取的程式碼行。然而,Source Insight 預設並未提供此功能,透過自訂巨集,我們可以輕鬆實現這個便利的功能。
設定步驟
步驟 1:新增巨集程式碼
首先,我們需要在 Source Insight 的設定檔案中加入巨集程式碼。請依照以下步驟操作:
- 開啟 Source Insight 4。
- 在功能表欄中選擇 Project -> Open Project,打開您的 Base 專案。如果沒有 Base 專案,請先建立一個。
- 在 Base 專案中,找到並打開
utils.em
檔案。如果檔案不存在,可以手動建立一個。 - 在
utils.em
檔案的最前面,加入以下程式碼並儲存:
// 新增雙斜杠註釋功能
macro MultiLineComment()
{
hwnd = GetCurrentWnd()
selection = GetWndSel(hwnd)
LnFirst = GetWndSelLnFirst(hwnd) // 取首行行號
LnLast = GetWndSelLnLast(hwnd) // 取末行行號
hbuf = GetCurrentBuf()
if(GetBufLine(hbuf, 0) == "//magic-number:tph85666031"){
stop
}
Ln = LnFirst
buf = GetBufLine(hbuf, Ln)
len = strlen(buf)
while(Ln <= LnLast) {
buf = GetBufLine(hbuf, Ln) // 取Ln對應的行
if(buf == ""){ // 跳過空行
Ln = Ln + 1
continue
}
if(StrMid(buf, 0, 1) == "/") { // 需要取消註釋,防止只有單字元的行
if(StrMid(buf, 1, 2) == "/"){
PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
}
}
if(StrMid(buf, 0, 1) != "/"){ // 需要添加註釋
PutBufLine(hbuf, Ln, Cat("//", buf))
}
Ln = Ln + 1
}
SetWndSel(hwnd, selection)
}
步驟 2:設定快捷鍵
程式碼新增完成後,接下來需要為這個巨集指定一個快捷鍵
- 在功能表欄中選擇 Options -> Key Assignments。
- 在搜尋欄位中輸入
Macro
,找到Macro: MultiLineComment
。 - 點擊 Assign New Key… 按鈕,設定您偏好的快捷鍵(例如
Ctrl+/
)。 - 設定完成後,點擊 OK 關閉視窗。

步驟 3:測試功能
設定完成後,選取您想要註釋或取消註釋的程式碼行,按下您設定的快捷鍵(例如 Ctrl+/
)。您會發現選取的程式碼行將自動加上 //
註釋符號;若該行已經有 //
註釋,再次按下快捷鍵則會移除註釋。
巨集程式碼的功能解析
讓我們簡單解析這段巨集程式碼的運作原理:
- 取得選取範圍:程式碼首先取得目前視窗中選取的程式碼行範圍(從首行到末行)。
- 逐行處理:針對選取範圍內的每一行進行檢查:
- 如果該行為空行,則跳過。
- 如果該行已經有
//
註釋,則移除註釋。 - 如果該行沒有註釋,則在行首加上
//
。
- 保留選取狀態:處理完成後,程式碼會恢復原本的選取範圍,確保您的操作體驗不受影響。
學習心智圖
由於本文與學習新工具的設定有關,以下是針對 Source Insight 巨集設定的學習心智圖,幫助您快速掌握相關知識結構:
graph LR A[Source Insight 巨集設定] --> B[基本概念] A --> C[設定步驟] A --> D[應用場景] B --> B1[什麼是巨集] B --> B2[巨集檔案結構] B --> B3[支援的指令與函數] C --> C1[建立或編輯 utils.em 檔案] C --> C2[撰寫巨集程式碼] C --> C3[設定快捷鍵] C --> C4[測試與除錯] D --> D1[快速註釋程式碼] D --> D2[自訂編輯功能] D --> D3[提升工作效率]
總結
透過以上步驟,您可以在 Source Insight 4 中實現類似其他 IDE 的快速註釋與取消註釋功能。這不僅節省了手動輸入註釋符號的時間,也讓程式碼的除錯與測試過程更加流暢。希望這篇文章對您有所幫助,如果您有其他巨集設定的需求或問題,歡迎隨時與我討論!