版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
http://birdnest.blogbus.com/logs/2626856.html
今天心情好,再加多一篇:
讀過(guò)復(fù)雜代碼的人都有這種體會(huì):如果能夠把一個(gè)函數(shù)或者一個(gè)文件里面已經(jīng)看過(guò)的,或者不重要的部分隱藏起來(lái),這樣整個(gè)函數(shù)(文件)的結(jié)構(gòu)就會(huì)看得更清晰,讀起來(lái)也就更加容易。
SourceInsight號(hào)稱代碼查看之王,卻沒(méi)有這個(gè)功能,UE也是從11版以后才提供的。不過(guò)SE不僅有這個(gè)功能而且非常之強(qiáng)大,UE的那些在它面前只能算小兒科了。
1. 隱藏某個(gè)大括號(hào)內(nèi)的內(nèi)容
這個(gè)UE是有的,SE中的操作為:將光標(biāo)放到所需隱藏的大括號(hào)內(nèi)的任意位置,然后選擇菜單View-> Hide Code Block即可。
2. 隱藏選中的某個(gè)區(qū)域
這個(gè)UE也是有的,SE中的操作為:先選取一塊區(qū)域,然后選擇菜單View-> Hide Selection
3. 隱藏注釋內(nèi)容
良好的注釋雖然好,不過(guò)有時(shí)候太多的注釋也會(huì)影響查看,讓我們把它藏起來(lái)先。
UE也有這個(gè),不過(guò)它的這個(gè)功能和它隱藏大括號(hào)是很類似的,那就是只能隱藏/*….*/的多行注釋,對(duì)于連續(xù)的//單行注釋就不成了,呵呵
SE就可以Handle這個(gè)啦,對(duì)于不論哪種方式的注釋,都可以采用隱藏大括號(hào)的方法來(lái)隱藏,而且更加強(qiáng)悍的是,它可以一次性隱藏所有注釋而不影響其他的查看,這個(gè)UE就只能流口水啦,呵呵
隱藏所有注釋的方法:選擇菜單View-> Hide All Comment
4. 函數(shù)頭顯示
如何輕松快速的在文件里面找到所需要的函數(shù)呢,當(dāng)然是把所有的函數(shù)頭列在那里讓你挑啦。UE里面只能用“全部折疊”來(lái)勉強(qiáng)實(shí)現(xiàn),但是還有很有多#define,全局變量,//的注釋等等殘留在那里,實(shí)在是。。。。。。
SE的函數(shù)頭顯示功能這時(shí)可就大派用場(chǎng)了,選擇菜單View-> Function Heading,看看,
除了函數(shù)頭以外,什么都沒(méi)有了,干干凈凈,所有的函數(shù)實(shí)在是一目了然啊。
5. 有選擇的顯示
最后再來(lái)說(shuō)說(shuō)SE獨(dú)一無(wú)二的也是最強(qiáng)大的功能Selective Display,定制顯示內(nèi)容。呵呵,看名字是不是就覺(jué)得很強(qiáng)呢?
選擇菜單View-> Selective Display出現(xiàn)如下界面

這里列出了6種可選擇的顯示方式,我們一種種來(lái):
Ⅰ. Search Text
只顯示(或者隱藏)符合搜索內(nèi)容的行。這個(gè)強(qiáng)啊,可以讓我們用最快的速度找到我們所需要的東西所在的行。
下面的輸入框可以輸入要搜索的內(nèi)容,下面還有幾個(gè)復(fù)選框,左邊3個(gè)是一般搜索常見(jiàn)的大小寫(xiě)吻合,整個(gè)詞吻合,使用正則表達(dá)式。
右邊第一個(gè)”Reset selective display”則是在這次搜索前先清除以前所隱藏的東西,恢復(fù)到完全顯示狀態(tài)再執(zhí)行搜索操作。否則可以在上次的基礎(chǔ)上再次隱藏新的內(nèi)容。
第二個(gè)則是決定隱藏搜索到的行,抑或只顯示搜索到的行。
Ⅱ. Function definitions

只顯示所有的函數(shù)頭(定義),這里和我們前面說(shuō)的Function Heading類似,不過(guò)在這里可以追加顯示每個(gè)函數(shù)上面的注釋內(nèi)容。使用了這個(gè),我們的.c文件也可以變成.h文件了,^_^
下面有2個(gè)復(fù)選框,
“Show comments” 顯示完整的函數(shù)頭注釋
“Collapse comments” 注釋只顯示第一行,想看完整的可自行點(diǎn)擊展開(kāi)
Ⅲ. Preproessor directives
這個(gè)超贊啊!!!!!!根據(jù)你的預(yù)定義,只顯示編譯器能看到的部分。也就是說(shuō)當(dāng)你有很多功能模塊分別都用#ifdef FEATURE_XXXX框起來(lái)的話,如果其中某個(gè)FEATURE沒(méi)有被預(yù)定義的話,它將不會(huì)被顯示出來(lái)!!!!!用這個(gè)看那種預(yù)定義功能超多的操作系統(tǒng)代碼,或者多模塊的復(fù)雜代碼實(shí)在是太方便了,我以前看代碼就最煩里面N多多#ifdef XXXX的了,也不知道哪段代碼才是真正有用了,有了這個(gè),終于可以解放了啊,hoho。
在下面的輸入框中,可以輸入你要隱藏的預(yù)定義的內(nèi)容,可以包含多個(gè),如果你不記得定義的名字了,還可以用”Scan for Defines” 按鈕來(lái)幫你搜索(作者實(shí)在太體貼啦)。
如果不指定的話,所有在#ifdef …#endif 中的內(nèi)容都將被隱藏。
Ⅳ. Multi-level

這個(gè)則是按照嵌套層次進(jìn)行隱藏,有2種選擇Brace(大括號(hào))和Indentation(縮進(jìn))。
選擇大括號(hào)則是關(guān)閉所有的大括號(hào),就跟UE的全部關(guān)閉類似,
縮進(jìn)則是關(guān)閉所有的縮進(jìn),呵呵,這次連單行的if..else..語(yǔ)句的內(nèi)容也可以隱藏了。
Limit levels可以指定關(guān)閉深度,當(dāng)你的嵌套很深時(shí),你如果要打開(kāi)就得點(diǎn)很多次了,這里就可以指定一個(gè)深度,超過(guò)這個(gè)深度的就作為一個(gè)整體不會(huì)再被關(guān)閉了。
Ⅳ.Ⅴ 后面2個(gè)比較簡(jiǎn)單,就不仔細(xì)介紹了
Pragraphs:只顯示所有段落的第一行
Hide Selection:和剛才最前面講過(guò)的隱藏選區(qū)是一樣的。
最后,下面3個(gè)單選框是用來(lái)指定你進(jìn)行展開(kāi)一個(gè)多重嵌套時(shí)的操作的
Expand:展開(kāi)時(shí)自動(dòng)展開(kāi)所有的子項(xiàng)
Collapse:只展開(kāi)下層中的第一層
Remember:恢復(fù)到關(guān)閉前的狀態(tài)
看到這里,你對(duì)SE的強(qiáng)大是否又有了新的了解了呢,是否激起你更換編輯器的沖動(dòng)了呢,呵呵,不要猶豫,趕快也去整一個(gè)來(lái)試用試用吧,你一定會(huì)愛(ài)上它的。