キーボードの機能は、Eclipse で広範囲にわたってカスタマイズできます。 Eclipse では、キー・ストロークおよびキー・シーケンスは特定のコマンドを起動するために割り当てられています。
「キー・ストローク」とはキーボードを押すことで、Ctrl
、Alt (前面)
、(Macintosh では
Option
)、Shift
、 または Command
(Macintosh のみ) などの修飾キーを 1 つ以上押しながら
使う場合もあります。
たとえば、Ctrl
を押しながら A
を押すと、キー・ストロークは Ctrl+A
となります。
修飾キー自体を押してもキー・ストロークを構成することはありません。
「キー・シーケンス」とは、1 つ以上のキー・ストロークのことです。
従来より、Emacs は、2 つまたは 3 つのキー・ストローク・キー・シーケンスを特定のコマンドに割り当てていました。
たとえば、Emacs で「すべて閉じる
」に割り当てられている通常のキー・シーケンスは Ctrl+X Ctrl+C
です。
このキー・シーケンスを入力するには、キー・ストローク Ctrl+X
を押した後、キー・ストローク Ctrl+C
を押します。
Eclipse は、任意の長さのキー・シーケンスをサポートしています。
「キー・バインディング」とは、キー・シーケンスをコマンドに割り当てたものです。
「構成」とはキー・バインディングのセットです。 Eclipse には、2 つの構成があります。
標準構成にはキー・バインディングの汎用セットが含まれており、その多くが従来のキー・シーケンスとして認識され得るものです。
たとえば、Ctrl+A
は「全選択
」、Ctrl+S
は「保管
」に割り当てられています。
Ctrl+X H
は「全選択
」、Ctrl+X S
は「保管
」に割り当てられています。
Emacs 構成が「標準を拡張」したものであるという理由を理解することは重要です。
Emacs 構成は、標準構成のようにキー・バインディングの完全セットではありません。
正しくは、可能な部分については標準 構成から借りており、標準構成と異なるキー・バインディングについてのみ明示的
Emacs スタイルを定義しています。
一般に、「全選択
」、「保管
」などのようによく知られているコマンドのみが、
それらに関連した特定の Emacs キー・シーケンスを持っています。
最も役立つ構成は、「キー設定」ページの「アクティブ構成」設定を変更することによって決定することができます。 標準構成を選択した場合、すべての Emacs キー・バインディングは無視されます。 Emacs 構成を選択した場合、標準構成内の競合するすべての割り当てに対して、 明示的スタイルのキー・シーケンス割り当てが優先されます。
キー・バインディングは、Eclipse の現行コンテキストによって異なる場合があります。
キー・シーケンス割り当ての異なるセットが HTML ファイル・エディターより適切である場合、アクティブな部分が
Java ファイル・エディターであることがあります。
例として、HTML ファイル編集のようなコンテキストでは Ctrl+B
は「テキストを太字にする
」に割り当てられていますが、
Java ファイル編集のようなコンテキストでは一般的に Ctrl+B
は「ビルド
」に割り当てられています。
このコンテキストは「スコープ」と呼ばれており、アクティブな部分によって決定されます。
アクティブな部分が特定のスコープを選択しない場合、ワークベンチはアクティブな有効範囲をグローバルに設定します。
Eclipse には、3 つの異なるスコープがあります。 それらのビューは、以下のとおりです。
構成と同様に、スコープは他のスコープを拡張することができます。 たとえば、Java エディター・スコープは、グローバル・スコープからキー・バインディングを借りる代わりに、 テキスト・エディター・スコープからキー・バインディングを借ります。
キー・バインディングも、プラットフォームおよびロケールによって異なります。
Macintosh プラットフォームでは、通常の Ctrl+S
の代わりに、command+S
が
「保管
」に割り当てられています。
中国語ロケール (zh) では、通常の Ctrl+Space
の代わりに、Alt+/
が
「コンテンツ・アシスト
」に割り当てられています。
現行プラットフォームおよびロケールは Eclipse 開始時に決定され、Eclipse インスタンスの進行中に変更されることはありません。
マルチ・ストローク・キー・シーケンス、構成、およびスコープとともに、キー・バインディングをカスタマイズする際には多くの注意点があります。 より簡単に行うには、すべてのキー・カスタマイズを「キー」設定ページで行います。
「キー設定」ページを開くには、「ウィンドウ」>「設定」>「ワークベンチ」>「キー」を選択してください。
閉じる
」コマンドが選択されています。
このコマンドの情報は、現行キー・バインディングとともに右側に表示されます。
「閉じる
」には、標準構成で Ctrl+F4
、Emacs 構成で
Ctrl+X K
という 2 つのキー・シーケンスが割り当てられていることに注意してください。
どちらも、グローバル・スコープで割り当てられています。
したがって、アクティブ構成が標準に設定されている場合、Ctrl+F4
が「閉じる
」に割り当てられ、
Ctrl+X K
は割り当てられません。
アクティブ構成が Emacs に設定されている場合、Ctrl+X K
が「閉じる
」に割り当てられます。
同様に、Emacs 構成は標準構成からキー・バインディングを借りているため、
Ctrl+F4
が Emacs 構成で他のコマンドに割り当てられていなければ、Ctrl+F4
も
「閉じる
」に割り当てられます。
以下は「閉じる
」に割り当てられているキー・シーケンスのリストです。
キー・バインディングを追加または除去する場所があります。
デフォルトで、スコープをグローバル として選択し、構成をユーザーのアクティブ構成となるように選択します
(これをEmacs に変更した場所を再呼び出し).
キー・シーケンス Ctrl+W
を入力すると、「追加」ボタンが使用可能になります。
また、キー・シーケンス Ctrl+W
がすでに割り当てられているすべてのコマンド・リストが「追加」ボタンの下に表示されます。
現在、Ctrl+W
にはグローバル・スコープおよび
Emacs 構成で「切り取り
」コマンドが割り当てられていることが分かります。
Ctrl+W
を「閉じる
」に割り当てるため、「追加」ボタンをクリックします。
Ctrl+W
がキー・シーケンスのリストに追加され、「閉じる
」に割り当てられます。
小さな「変更」グラフィック Ctrl+W
が「切り取り
」) が除去されています。
この変更は、新しいキー・バインディングを選択し、「除去」ボタンをクリックすることによっていつでも取り消すことができます。
これで、Ctrl+W
を「切り取り
」に割り当てるという以前の割り当てが自動的に復元されます。
切り取り
」コマンドを選択することによって、変更の結果を確認できます。
小さな「マイナス」グラフィック
Ctrl+Alt+W
など他のキーを「切り取り
」に割り当てます。
これを上のような方法で追加すると次のようになります。
小さな「プラス」グラフィック
キー・バインディングはプラグインによって提供されていて、Eclipse でプラグインを追加または除去することができます。
このため、これらのプラグインが追加または除去されることにより、キー・バインディングが宣言されることになります。
Eclipse はこれを自動的に補正するため、カスタム・キー・バインディングを保管しています。
Emacs 構成で、Ctrl+Alt+W
が「切り取り
」に割り当てられている、上の例を考えてみましょう。
Ctrl+Alt+W
が特定のコマンドに割り当てられている新しいプラグインをインストールしたとします。
Eclipse は「切り取り
」に対するユーザー割り当てを保存しますが、キー・バインディングを
「プラス」グラフィックの代わりに小さな「変更」グラフィックで表示します。
多くのコマンドに対して割り当て可能で、簡単な共通キー・ストロークは数に限りがあります。
構成、スコープ、プラットフォーム、およびロケールがすべて、相互に競合しないドメインにキー・シーケンス割り当てを区分化することは説明しました。
スコープが存在しないとして、上の Ctrl+B
のケースを考えてみましょう。
あるプラグインで Ctrl+B
を「ビルド
」に割り当てようとしたときに、他のプラグインでも
Ctrl+B
を「テキストを太字にする
」に割り当てようとしたとします。
Eclipse はどのようにしてこの競合を解決するでしょうか?
上の機構を使用することにより競合は大幅に削減されますが、それでもやはり競合は発生します。
2 つのプラグインは互いに独立しており、同じスコープ、構成、およびロケールで同じキー・シーケンスを別のコマンドに割り当てる可能性があります。
プラグインが、グローバル・スコープおよび標準構成でコマンドの 1 つに Ctrl+F4
を割り当てたとします。
これは、同じスコープおよび構成内で Eclipse の「閉じる」コマンドに対する Ctrl+F4
の割り当てと直接競合します。
Ctrl+F4
は事実上このスコープおよび構成内で使用できなくなります。
このネーチャーの競合は、「キー設定」ページに以下のように表示されます。 赤のテキストおよびワード "[conflict]" に注意してください。
このようなタイプの競合は、キー・シーケンスを明示的にコマンドの 1 つに割り当てることによって解決できます。
もう 1 つのタイプの競合は、マルチ・キー・ストロークのキー・シーケンスによって発生する可能性があります。
たとえば、Emacs 構成では、キー・ストローク Ctrl+X
で始まる多くのマルチ・キー・ストロークの
キー・シーケンスがあります。
Ctrl+H K
は「閉じる
」に割り当てられています。
Ctrl+X H
は「全選択
」に割り当てられています。
前述のように、Emacs 構成はキー・バインディングを標準構成から借りています。
標準構成では、Ctrl+X
は「切り取り
」に割り当てられています。
Emacs 構成は明示的に Ctrl+X
を再定義しませんが、多くのキー・バインディングの一部として
Ctrl+X
を押すことが必要です。
Emacs 構成では、誰かが Ctrl+X
を押したときに、他の誰かが多くの割り当てキー・シーケンスの 1 つを入力している場合です。
このとき、「切り取り
」アクションが起動されることは予想できません。
このような競合の場合、「切り取り
」に割り当てられている Ctrl+X
キー・シーケンスは
無視される、というのがルールです。
そうでなければ、Emacs 構成のキー・バインディングの多くを完了することができません。