(15) コマンドをキーボードショートカットへ割り当てる方法
この記事は、Sara Ford's WebLogのDid you know… How to bind keyboard shortcuts to commandsを、著者ご本人に承諾をいただいて翻訳したものです。
元記事及び翻訳記事のすべての著作権はSara Ford氏にあります。
ビジュアルスタジオのシェル(の守備範囲)は広大です。
一年前に現在のチームに参加する前、私は毎日Visual J++を使っていましたが、その頃に知っているべきでした。今この手の情報を書く時、私はこんな情報とこつのリストがあったらあのJ++の日々はどうだったろうかと思いを馳せ、あの頃にこういうことがわかっていればなあと思います。
そんなふうに思う事柄のひとつに、キーボード割り当てがあります。たぶん私は、ビジュアルスタジオに用意されている機能にきちんと注目していなかったんでしょう。きっとコマンドの再割り当てをそんなに必要としていなかったので、見つけられなかったんだと思います。
まあともかく、その方法はここにあり、皆さんはそれを知ることができるわけです。
- メニューから[ツール]-[オプション]を選択し、表示された「オプション」ダイアログのツリービューから[環境]-[キーボード]を選択してください。
- 「以下の文字列を含むコマンドを表示」欄のリストボックスからコマンドを選択するか、またはその上にあるエディットボックスにコマンド名をタイプしてください。
- 「ショートカットキー」欄にフォーカスを置いて、現在選択されているコマンドに割り当てるキーボードショートカットを実際に押してください。
- [割り当て]ボタンを押してください。
割り当てるショートカットには有効範囲があることにも注意してください。「使用する場所」コンボボックスには通常「全体」が表示されています。これはこれから割り当てるショートカットの現在の有効範囲を示しています。
例えば、あるキーボードショートカットを「テキストエディタ」の有効範囲で割り当てると、そのショートカットはテキストエディタにフォーカスがある場合にのみ動作します。この場合、ツールウィンドウにフォーカスがある状態でそのショートカットを使おうとすると、全体を有効範囲とした同じショートカットが割り当てられた別のコマンドが実行されることになります。
このダイアログでは、ビジュアルスタジオを学ぶ別の“おもしろい”方法として、利用可能なコマンドのリストを調べることもできます。
例えば、「編集.1行(Edit.Line)」とタイプすると、「編集.1行(Edit.Line)」を含むすべてのコマンドを見ることができます。
「編集.行の置換(Edit.LineTranspose)」と呼ばれているコマンドに Shift+Alt+T が割り当てられていることを発見することもできます。
行置換を行う必要に迫られた場合に、このようにしてキーボードショートカットを調べることができるわけです。
逆もまた同様に、Ctrl-<文字>が割り当てられているコマンドを知りたいなら、単純に「ショートカットキー」エディットボックスにフォーカスを当てて、後はあなたの心のおもむくままに。
では、コード編集を楽しんでください!
さるべーじ追記
上記手順の2.で直接入力できるコマンドは、日本語名(cmd.LocalizedName)である必要があります。英語版の元の名称(cmd.Name)ではヒットしません。
Add-InやIDEマクロではcmd.Nameでも動作するんですが…。
「Edit.Line」でコマンドを抽出すると、その結果に「Edit.LineTranspose」は含まれますが、日本語名では「編集.1行」での抽出結果には「編集.行の置換」は含まれません。
訳文ではあえて引用されたコマンドをそのまま直訳していますが、原文が意図した効果は、「編集.行」で抽出して「編集.行の置換」にフォーカスを当ててみた方が実感できます。