按鍵

在 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+空白鍵

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

自訂按鍵連結

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

按鍵喜好設定頁面,不含連結的 About 指令

在這個範例中,我們想要將 CTRL+5 連結到 About 指令。依預設,按鍵喜好設定頁面將顯示所有可能的按鍵連結。 您會看到 About 指令列在「說明」種類中。 您可以把焦點放在「連結」文字框,並按下 CTRL 和 5 來連結該指令,就像您在執行該指令一樣。

按鍵喜好設定頁面,About 指令連結到 CTRL+5

當您輸入 CTRL+5 時,會建立 About 的連結。最右邊直欄將顯示 U,以指出這是使用者連結。如果與另一個按鍵相衝突,這個直欄也會顯示 C。此連結將在預設環境定義中,亦即「在 Windows 中」。現在您可以使用 When 組合框來變更按鍵連結環境定義(例如,將這個連結移到「編輯文字」)。

如果您想要新增 About 的第二個按鍵連結,您可以使用 複製指令按鈕,為您建立另一個按鍵要連接的第二個指令項目。 如果您想要刪除連結,可使用移除連結按鈕,或直接把焦點放在「連結」文字框,並按倒退鍵

按鍵連結的動態本質

按鍵連結是由外掛程式提供,而在 Eclipse 中,您可以新增或移除外掛程式。這樣就能新增或移除由這些外掛程式所宣告的按鍵連結。Eclipse 在儲存自訂按鍵連結時,會加以補償。 以上面的範例來說,在 Default 架構中,CTRL+6 是指派給 About。假設您安裝一個新的外掛程式,將 CTRL+6 指派給特定指令。 Eclipse 將保留您對於 About 的指派。

衝突解決

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

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

這就是衝突。同時呼叫兩個指令是不正確的,您也不能只選擇其中一個指令來接收按鍵作用。我們會蹦現含有衝突的指令的「按鍵輔助對話框」,讓使用者選取其中之一。 「按鍵輔助對話框」就是為多個按鍵的按鍵連結顯示指令選項的同一個對話框。 例如,如果有 2 個指令連結到 F12,您會看到:

按鍵輔助對話框

如果使用者設定按鍵連結而產生衝突,衝突的連結將顯示在衝突清單中。 這可用於導覽各個衝突的按鍵連結,來加以變更。

按鍵喜好設定頁面衝突清單

如果要解決這類衝突,您可以將按鍵順序明確指派給其中一個指令,或從另一個指令中移除它。

另一類的衝突可能是因為按鍵順序有多重按鍵作用。例如,在 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 中的字型和色彩設定