(1) Visual StudioコマンドをCtrl+Dウィンドウから実行させる方法
この記事は、Sara Ford's WebLogのDid you know… Use the Ctrl+D window to run Visual Studio commandsを、著者ご本人に承諾をいただいて翻訳したものです。
元記事及び翻訳記事のすべての著作権はSara Ford氏にあります。
標準ツールバーにある検索コンボボックス(通称「Ctrl+Dウィンドウ」)を使ってVisual Studioコマンドを実行することができます。これはVisual Studio .NET 2003とVisual Studio 2005のどちらでも可能です。
使い方は、
- Visual Studio上のどこでも構いませんので、Ctrl+Dを押してください。
注:検索ウィンドウへフォーカスを移動させるVisual Studioコマンドは「Edit.GoToFindCombo」です。もしあなたがCtrl+Dを他のコマンドに割り当てているといけないので、念のため。 - 検索コンボボックス上で「>」を押してください。
- 「>」に続いてVisual Studioコマンドを入力してEnterを押すと、…例えば、「>File.NewFile」であれば「新しいファイル」ダイアログが表示されます。
では、コード編集を楽しんでください!
さるべーじ追記
この後、Charles Srisuwananukornさんより
Ctrl+/なら検索ウィンドウへフォーカスが行き、さらに「>」まで自動的に表示されるコマンド「Tools.GoToCommandLine」が実行できるよ。
とのコメントがあり、Sara Fordさんは「そっちを言うのを忘れてたー」と返していました(^^;)。
さるべーじ追記2
「Visual Studioコマンド」について耳慣れない方は。
~.NET 2003までならmsdnの「Visual Studio コマンド」を、
2005ならmsdn2の「Visual Studio のコマンドおよびスイッチ」を参照してください。
独自のショートカットキーを割り当てたことがある方ならお分かりのことと思いますが、メニューから[ツール]-[オプション]で表示される「オプション」ダイアログで[環境]-[キーボード]と選択した時に表示される「以下の文字列を含むコマンドを表示」テキストボックスの下のリストボックスに一覧表示されるコマンド群のことです。
日本語版Visual Studioではコマンドは日本語で表示されています。
例えば、上記の「File.NewFile」は「ファイル.新しいファイル」、「Tools.GoToCommandLine」は「ツール.コマンドラインに移動」となります。
試しに検索コンボボックスで「>ファイル.新しいファイル」と入力してみると、それでも「新しいファイル」ダイアログが表示されました。日本語コマンドでも同様に効きます。
ちょっとつらいのは、
- コマンドの一覧が情報提供されていない。
- オプションダイアログではリストボックスが小さすぎてとても眺めにくい。
- またコピーできないのでテキストファイルにして手元に置くこともできない。
日本語コマンドで表示されるので、元のコマンド名がわからない。
日本語では入力しにくいし、洋書等で言及されている場合に突合せができない。海外サイトを検索する際にも不便。
ので、Visual Studioコマンドの一覧テキストファイルを吐き出すコードを作ってみました。
- VS IDEのメニューから[ツール]-[マクロ]-[マクロIDE...]で「Microsoft Visual Studio Macros」を開き、
- プロジェクトエクスプローラで「MyMacros」を選択し、
- マクロIDEのメニューから[ファイル]-[新しい項目の追加]で「新しい項目の追加」ダイアログを表示させ、
- [テンプレート]で「モジュール」を選択、[ファイル名]に「modMacroSal」と入力して[開く]をクリックし、
- プロジェクトエクスプローラから今作成したモジュールをダブルクリックしてコードウィンドウを開いたら、以下のコードを貼り付けます。
Imports EnvDTE
Imports System.Diagnostics
Imports System.IO
Public Module modMacroSal
Sub OutputCommandList()
'Commands
Dim cmds As Commands = DTE.Commands
Dim i As Integer = 0
Dim j As Integer = 0
Dim strOut As String = ""
Dim strBind As String = ""
Dim fw As StreamWriter
Try
fw = New StreamWriter("C:\VSCommands.txt", True)
For Each cmd As Command In cmds
i += 1
If cmd.Name <> "" And cmd.LocalizedName <> "" Then
j += 1
strOut = "(" & CStr(i) & "," & CStr(j) & ")[" _
& cmd.Name & "] - [" & cmd.LocalizedName & "]"
strBind = ""
For k As Integer = 0 To cmd.Bindings.getlength(0) - 1
strBind &= "[" & cmd.Bindings(k) & "]"
Next
If strBind <> "" Then strOut &= " (" & strBind & ")"
fw.WriteLine(strOut)
End If
Next
Finally
fw.Close()
End Try
End Sub
End Module
ここまでできたらVS IDEへ戻り、マクロエクスプローラを表示させてみましょう。
マクロエクスプローラはAlt+F8、またはメニューから[ツール]-[マクロ]-[マクロエクスプローラ]で表示できます。
で、マクロエクスプローラの中の[MyMacros]-[modMacroSal]と順にクリックし、表示された「OutputCommandList」をダブルクリックすれば、今作成したマクロが実行されます。
あとは数十秒(けっこぅかかるんです)待つだけで、CドライブのルートにVSCommands.txtができあがります。
コマンド名(.Name)・日本語コマンド名(.LocalizedName)の両方を出力しますので、対比表にもなっています。
出力フォーマットは私の好みですので、CSV出力してExcelで読みたい方や、xml文書にして利用したい方は、「strOut = 」の行を適当に編集してください。
--------------------------------------------------------------------------------
さるべーじ追記3
VS2005β2では、検索コンボボックスはデフォルトではツールバーに含まれなくなってしまいました。
VSコマンドとしては「Edit.GoToFindCombo / 編集.検索コンボボックス」として健在ですので、メニューから[ツール]-[ユーザー設定]で、任意または新規のツールバーに追加することは可能です。
またCtrl+Dも、デフォルトでは「既存項目の追加」に割り当たってしまっていますので、必要であればショートカットキーを割り当て直してください。