Eclipse中隱藏的5個(gè)有用的功能

2013-11-04 08:30:38來(lái)源:oschina作者:

Eclipse就是一頭野獸。它也是一套設(shè)備,神秘但更具威力。有些人稱它為一個(gè)持續(xù)變形機(jī)。另一些人則稱它是一個(gè)變異體。不錯(cuò),它很龐大,需要花費(fèi)多年才能掌握。而在你好不容易掌握之后,你的老板出現(xiàn)了然后告訴你: 現(xiàn)

Eclipse就是一頭野獸。它也是一套設(shè)備,神秘但更具威力。有些人稱它為一個(gè)持續(xù)變形機(jī)。另一些人則稱它是一個(gè)變異體。不錯(cuò),它很龐大,需要花費(fèi)多年才能掌握。而在你好不容易掌握之后,你的老板出現(xiàn)了然后告訴你: 現(xiàn)在我們要用NetBeans了。

開玩笑了。沒(méi)有人會(huì)去用NetBeans,除了Adam Bien。好了,下面讓我們看看5個(gè)非常有用的、被隱藏了的Eclipse特性。

1: 我最愛(ài)的特性:收藏夾

每個(gè)人都會(huì)使用到一些靜態(tài)方法類庫(kù)。從Java 5之后,我們可以靜態(tài)進(jìn)入它們,所以我們不再需要像下面這樣寫代碼

SomeVeryImportantUtility.split(string1, string2);

但是,誰(shuí)又會(huì)愿意在每一個(gè)類中去把所有那些方法都手動(dòng)的進(jìn)行靜態(tài)進(jìn)入呢? 沒(méi)有人。因?yàn)槟憧梢栽谶x項(xiàng)中定義你的收藏類型和收藏成員:

Preferences > Favorites

然后,你只需要敲入開頭的字母并使用自動(dòng)補(bǔ)全功能:

自動(dòng)補(bǔ)全

自動(dòng)補(bǔ)全功能也可以進(jìn)行必要的靜態(tài)引入。比方說(shuō)在使用DSL的諸多功能時(shí),這就非常有用。很明顯,你需要謹(jǐn)慎決斷,哪些是你真正最常用到的類庫(kù),以及哪些是這些類庫(kù)中你最常用到的類。如果你是jOOQ blog(或是其聯(lián)盟的一員)的用戶,我可以給你一個(gè)提示。即永遠(yuǎn)把org.jooq.impl.DSL納入收藏。

2: 令人驚嘆的塊選擇模式

我最近在該博文中記錄過(guò)這一點(diǎn)。該功能真是棒極了,文章中多次提及它的優(yōu)點(diǎn)。

\

代碼塊選擇

注意高亮顯示的按鈕,從昨天數(shù)第6個(gè)。這就是令人驚嘆的“塊選擇模式” (Windows中的快捷鍵是Alt-Shift-A,或者使用Ctrl+3然后敲入選擇塊)。 它能讓你在開闊的范圍內(nèi)在選定行的相同位置上進(jìn)行錄入。當(dāng)你不得不編輯大量幾乎相同的行時(shí),這非常有用。

3:  EGit工作臺(tái)視圖

顯然,并非所有的EGit用戶知道的這一視圖。事實(shí)上,我認(rèn)為,這就是為什么我不使用shell命令的最重要的原因。看看這個(gè)完美的東西(beauty美人):

工作臺(tái)視圖
 

好吧,不是一個(gè)真正的美人。這讓我想起了這本 Eric Burke的漫畫節(jié)選。但我們仿佛在虛空轉(zhuǎn)換之地(transmogrifier land),這個(gè)工作臺(tái)視圖充滿變化,一旦你從一個(gè)repository同步它的源,這個(gè)視圖將等待變更被added / committed / pushed。我現(xiàn)在可以在每行的基礎(chǔ)上決定,將哪個(gè)變化添加到索引中(注意,我沒(méi)有添加主要方法)。這導(dǎo)致有staged(添加)的unstaged(未添加)的變更。在EGit中,我現(xiàn)在可以在一次操作中直接提交,提交+推送,修改+提交,修改+提交+推送。也可以嘗試在命令行這樣做。

現(xiàn)在這次提交后,我又能在一個(gè)單獨(dú)的提交中stage/add主要方法。 我猜,在背后,這可能是通過(guò)運(yùn)用存儲(chǔ)或某種其他的本地緩存來(lái)實(shí)現(xiàn)的。 我不在乎怎樣 , 這是漂亮的 !

 

4:類型過(guò)濾器

對(duì)的,這是因?yàn)镋clipse的盒外自動(dòng)補(bǔ)全毫無(wú)價(jià)值。是的,事實(shí)就是這樣的。沒(méi)有人會(huì)真正在API內(nèi)部去調(diào)用callhashCode(), wait()或者notifyAll()。并且,事實(shí)上,現(xiàn)在幾乎沒(méi)有人愿意對(duì)一個(gè)鎖對(duì)象去調(diào)用wait()或者notify(),除非他們?cè)趯慗DK的并發(fā)庫(kù)。但是慶幸的是,有人為我們免費(fèi)實(shí)現(xiàn)了, 他們應(yīng)該是使用VI,emacs或者一個(gè)16進(jìn)制編輯器,因此他們不用考慮對(duì)象方法。 

于是,為什么我的自動(dòng)補(bǔ)全彈出框是一些沒(méi)有意義的內(nèi)容?好吧,讓我們創(chuàng)建一個(gè)類先。。。 

選項(xiàng)真心多。渴遣皇? 

哇哦。我本以為我只有一個(gè)方法?我不考慮equals(),盡管我實(shí)際上很少輸入equals(),我可以正確輸出它。以此,我準(zhǔn)備把它從那一堆中挪走: 

Preferences > Type filters 

此外,感謝Eclipse對(duì)at的提及。我希望存在一個(gè)選項(xiàng)從JDK,從我們的集合內(nèi)存中完全移除awt。但是,至少,因?yàn)樘砑恿薬wt到類型選擇器里,這讓你免去了選擇是該導(dǎo)入java.util.List(99.9%) 還是java.awt.List(8.3%)。舍入誤差的發(fā)生決定于你之前不小心錯(cuò)誤選擇集合的次數(shù),有時(shí),你會(huì)懷疑為什么不能直接分配一個(gè)數(shù)組集合。在此感謝awt。此外,你必須關(guān)注你多變的WIN8是如何在截屏的時(shí)候改變窗口的顏色的。好了,現(xiàn)在下一步是什么呢?總之先回到Eclipse,讓我們?cè)诖嗽囅伦詣?dòng)補(bǔ)全。。。 

5: 格式化標(biāo)簽

在花了這么多時(shí)間選擇代碼塊,謹(jǐn)慎的格式化SQL語(yǔ)句——往往是不會(huì)操作的人或者不沒(méi)按照樣式說(shuō)明操作的,再或使用自動(dòng)格式化的時(shí)候把之前美觀的那些全部代碼都格式化到一行了。而且還持續(xù)不到很久。使用簡(jiǎn)單易拼的格式化標(biāo)簽來(lái)“保護(hù)”代碼:

首選在> 格式化選項(xiàng) > 打開/關(guān)閉標(biāo)簽

由于在這過(guò)程中可能會(huì)多次輸入標(biāo)簽,記得使用些簡(jiǎn)明的東西“保護(hù)”下自己精心寫出來(lái)的那些SQL語(yǔ)句:

這樣(代碼,SQL語(yǔ)句)就被保護(hù)起來(lái)了

除非是不熟悉操作的人忘記或者沒(méi)按照樣式說(shuō)明操作而沒(méi)有保存格式化設(shè)置,或者還有一類是拿Netbeans玩一下而沒(méi)真正使用的的情況,否則是不會(huì)再有人能接觸到那些代碼了。 

同樣,這些標(biāo)簽也適合很難格式化的DSLs。

另外還有一些快捷鍵供大家參考:
alt+/ 提示
ctrl+/ 注釋
ctrl+d 刪除行
alt+up|down 上、下移動(dòng)
ctrl+alt+down 復(fù)制當(dāng)前行
shift+alt+s,r|v getter、setter或者重寫方法
ctrl+. 跳動(dòng)需要處理的代碼處,如果跳到錯(cuò)誤代碼處,警告代碼處
ctrl+1 給出操作提示,如:寫serializeId,異常捕獲等
ctrl+m 當(dāng)前窗體最大化,最小化
ctrl+t 給出函數(shù)實(shí)現(xiàn)類,如:接口彈出實(shí)現(xiàn)方法,方法彈出繼承重寫方法
ctrl+shift+f 格式化

關(guān)鍵詞:Eclipse

贊助商鏈接: