0

保留中の変更ビューのファイルをソース管理の最新バージョンと比較するマクロがあります。

手順:最初にファイルを選択し、次にマクロを実行すると、これは正常に機能します。このマクロを実行するために、いくつかのキーボードショートカットを割り当ててみました。

Ctrl+Q,C
Ctrl+Q,Ctrl+Q
Ctrl+Q,Ctrl+C
Ctrl+T,Ctrl+Q
Ctrl+T,Ctrl+C
Ctrl+Shift+\

[ツール]->[オプション]->[環境]->[キーボード]ですべてを割り当てることができましたが、他の目的には使用されませんでした(「現在使用されているショートカット」に記載されています)。ただし、何らかの理由でCtrl + Q、Ctrl+CおよびCtrl+T、Ctrl+Cが機能しません。他はうまくいきます。

では、なぜCtrl + Q、Ctrl+CまたはCtrl+T、Ctrl + Cが機能しないのですか?マクロショートカットの2番目の部分としてCtrl+Cを使用する代わりに、[保留中の変更]ビューで選択したファイルをコピーしようとしますか?

編集:

さて、まず第一に、これはマクロコードです:

Sub CompareMacro()
    DTE.ExecuteCommand("TeamFoundationContextMenus.SourceControlPendingChangesSourceFiles.Compare.TfsContextPendingCheckinsCompareWithLatestVersion")
End Sub

私はそれをもう少しテストしました、そしてこれは私が見つけたものです:

  • 「保留中の変更」ビューにフォーカスがあり、「ソースファイル」リストの項目が選択されている場合(このマクロが機能するために必要であるため)、ウィンドウはCtrl + Cの組み合わせを受け入れず、ステータスバーは表示され続けます'(Ctrl + Q)が押されました。コードの2番目のキーを待っています...」
    • 注:これらのアクションの後にクリップボードから貼り付けようとしましたが、そのCtrl +C部分でコピー操作が行われたようです-貼り付け時に「Filename.cseditD:\path...」のようなものが表示されました。
  • 「変更待ち」ビューにフォーカスがあり、「ソースファイル」リストからアイテムが選択されていない場合(Visual Studioを再起動することですべての選択を解除できます)、ショートカットは機能しますが、マクロは期待どおりに失敗します(アイテムを選択する必要があるため) )。
  • [ソースファイル]の項目が選択され、フォーカスが保留中の変更ウィンドウから他のVisual Studioウィンドウ(少なくともメインウィンドウ、ソリューションエクスプローラー、シンボル結果の検索など)に移動した場合はショートカットマクロは機能します。キーを押す前にフォーカスを移動するか、Ctrl + Qを押した後、Ctrl + Cを押す前にフォーカスを移動しても、どちらの場合も機能します。
  • メインのビジュアルスタジオビューでコードを選択して、そのメインビューに焦点を合わせてみました。ショートカットとマクロは、このコードをクリップボードにコピーしなくても機能します(「変更の保留」に焦点が当てられている場合とは異なります)。

このような場合、「保留中の変更」はCtrl + Cを他のビューとは異なる方法で処理しますか?

4

0 に答える 0