小試Source Insight的巨集程式設計

滕瑞發表於2015-05-19

有人說作業系統、程式語言和編輯器是程式設計師永恆的吐槽話題。前不久在水木上看到有人又提起Source Insight,不禁回憶起當年使用Source Insight的日子,各種快捷鍵用得飛快,以致於不小心列印(估計是碰到了Ctrl+P)了一篇與工作無關的文件,然後被HW公司通報批評,還罰了200元工資。

當然今天的重點不是吐槽,而是和大家分(xiǎn)享(bai)一段自己在Source Insight上開發的一個巨集。

和Word,Excel上可以使用VBA一樣,Source Insight也提供了一個內建的類C(C-like)的巨集指令碼,可以用來插入格式化文字(例如插入含有公司版權資訊註釋),完成自動編輯等操作。下面介紹如何編輯自己的巨集,併為其設定快捷鍵。

Source Insight安裝後會自動生成一個Base Project,裡面的預設檔案是utils.em,把自定義的巨集新增進去即可生效。

下面的程式碼是實現Visual Studio那個番茄助手的切換標頭檔案和原始檔的功能:

// open the corresponding .cpp or .h file
macro opencorrespondingcpporhfile()
{
    hcurrentbuf = getcurrentbuf ()
    bname = getbufname (hcurrentbuf)
    len = strlen (bname)

    if (".cpp" == strmid (bname, len-4, len))
    {
        filename = strmid (bname, 0, len-4)#".h"
    }
    else if (".h" == strmid (bname, len-2, len))
    {
        filename = strmid (bname, 0, len-2)#".cpp"
    }
    else
    {
        filename = nil
    }
    if (filename != nil)
    {
        hbufnext = openbuf (filename)
        if (hbufnext != hnil)
        {
            setcurrentbuf (hbufnext)
        }
    }
}

接下來是設定快捷鍵,開啟Options→Key Assignments…,從命令區域中選擇“Macro: OpenCorrespondingCppOrHFile”,然後點“Assign New Key…”按鈕。我把快捷鍵設定為“Alt + ·”

enter image description here

之後就可以在你的C++工程中用以上快捷鍵切換原始檔和標頭檔案了。但是原始檔和標頭檔案的檔名必須是相同的。

Enjoy it!

相關文章