按鍵

在 Eclipse 中,您可以廣泛自訂鍵盤的功能。Eclipse 中指定了許多按鍵作業和按鍵順序來呼叫特定的指令。

按鍵作業、按鍵順序和按鍵連結

「按鍵作業」是指按下鍵盤上的某個按鍵,同時選擇性按住一或多個下列修正鍵: CtrlAlt(在 Macintosh 上為 Option)、ShiftCommand(只有 Macintosh 才有。)比方說,先按住 Ctrl,然後按 A 的時候,就會產生按鍵作業 Ctrl+A。單獨按下修正鍵時,並不會組成按鍵作業。

「按鍵順序」是指一或多個按鍵作業。傳統上,Emacs 會指定兩個或三個按鍵作業的按鍵順序給特定的指令。例如,在 emacs 中, 指派給全部關閉的正常按鍵順序是 Ctrl+X Ctrl+C。 如果要輸入這個按鍵順序,必須按下按鍵作業 Ctrl+X,然後按下按鍵作業 Ctrl+C。 雖然 Eclipse 支援任意長度的按鍵順序,但鍵盤捷徑的長度最好不超出四鍵。

「按鍵連結」是將按鍵順序指派給指令。

架構

「架構」是指一組連結。Eclipse 包含兩種架構:

預設架構包含一組通用的連結,在許多情況下,使用者可以將它們視為傳統的按鍵順序。 例如,Ctrl+A 是指派給全選Ctrl+S 是指派給儲存

Emacs 架構包含一組 Emacs 使用者非常熟悉的按鍵連結。 例如,Ctrl+X H 是指派給全選Ctrl+X S 是指派給儲存

您必須瞭解為什麼 Emacs 架構說它「延伸預設」,這一點很重要。與預設架構不同,Emacs 架構並不是一組完整的連結。 相反地,它會盡可能借用預設架構,而且只會針對與預設架構不同的地方來定義明確的 Emacs 樣式連結。 通常,諸如全選儲存等常用的指令才會關聯於特定的 Emacs 按鍵順序。

使用者可以變更按鍵喜好設定頁面中的「架構」設定,來決定最喜歡使用的架構。如果使用者選擇預設架構,便會忽略所有 Emacs 連結。 如果使用者選擇 Emacs 架構,則明確指派的 Emacs 樣式按鍵順序會優先於預設架構中任何衝突的指派。

環境定義

按鍵連結可能會因為 Eclipse 的現行環境定義而有所不同。

有時候,例如,作用中的組件可能會是 Java 檔案編輯器,這時指派不同組的按鍵順序可能會比作用中的組件是 HTML 檔案編輯器更合適。Ctrl+B 是一項特定的範例,在 Java 檔案編輯之類的環境定義中,Ctrl+B 通常是指派給建置,而在 HTML 檔案編輯之類的環境定義中,則是指派給將文字變為粗體字。 這個環境定義通常是由作用中的組件來決定,但它也可能受到作用中的視窗或對話框的影響。 如果作用中的組件沒有選擇特定的環境定義,工作台會將作用中的環境定義設定為在視窗中

Eclipse 包含九種不同的環境定義。它們是:

環境定義與配置類似,它們可以延伸其他的環境定義。 比方說,編輯 Java 程式碼環境定義會借用編輯文字環境定義的按鍵連結,後者又會從在視窗中環境定義借用按鍵連結。

附註:不建議您將按鍵連結提升到它所延伸的環境定義。 比方說,您最好不要將編輯文字按鍵連結移到在對話框和視窗中環境定義。 這可能會有非預期的結果。

您可以讓某些按鍵連結在對話框中運作。 這些按鍵連結會指派給在對話框和視窗中環境定義。 「剪下」的按鍵連結就是這類按鍵連結的一個範例。 您可以變更這些按鍵連結。 比方說,您可以用 Ctrl+X 當成對話框的「剪下」功能,而以 Ctrl+W 作為視窗中的「剪下」功能。

平台和語言環境

在不同的平台和語言環境下,按鍵連結也會不同。在 Macintosh 平台上,Command+S 是指派給儲存,而不是常用的 Ctrl+S。在中文語言環境中 (zh),Alt+/ 是指派給內容輔助,而不是常用的 Ctrl+Space

當 Eclipse 啟動時,會決定現行的平台和語言環境,而且在 Eclipse 實例過程中並不會改變。

自訂按鍵連結

在自訂按鍵連結時,如果有多鍵的按鍵順序、架構和環境定義,則會有許多事項您須記住。 為了簡化,所有的按鍵自訂都是在「按鍵」喜好設定頁面中完成。

選取視窗 > 喜好設定 > 一般 > 按鍵來進入「按鍵」喜好設定頁面。

將 Emacs 顯示成作用中的配置,以及顯示選取「關閉」指令的按鍵喜好設定頁面

在這個範例中,我們已經選擇 Emacs 作為架構,而且已經從指令清單中選擇關閉指令。這個指令的資訊以及指令的現行按鍵連結都會顯示出來。

請注意,關閉已經指派了三個按鍵順序:預設架構中的 Ctrl+F4Ctrl+W 以及 Emacs 架構中的 Ctrl+X K。 兩者的指派環境定義都是在視窗中。 因此,如果使用者將架構設為預設,就會將 Ctrl+F4Ctrl+W 指派給關閉,而 Ctrl+X K 則不會。 不過,如果使用者將架構設定為 EmacsCtrl+X K 就會指派給關閉。同時,由於 Emacs 架構也會從預設架構借用按鍵連結,因此,Ctrl+F4Ctrl+W 也會指派給關閉,不過,這些按鍵連結必須尚未指派給 Emacs 架構中的另一個指令。 在這個範例中,"Ctrl+W" 連結於 Emacs 架構中的剪下

以下是指派給關閉的按鍵順序清單,還有一個地方可以新增或移除按鍵連結。依預設,它選取的環境定義是在視窗中

輸入按鍵順序 Ctrl+W,就會啟用「新增」按鈕。同時,指定按鍵順序 Ctrl+W 的所有指令的清單會顯示在「新增」按鈕下面。這時可以看到 Ctrl+W 目前是在在視窗和對話框中的環境定義中指派給剪下指令。 按一下「新增」指令來將 Ctrl+W 指派給關閉

按鍵連結的動態本質

按鍵連結是由外掛程式提供,而在 Eclipse 中,您可以新增或移除外掛程式。這樣就能新增或移除由這些外掛程式所宣告的按鍵連結。Eclipse 在儲存自訂按鍵連結時, 可以補償這個問題。比方說,在上面的範例中,在 Emacs 架構中,Ctrl+Alt+W 是指派給剪下。假設使用者安裝一個新的外掛程式,將 Ctrl+Alt+W 指定至特定指令。Eclipse 會將使用者的指派保留給剪下

衝突解決

只有少數簡單、常用的按鍵作業可以指派給多個指令。許多架構、環境定義、平台和語言環境的所有分割鍵順序在指派到網域中時, 並沒有彼此衝突。如果環境定義不存在,請考量上述 Ctrl+B 的情況。 有一個外掛程式將 Ctrl+B 指派給建置,則其他的外掛程式會將Ctrl+B 指派給將文字變為粗體字。那麼 Eclipse 將如何正確地解決這個衝突呢?

雖然可藉由上述的機制來大量減少衝突,但衝突仍然可能發生。兩個相對獨立的外掛程式可以將相同按鍵順序指派給含相同環境定義、架構、平台和語言環境的不同指令。 試想如果外掛程式於在視窗中環境定義和預設架構中,將 Ctrl+F4 指派給它的其中一個指令。 這會與將 Ctrl+F4 指派給相同環境定義和架構中之關閉指令的 Eclipse 造成直接衝突。

這就是衝突。同時呼叫兩個指令是不正確的,您也不能只選擇其中一個指令來接收按鍵作業。唯一能做的,就是忽略這兩個按鍵連結,使 Ctrl+F4 在這個環境定義和架構中實際上沒有作用。

如果要解決這類衝突,使用者可以將按鍵順序明確指派給其中一個指令。

另一類的衝突可能是因為按鍵順序有多重按鍵作業。 例如,在 Emacs 架構中,有許多多重按鍵作業的按鍵順序是以Ctrl+X 的按鍵作業作為開頭。Ctrl+H K 是指派給關閉Ctrl+X H 是指派給全選

如前所述,Emacs 架構會從預設架構借用按鍵連結。在預設架構中,Ctrl+X 是指派給剪下。雖然 Emacs 架構沒有明確重新定義 Ctrl+X, 但是它的許多按鍵連結都需要按下 Ctrl+X。在 Emacs 架構中,按下 Ctrl+X 時,就等於要進入其中一個可能已經指定的按鍵順序。但我們並不希望在這時候呼叫剪下動作。

對於這類衝突,其規則是忽略已指派給剪下Ctrl+X。否則,就無法完成Emacs 配置中的許多按鍵連結。

相關概念
在 Eclipse 中的協助工具特性
變更按鍵連結
線上說明系統

相關參照
Eclipse 中的字型和色彩設定