嵌入式 Linux 軟件開發(fā)的時(shí)候,經(jīng)常會(huì)閱讀大型工程源碼,比如 uboot 源代碼,Linux Kernel 源碼等。
所以,選擇一個(gè)合適的工具來閱讀源代碼,變?yōu)榱艘粋€(gè)經(jīng)久不衰的話題。 閱讀源碼的時(shí)候,其實(shí)無非也就兩個(gè)重要的功能:
① 定義或者聲明快速跳轉(zhuǎn)
② 快速搜索指定內(nèi)容
另外還有一些功能是和開發(fā)體驗(yàn)相關(guān)的,比如:
① 工具的主題(亮色和暗色)
② 工具是否方便修改編輯內(nèi)容
③ 工具是否還提供其它的方便功能
目前常用的就是 Source Insight 和 VS Code,下面就來按照上述需求進(jìn)行對(duì)比,看看哪個(gè)更適合?
創(chuàng)建代碼工程
Source Insight 在閱讀工程代碼時(shí),可以通過創(chuàng)建 Source Insight 工程來選擇哪些文件加入,哪些文件不加入。
對(duì)于 uboot 這種包含有大量板級(jí)文件夾的工程,加入之后其中的文件只和目前移植的這款處理器有關(guān),這個(gè)功能是非常有優(yōu)勢(shì)的,也是眾多工程師喜愛 Source Insight 的原因。
相比之下,VS Code并不提供這種選擇加入的功能,VS Code 非常粗暴,文件夾就是工作區(qū),只需要打開源碼文件夾,所有文件全部加入:
相比之下,我覺得 Source Insight 勝出,VS Code 這種將所有文件一股腦全部加入的方式,在查找文件時(shí)非常麻煩。
文件架構(gòu)
在 Source Insight 中,打開一個(gè)文件的時(shí)候,會(huì)列出當(dāng)前文件中所有預(yù)處理、宏定義、變量、函數(shù)的架構(gòu),如圖:
在 VS Code 中打開文件時(shí)也有同樣的功能,但又是一股腦的按照順序?qū)⑺泻瘮?shù)聲明和定義列出,實(shí)際查看時(shí)也沒有什么太多作用:
在文件整體架構(gòu)方面,Source Insight 勝出,VS Code 對(duì)于代碼架構(gòu)方面的顯示,還需要再優(yōu)化。
定義跳轉(zhuǎn)功能
在 Source Insight 中,可以右鍵跳轉(zhuǎn)函數(shù)聲明或者直接按住 Ctrl 點(diǎn)擊函數(shù)名稱,如果定義有重復(fù)會(huì)先提示,供你選擇,如圖:
在 VScode 中,首先需要安裝 C/C++擴(kuò)展,然后才支持定義跳轉(zhuǎn),可以按住 Ctrl 鍵點(diǎn)擊或者右鍵跳轉(zhuǎn):
如果有重復(fù)也會(huì)出現(xiàn)提示,選擇需要查看哪個(gè)定義。 在定義跳轉(zhuǎn)功能上,兩者持平,功能基本都?jí)蛴谩?/p>
全局搜索指定內(nèi)容
在 Source Insight 中,提供的搜索功能如下:
在 VS Code 中也提供了全局搜索的功能,但是由于它將所有文件都包含進(jìn)來了,無用的搜索結(jié)果比較多:
所以,在搜索功能上,由于 Source Insight 先天性的優(yōu)勢(shì),本輪勝出。
主題設(shè)置
閱讀源碼需要很長時(shí)間,所以提供一個(gè)舒服的主題也是很重要的。 Source Insight 提供的主題有:
VScode 提供的主題就非常棒了:
Source Insight 提供的這些主題我覺得還行,但換出來感覺效果都比較怪,沒有那么舒服,相比之下 VS Code 的主題做的就比較好,無論亮色還是暗色看著都很舒服,對(duì)于我個(gè)人而言,本輪 VS Code 勝出。
其他功能
Source 除了我上述說的主要功能之外,還有非常多的功能,但我都沒怎么用過。 此處,我必須要說一下 VS Code,因?yàn)?Uboot 源碼需要在 linux 上編譯,但是我日常使用的系統(tǒng)是 Windows,所以我一般將 VSCode 安裝在 Windows 上,使用 VS Code 提供的遠(yuǎn)程 SSH 功能,去連接遠(yuǎn)程 Linux 主機(jī),它會(huì)將遠(yuǎn)程主機(jī)上的目錄直接作為工作區(qū),另外還提供了集成終端,修改后直接在終端中編譯即可,如圖:
另外,VSCode 內(nèi)部集成了 git 可視化功能,可以方便的使用 git 管理代碼。 相比之外,Source Insight 在修改文件之后,還需要把修改的文件上傳到 Linux 服務(wù)器去編譯,過程有點(diǎn)繁瑣。 所以,在額外功能的擴(kuò)展性上,我覺得 VScode 勝出。
總結(jié)
經(jīng)過上述比較,我來說說我的體驗(yàn)和看法:Source Insight 就像是一個(gè)老大哥,基本功很扎實(shí),比如源碼查看,文件架構(gòu)列表這些,很方便實(shí)用,在閱讀代碼的時(shí)候非常方便,但在開發(fā)時(shí)相對(duì)不太方便。對(duì)于它的文件選擇加入功能,其實(shí)我是不太喜歡的,這么龐大的源碼工程,既然我知道哪些文件有用,哪些文件沒用,那我還看啥呢?所以對(duì)初學(xué)者不太友好。而 VS Code 呢,就是一個(gè)年輕小伙,后起之秀,比如主題隨便換,可以遠(yuǎn)程連接 Linux 主機(jī)進(jìn)行開發(fā),Git 可視化擴(kuò)展等等,各種炫酷功能,但是基本功太不扎實(shí),在閱讀源碼時(shí)的基礎(chǔ)功能沒做好,但是在開發(fā)時(shí)非常順手。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305299 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209537
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論