キー

キーボードの機能は、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 では任意の長さのキー・シーケンスがサポートされますが、 キーボード・ショートカットは、4 キー・ストロークの長さ (またはそれ以下) を推奨します。

「キー・バインディング」とは、キー・シーケンスをコマンドに割り当てたものです。

構成

「構成」とはキー・バインディングのセットです。 Eclipse には、2 つの構成があります。

デフォルト 構成には、キー・バインディングの汎用セットが含まれており、 その多くがユーザーにとって従来のキー・シーケンスとして認識できるものです。 例えば、Ctrl+A は「すべて選択」、Ctrl+S は「保管」に割り当てられています。

Emacs 構成には、Emacs ユーザーによく知られているキー・バインディングのセットが含まれています。 例えば、Ctrl+X H は「すべて選択」、Ctrl+X S は「保管」に割り当てられています。

Emacs 構成が「デフォルトを拡張」したものであるという理由を理解することは重要です。 Emacs 構成は、デフォルト 構成のような、キー・バインディングの完全セットではありません。 正しくは、可能な部分についてはデフォルト 構成から借用し、 デフォルト 構成とは異なるキー・バインディングについてのみ、明示的な Emacs スタイルのキー・バインディングを定義しています。 一般に、「すべて選択」、「保管」などのようによく知られている コマンドのみに、特定の Emacs キー・シーケンスが関連付けられています。

ユーザーは「キー設定」ページの「アクティブ構成」設定を変更することで、一番使用しやすい 構成を決定することができます。 デフォルト 構成を選択した場合は、すべての Emacs キー・バインディングは無視されます。 Emacs 構成を選択した場合には、デフォルト 構成内の競合するすべての割り当てに対して、 明示的 Emacs スタイルのキー・シーケンス割り当てが優先されます。

コンテキスト

キー・バインディングは、Eclipse の現行コンテキストによって異なる場合があります。

アクティブ・パーツが Java ファイル・エディターである可能性も時にはあります。 例えば、アクティブ・パーツが HTML ファイル・エディターである場合よりも、 別のキー・シーケンス割り当てセットの方が適する場合などです。 具体的な例として、HTML ファイル編集などのコンテキストでは Ctrl+B は「テキストを太字にする」に割り当てられますが、Java ファイル編集などのコンテキストでは Ctrl+B は一般的に 「ビルド」に割り当てられます。 このコンテキストは通常、アクティブ・パーツによって決定されますが、 アクティブなウィンドウやダイアログによっても影響されます。 アクティブ・パーツが特定のコンテキストを選択しない場合、 ワークベンチはアクティブなコンテキストをウィンドウ に設定します。

Eclipse には、7 つの異なるコンテキストがあります。 以下のとおりです。

構成とほぼ同様に、コンテキストは他のコンテキストを拡張することができます。 例えば、Java ソースの編集 コンテキストは、テキストの編集 コンテキストからキー・バインディングを借用し、同様にテキストの編集 コンテキストは、ウィンドウ ・コンテキストからキー・バインディングを借用します。

注: キー・バインディングを、キー・バインディングが拡張するコンテキストにプロモートすることは推奨しません。 例えば、テキストの編集 のキー・バインディングをダイアログまたはウィンドウ ・コンテキストに移動することは推奨しません。 これは、予期しない結果を生じる可能性があります。

キー・バインディングの一部をダイアログで機能させることは可能です。 それらのキー・バインディングは、ダイアログまたはウィンドウ ・コンテキストに割り当てられます。 そのようなキー・バインディングの 1 つの例は、「切り取り」のキー・バインディングです。 これらのキー・バインディングを変更することは可能です。 例えば、Ctrl+X をダイアログで切り取りとし、Ctrl+W をウィンドウで切り取りとすることができます。

プラットフォームおよびロケール

キー・バインディングは、プラットフォームおよびロケールによっても異なります。 Macintosh プラットフォームでは、通常の Ctrl+S の代わりに、command+S が 「保管」に割り当てられています。 中国語ロケール (zh) では、通常の Ctrl+Space の代わりに、Alt+/ が 「コンテンツ・アシスト」に割り当てられています。

現行プラットフォームおよびロケールは Eclipse 開始時に決定され、Eclipse インスタンスの進行中に変更されることはありません。

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

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

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

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

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

閉じる」には 3 つのキー・シーケンスが割り当てられていることに注意してください。 デフォルト 構成で Ctrl+F4Ctrl+W、および Emacs 構成で Ctrl+X K という 3 つです。 どちらも、ウィンドウ・コンテキストで割り当てられています。 したがって、ユーザーがアクティブ構成をデフォルト に設定すると、 Ctrl+F4Ctrl+W が「閉じる」に割り当てられ、 Ctrl+X K は割り当てられません。 ユーザーがアクティブ構成を Emacs に設定した場合は、Ctrl+X K が「 閉じる」に割り当てられます。 同様に、Emacs 構成はデフォルト 構成からキー・バインディングを借用するため、 これらのキー・バインディングが Emacs 構成で他のコマンドに割り当てられていなければ、Ctrl+F4Ctrl+W も「閉じる」に割り当てられます。 この例では、「Ctrl+W」は、Emacs キー構成で「切り取り」に結び付けられます。

以下は「閉じる」に割り当てられているキー・シーケンスのリストです。 キー・バインディングを追加または除去する場所があります。 デフォルトでは、コンテキストはウィンドウ として選択されます。

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

これで、「閉じる」に割り当てられているキー・シーケンスのリストに Ctrl+W が追加されるのが分かるでしょう。 小さな「変更」グラフィック 「変更」を表す小さなグラフィック は、このキー・バインディングが既存のキー・バインディングを変更したことを示しています。 新しいキー・バインディングでは、「閉じる」に対する Ctrl+W キー・バインディングが Emacs キー構成で機能するようにします。 「切り取り」に対するバインディングは依然として存在していますが、 ダイアログでのみ機能します (すなわち、「ダイアログまたはウィンドウ」で機能しますが、「ウィンドウ」では機能しません)。 新しいキー・バインディングを選択し、「除去」ボタンをクリックすることで、いつでもこの変更を除去することができます。 これで、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]" という語に注意してください。

このようなタイプの競合は、ユーザーがキー・シーケンスをコマンドの 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 のフォントおよび色設定

特記事項