キー

キーボードの機能は、Eclipse で広範囲にわたってカスタマイズできます。 Eclipse では、キー・ストロークおよびキー・シーケンスは特定のコマンドを起動するために割り当てられています。

キー・ストローク、キー・シーケンス、およびキー・バインディング

「キー・ストローク」とはキーボードを押すことで、CtrlAlt (前面)、(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 は「保管」に割り当てられています。

Emacs 構成には、Emacs ユーザーによく知られているキー・バインディングのセットが含まれています。 たとえば、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 インスタンスの進行中に変更されることはありません。

キー・バインディングのカスタマイズ

マルチ・ストローク・キー・シーケンス、構成、およびスコープとともに、キー・バインディングをカスタマイズする際には多くの注意点があります。 より簡単に行うには、すべてのキー・カスタマイズを「キー」設定ページで行います。

「キー設定」ページを開くには、「ウィンドウ」>「設定」>「ワークベンチ」>「キー」を選択してください。

アクティブ構成として Emacs が、また「閉じる」コマンドが表示されている「キー設定」ページ

この例では、アクティブ構成として Emacs が選択されており、コマンド・リストから「閉じる」コマンドが選択されています。 このコマンドの情報は、現行キー・バインディングとともに右側に表示されます。

閉じる」には、標準構成で Ctrl+F4Emacs 構成で Ctrl+X Kという 2 つのキー・シーケンスが割り当てられていることに注意してください。 どちらも、グローバル・スコープで割り当てられています。 したがって、アクティブ構成が標準に設定されている場合、Ctrl+F4 が「閉じる」に割り当てられ、 Ctrl+X K は割り当てられません。 アクティブ構成が Emacs に設定されている場合、Ctrl+X K が「閉じる」に割り当てられます。 同様に、Emacs 構成は標準構成からキー・バインディングを借りているため、 Ctrl+F4Emacs 構成で他のコマンドに割り当てられていなければ、Ctrl+F4 も 「閉じる」に割り当てられます。

以下は「閉じる」に割り当てられているキー・シーケンスのリストです。 キー・バインディングを追加または除去する場所があります。 デフォルトで、スコープをグローバル として選択し、構成をユーザーのアクティブ構成となるように選択します (これをEmacs に変更した場所を再呼び出し).

キー・シーケンス Ctrl+W を入力すると、「追加」ボタンが使用可能になります。 また、キー・シーケンス Ctrl+W がすでに割り当てられているすべてのコマンド・リストが「追加」ボタンの下に表示されます。 現在、Ctrl+W にはグローバル・スコープおよび Emacs 構成で「切り取り」コマンドが割り当てられていることが分かります。 Ctrl+W を「閉じる」に割り当てるため、「追加」ボタンをクリックします。

キー・シーケンス Ctrl+W が「閉じる」コマンドに割り当てられている「キー設定」ページ

ここで Ctrl+W がキー・シーケンスのリストに追加され、「閉じる」に割り当てられます。 小さな「変更」グラフィック 「変更」を表す小さなグラフィック は、 このキー・バインディングが既存のキー・バインディングを変更したことを示しています。 新しいキー・バインディングでは、以前の割り当て (Ctrl+W が「切り取り」) が除去されています。 この変更は、新しいキー・バインディングを選択し、「除去」ボタンをクリックすることによっていつでも取り消すことができます。 これで、Ctrl+W を「切り取り」に割り当てるという以前の割り当てが自動的に復元されます。

「変更」グラフィックを含む新しい割り当てが表示されている「キー設定」ページ

切り取り」コマンドを選択することによって、変更の結果を確認できます。 小さな「マイナス」グラフィック 「マイナス」を表す小さなグラフィック は、 キー・バインディングが除去されたことを示しています。 このキー・バインディングは、ここで選択し、「復元」ボタンをクリックすることによっていつでも復元することができ、 以前のステップで追加した新しいキー・バインディングを取り消すことができます。

「切り取り」コマンドが表示されている「キー設定」ページ

多くの場合、Emacs 構成では、たとえば Ctrl+Alt+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 の割り当てと直接競合します。

これが競合です。 どちらのコマンドも適切に起動することができませんし、キー・ストロークを受け取るために 2 つのコマンドのうち 1 つを選択することもできません。 どちらのキー・バインディングも無視され、Ctrl+F4 は事実上このスコープおよび構成内で使用できなくなります。

このネーチャーの競合は、「キー設定」ページに以下のように表示されます。 赤のテキストおよびワード "[conflict]" に注意してください。

キー・シーケンス Ctrl+F4 に対する競合が表示されている「キー設定」ページ

このようなタイプの競合は、キー・シーケンスを明示的にコマンドの 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 構成のキー・バインディングの多くを完了することができません。

関連概念
Eclipse のユーザー補助フィーチャー
キー・バインディングの変更
オンライン・ヘルプ・システム

関連参照
Eclipse のフォントおよび色の設定

Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.