不想當(dāng)將軍的士兵不是好士兵,不能管理項目的編輯器不是好編輯器鲤看!Sublime 作為一款優(yōu)秀的編輯器违柏,其項目管理功能自然也不能弱,管理和編譯項目自然不在話下证逻。
然而令我感到奇怪的是乐埠,我在網(wǎng)上瀏覽了 N 多 Sublime 技術(shù)帖,發(fā)現(xiàn)幾乎全是在談?wù)摼庉嫾记汕羝蟆⒉寮筛馈⑵つw等等,對于至關(guān)重要的項目管理功能卻鮮有人提及龙宏,今天在下就盡綿薄之力科普一下這部分內(nèi)容棵逊。
如果你符合以下情況之一,那么建議你閱讀這篇文章:
- 只用 Sublime 編輯過單文件银酗,并沒有體驗過項目管理功能辆影;
- 用過 Sublime 的項目管理功能徒像,但也僅限于把文件夾拖到左邊欄中;
- 經(jīng)常使用 Sublime 編寫代碼蛙讥,但一遇到編譯锯蛀、運行等問題就頭疼,只能切回到 IDE 上去键菱。
本文以 編譯和運行一個簡單的 C++ helloworld 項目 為例來介紹 Sublime 的項目管理功能谬墙。
1. 準備:創(chuàng)建項目目錄
-
在桌面上新建一個空目錄
hello
,然后進入目錄并新建 3 個文件:hello.h
,hello.cpp
,main.cpp
经备,內(nèi)容分別如下:/* ---------- hello.h ---------- */ void hello(); /* ---------- hello.cpp ---------- */ #include <iostream> #include "hello.h" void hello(){ std::cout<<"hello world"<<std::endl; } /* ---------- main.cpp ---------- */ #include "hello.h" int main() { hello(); return 0; }
這是一個頭文件與Cpp文件分離的最簡單的 C++ 項目拭抬,也就是我們的項目目錄了。
打開 Sublime Text侵蒙,選擇菜單
Project->New Workspace for Project
造虎,創(chuàng)建一個全新的 Sublime 窗口(也可以使用快捷鍵Ctrl+Shift+N
)-
將
hello
目錄拖進 Sublime 窗口,這時hello
目錄將立即顯示在 Sublime 的左側(cè)邊欄中纷闺。如果不顯示算凿,請選擇菜單View->Side Bar->Show Side Bar
調(diào)出 Side Bar(也可以快捷鍵 ctrl+k,ctrl+b)。效果如圖所示:
2. 創(chuàng)建 Sublime 項目
按
Ctrl+Shift+P
打開命令面板犁功,輸入projsave
氓轰,回車保存項目,命名為hello
浸卦,保存在項目目錄即可-
OK署鸡,創(chuàng)建項目就是這么簡單
3. 項目管理--小試牛刀
-
按
Ctrl+Shift+P
打開命令面板,輸入projedit
并回車限嫌,進入項目管理文件(其實就是剛才創(chuàng)建的hello.sublime-project
文件)靴庆。會看到如下內(nèi)容:{ "folders": [ { "path": "." } ] }
其中的
"path": "."
是當(dāng)前項目目錄的相對本文件的路徑。 -
我們在
"path": "."
之后追加一行內(nèi)容:"name": "我的第一個C++項目",
怒医,保存炉抒,會發(fā)現(xiàn)左側(cè)欄的目錄名變了,如下圖:如果保存彈出錯誤稚叹,請確保你在
"path":"."
的末尾寫了英文逗號焰薄。
目錄名稱變成中文只是為了方便觀看,實際目錄名稱仍然是hello
扒袖,你可以去桌面檢查一下塞茅。 -
現(xiàn)在你看到目錄里面有個
hello.sublime-project
,這跟我們的代碼文件無關(guān)僚稿,我們不希望看到它,但又不能刪除蟀伸,否則項目就沒了蚀同,怎么辦呢缅刽?請接著剛才的行后面再追加一行:"file_exclude_patterns": ["*.sublime-project"],
,保存后hello.sublime-project
立即消失蠢络,世界清凈了衰猛。但不用擔(dān)心,它只是隱藏了而已刹孔,打開
hello
目錄還能找到它啡省。到現(xiàn)在為止,我們的項目管理文件是這樣的:{ "folders": [ { "path": ".", "name": "我的第一個C++項目", "file_exclude_patterns": ["*.sublime-project"], } ] }
"file_exclude_patterns"
用于排除不想看到的文件髓霞,可想而知還會有"file_include_patterns"
用于指定想看到的文件卦睹,更多詳細信息可點擊查看文末鏈接。
4. 編譯和運行項目
編譯和運行項目算是項目管理的重頭戲了方库,這里需要用到 Sublime 的 build system结序。很多人用 Sublime 編譯和運行過單個文件,甚至能夠自己創(chuàng)建 build system纵潦,但編譯項目略有不同徐鹤。
項目可以像單文件一樣創(chuàng)建 build system 嗎?理論上可以邀层,但我們一般不這樣做返敬,因為每個項目都有自己的上下文環(huán)境,所以很難寫出一個對每個項目都適用的 build system寥院。我們傾向于在項目管理文件中為每個項目分別創(chuàng)建 build system劲赠。
編譯項目之前,我們首先在
hello
目錄下新建一個build
目錄只磷,存放編譯后的二進制文件经磅。這一步并非必要,但是為了規(guī)范化建議采用钮追。-
我們在項目的
"folders":[]
字段后加上一個"build_systems"
字段预厌,創(chuàng)建一個 build systemC++ Project
。當(dāng)前項目管理文件完整內(nèi)容如下:{ "folders": [ { "path": ".", "name": "我的第一個C++項目", "file_exclude_patterns": ["*.sublime-project"], } ], "build_systems": [ { "name": "C++ Project", "shell_cmd": "g++ hello.h hello.cpp main.cpp -o .\\build\\main.exe && .\\build\\main.exe", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "$folder" } ] }
這里需要注意的是:想要編譯 C++ 代碼元媚,你需要先安裝一款編譯器轧叽。推薦使用免費的 gcc ,搜索安裝 MinGW-win 即可刊棕。
想要了解上述每個字段的具體含義炭晒,可以參考文末鏈接。
-
現(xiàn)在甥角,你在項目的任意一個文件中按下快捷鍵
Ctrl+B
网严,都會看到我們剛剛創(chuàng)建的C++ Project
這個 build system,如下圖: -
選擇我們創(chuàng)建的
C++ Project
并回車嗤无,會看到程序編譯并正確執(zhí)行震束,運行結(jié)果自動在下方彈出:
5. 項目的進一步定制
到此為止怜庸,關(guān)于項目的基本功能已經(jīng)全部介紹了,還有以下幾點需要提示:
- 當(dāng)你需要新建另一個項目的時候垢村,一定要先
Ctrl+Shift+N
創(chuàng)建一個全新窗口割疾,否則所有拖進來的目錄都會更改當(dāng)前項目。 - 每個項目可以包含多個目錄嘉栓,但最好只有一個代碼目錄宏榕,否則你在不同目錄下運行 build 命令可能會產(chǎn)生混淆。
好了侵佃,最后一步優(yōu)化:我們不需要看到build
目錄麻昼,因為它里面都是二進制文件。我們將build
目錄加入排除目錄中:"folder_exclude_patterns": ["build"],
趣钱。時刻保持代碼目錄干凈整潔有利于提高我們的工作效率涌献。
最后,完整的項目配置文件hello.sublime-project
如下:
{
"folders":
[
{
"path": ".",
"name": "我的第一個C++項目",
"file_exclude_patterns": ["*.sublime-project"],
"folder_exclude_patterns": ["build"],
}
],
"build_systems":
[
{
"name": "C++ Project",
"shell_cmd": "g++ hello.h hello.cpp main.cpp -o .\\build\\main.exe && .\\build\\main.exe",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "$folder"
}
]
}