我有一个宏,该宏将Pending Changes视图中的文件与Source Control上的最新版本进行比较。

过程:首先,选择文件,然后运行宏,这可以正常工作。 我尝试分配一些键盘快捷键来运行此宏:

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不起作用? 它是否尝试在Pending Changes视图中复制选定的文件,而不是使用Ctrl + C作为宏快捷方式的第二部分?

编辑:

好的,首先是宏代码:

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

我对其进行了更多测试,这是我发现的结果:

  • 如果“待更改”视图具有焦点,并且从“源文件”列表中选择了一个项(必须使该宏起作用),则该窗口将完全不接受Ctrl + C组合,并且状态栏将继续显示'(Ctrl + Q)已按下。 等待第二个和弦...'
    • 注意:在执行这些操作之后,我尝试从剪贴板进行粘贴,看来它使用Ctrl + C部分执行了复制操作-粘贴时出现类似“ Filename.cs edit D:\\ path ...”的内容。
  • 如果“待更改”视图具有焦点,并且没有选择“源文件”列表中的任何项(我可以通过重新启动Visual Studio取消选择所有项),则快捷方式将起作用,但是宏将按预期失败(因为它需要选择一项) )。
  • 如果选择了“源文件”中的一项,并且焦点从待处理的更改窗口移至任何其他Visual Studio窗口(至少是我尝试过的窗口:例如主窗口,解决方案资源管理器,查找符号结果等),则该快捷方式和宏将起作用。 无论我在按任意键之前移动焦点,还是在按Ctrl + Q之后但在Ctrl + C之前都移动焦点,在两种情况下都可以使用。
  • 我什至尝试在Visual Studio主视图中选择一些代码,将焦点放在该主视图上-快捷方式和宏将可以在无需将此代码复制到剪贴板的情况下工作(与将焦点放在“待更改”时不同)。

在这种情况下,“待更改”对Ctrl + C的处理方式是否不同于其他视图?

  ask by mrzli translate from so

本文未有回复,本站智能推荐:

1回复

为什么Q_FOREACH宏会破坏VS2010的智能感知?

我在Q20 4.7.4的VS2010中有一个c ++项目,我经常遇到IntelliSense问题(正如我们所做的那样......)。 一个特定的问题是有时无法找到函数体(在.cpp文件中)。 如果我单击该函数体,下拉框(通常显示您所在的函数)为空。 今天我在添加foreach()语句(Q
1回复

VisualStudio2010C++折叠特定的宏

我有很多代码,其中包含用于记录LOG_MACRO的宏,我想在所有解决方案中将其折叠起来,以更好地理解代码。 我知道我可以用来折叠宏的任何Visual Studio选项或工具吗? 我有视觉协助,但找不到任何帮助。 谢谢
2回复

在VisualStudio2010中加载设置文件的宏

我只是在寻找一种加载设置文件的方法(也许是宏?)。 理想情况下,我也希望能够从桌面作为快捷方式运行它。 我用谷歌搜索,但是也许我没有找到正确的关键词。
1回复

如何从VS2010中的宏更改工具栏上命令的标题?

我从一个宏访问工具栏上的命令: 我现在如何更改工具栏上命令的标题? 它似乎没有必要的属性。 我是否需要将其转换为其他内容?
1回复

无法在VisualStudio2010中创建宏

我以前曾经这样做过,但现在我再也做不到。 我想创建一个宏和快捷方式以取消列表化选定行的大小。 首先,选择要取消制表的行。 然后,我选择记录临时宏。 然后,选择“编辑”“高级”““取消表行选择””。 然后,我单击停止录制。 在宏资源管理器中,我有“ TemporaryMacro”,但是
1回复

可以在VisualStudio2010中隐藏#define/宏吗?

我有一些码表用于秒表,以便记录执行时间。 我不想一直运行它,所以我认为处理计时器的最有效方法是使用预处理器宏。 对于下面的示例,如果定义了ENABLE_ENGR_PROFILING ,则在秒表上调用start()函数,进行一些工作,然后在秒表上调用accumulate(),以获取从start
1回复

宏不在VisualStudio2010中运行

Visual Studio 2010中的宏无法再启动。 它们没有在宏IDE的第一行中遇到断点。 没有错误消息。 仍然可以记录宏,代码显示在宏IDE中,但新录制的宏也无法启动。 宏文件中没有错误,至少错误列表中没有显示错误。 如果我故意添加错误,错误将显示在错误列表中。 启动宏时有一
1回复

为VisualStudio2010创建版权宏

我最近在宏IDE中为Visual Studio 2010编写了一个宏,已经保存了该宏,并且该宏位于解决方案中当前的活动宏项目中。 通过将宏添加到我的工具栏时 工具>自定义>命令(选项卡)>工具栏>标准>添加命令>宏 仅存在Macro.Sample.