`
tiandirensoon
  • 浏览: 595806 次
文章分类
社区版块
存档分类
最新评论

Visual Studio 2005 IDE 技巧和窍门

 
阅读更多
发布日期:2007-02-26|更新日期:2007-02-26

JamesLau

Microsoft项目经理

适用于:

MicrosoftVisualStudio2005

摘要:VisualStudio2005是目前业内一流的开发工具,我想在此与大家分享一些使用技巧和窍门,使这个优秀的开发工具更显威力。要充分利用一个工具,关键是要熟悉它,开发工具和IDE也不例外。不过,有了C#2.0、ASP.NET2.0、WindowsWorkflowFoundation、WindowsPresentationFoundation和WindowsCommunicationFoundation等等许多新技术,谁又会花费时间来了解VisualStudio本身呢?花费10分钟阅读本文将使您了解几项实用内容,这些内容可以使您在使用VisualStudio时更加惬意和高效。

*
本页内容
将双手保持在键盘上 将双手保持在键盘上
Window 布局选择器 Window布局选择器
代码段 代码段
自定义 Visual Studio 起始页 自定义VisualStudio起始页
团队设置 团队设置
/resetuserdata 参数 /resetuserdata参数
总结 总结

将双手保持在键盘上

我最喜欢使用的键盘快捷方式

您可曾有过这样的期望:在VisualStudio内部进行开发工作时双手不必离开键盘?如果您是一名高级用户,您肯定会享受到使用键盘快捷方式执行各种操作所带给您的飞速体验。我确信大部分开发人员都已经熟悉了其中的某些快捷方式。使用F5执行Debug.Start、F10执行Debug.StepOver、F4执行View.Properties,等等。不过仍有其他几个不太为人所知但极其实用的键盘快捷方式。在下表中,我列出了自己最喜欢使用的一些快捷方式。

键盘快捷方式 命令

F7

在设计视图和代码视图之间切换。

F9

切换断点。

F12

转到变量、对象或函数定义。

Ctrl+Shift+7

Ctrl+Shift+8

在“转到定义”堆栈中快速向前和向后导航。

Shift+F12

查找某个函数或变量的所有引用。

Ctrl+M、Ctrl+M

在编辑器中展开和折叠代码段结构。

Ctrl+K、Ctrl+C

Ctrl+K、Ctrl+U

分别用于为代码行添加注释和取消注释。

Shift+Alt+Enter

在全屏模式和正常模式之间切换。

Ctrl+I

渐进式搜索。

创建键盘快捷方式速查表。

大部分开发人员都不了解这一点,但实际上,VisualStudio默认提供了450多个键盘快捷方式。不过,对于如何找到VisualStudio内部的所有键盘快捷方式还没有简便的方法。您可以编写一个简单的宏,对于所有默认键盘快捷方式进行遍历,找到它们所对应的操作。以下内容(列表1)列出了这个宏的代码。

PublicModuleModule1

PublicSubListShortcutsInHTML()

'DeclareaStreamWriter

PublicSubWriteHTMLStart(ByValswAsSystem.IO.StreamWriter)
sw.WriteLine("<html>")
sw.WriteLine("<head>")
sw.WriteLine("<title>")

sw.WriteLine("VisualStudioKeyboardShortcuts")
sw.WriteLine("</title>")
sw.WriteLine("</head>")

sw.WriteLine("<body>")
sw.WriteLine("<h1>VisualStudio2005KeyboardShortcuts</h1>")
sw.WriteLine("<fontsize=""2""face=""Verdana"">")
sw.WriteLine("<tableborder=""1"">")
sw.WriteLine("<trBGCOLOR=""#018FFF""><tdalign=""center""><b>Command</b></td><tdalign=""center""><b>Shortcut</b></td></tr>")

EndSub

PublicSubWriteHTMLEnd(ByValswAsSystem.IO.StreamWriter)
sw.WriteLine("</table>")
sw.WriteLine("</font>")
sw.WriteLine("</body>")
sw.WriteLine("</html>")
EndSub

EndModule

列表1.在HTML文件中生成键盘快捷方式的宏

要使用这个宏,请转到“工具”,选择“宏”,然后选择“宏IDE...”启动“宏IDE”。展开MyMacros工程,MyMacros命名空间,然后双击“Module1”。将列表1中的内容复制到“宏IDE”然后运行宏即可。运行宏之后,将会生成VisualStudio的键盘快捷方式参考信息。打开包含输出内容的C:/demo/Shortcuts.html文件。“图1”显示了部分输出内容。如果方便就将它打印出来,贴在计算机附近,以便学习新的键盘快捷方式。

.

图1.VisualStudio2005键盘快捷方式列表(部分)

自定义键盘快捷方式

如果某个您喜欢使用的键盘快捷方式默认没有设置,您总是可以通过单击“工具”>“选项...”>“环境”>“键盘”来自定义这个快捷方式(参见图2)。不过,如果要在您的使用环境中添加多个键盘快捷方式,则可以通过编辑自动保存的设置文件直接添加这些快捷方式。可以通过以下步骤来实现:

.

图2.“选项”对话框-自定义“键盘快捷方式”

步骤1:导出当前的“键盘快捷方式”。转到“工具”>“导入和导出设置...”,启动“导入/导出设置向导”。选择“导出选定的环境设置”,单击“下一步”。单击“所有设置”,取消选中所有复选框,然后展开“选项”、“环境”节点,选择“键盘”复选框(图3)。单击“下一步”转到向导的最后一页。将新的设置文件命名为“MyKeyboardShorcuts.vssettings”,路径使用默认目录(图4)。单击“完成”。

.

图3.只选择导出“键盘”设置类别

.

图4.将设置文件重命名为MyKeyboardShortcuts.vssettings

步骤2:打开并编辑设置文件。该文件的路径为MyDocuments/VisualStudio2005/Settings/MyKeyboardShortcuts.vssettings。VisualStudio的设置文件就是XML格式的文件,您可以使用任何编辑器打开该文件。我推荐使用VisualStudio来打开该文件,因为这样可以使用VisualStudio中的为语法标注颜色的功能以及文档格式设置功能。打开文件之后,按下Ctrl+K、Ctrl+D,让VisualStudio对其自动进行格式设置。然后,查找<UserShortcuts>标签。在此XML元素内部,您可以添加自己的一列快捷方式。下面的“列表2”显示了一个示例。

...
<UserShortcuts>
<ShortcutCommand="View.CommandWindow"Scope="Global">
Ctrl+W,Ctrl+C
</Shortcut>
<ShortcutCommand="View.SolutionExplorer"Scope="Global">
Ctrl+W,Ctrl+S
</Shortcut>
<ShortcutCommand="View.ErrorList"Scope="Global">
Ctrl+W,Ctrl+E
</Shortcut>
<ShortcutCommand="View.TaskList"Scope="Global">
Ctrl+W,Ctrl+T
</Shortcut>
<ShortcutCommand="View.Output"Scope="Global">
Ctrl+W,Ctrl+O
</Shortcut>
</UserShortcuts>
...

列表2.直接在设置文件中添加“键盘快捷方式”

此处的XML是非常容易理解的。只要为要添加的每个快捷方式设置一个<Shortcut>元素即可。将快捷方式本身指定为该元素的内容,要将Shift、Ctrl和Alt等修改键结合起来使用,可以使用“+”字符将它们串连起来(例如,Ctrl+Alt+J)。在“Command”属性中为快捷方式所要绑定的命令指定规范的命令名称。“Scope”属性总是为“Global”,因此这里不再赘述。此操作过程中最困难的部分可能就是确定特定命令的规范名称。特定命令的规范名称的格式为:顶级菜单名称加“.”字符再加命令名称,采用“驼峰式”大小写格式,不包含任何空格。

添加了所有快捷方式之后,保存该文件。

步骤3:导入设置文件。既然已在设置文件中添加了快捷方式,现在就可以将文件导回到您的使用环境中。当然,也可以将您的设置文件分享给其他人员使用。再次启动“导入和导出设置向导”,但这次选择“导入选定的环境设置”;单击“下一步”。选择“否,仅导入新设置,改写我的当前设置”,然后单击“下一步”。选择“我的设置”文件夹下的“MyKeyboardShortcuts.vssettings”,然后单击“下一步”。使用默认选择,单击“完成”。

在工具提示中显示快捷方式

您可以实际指定环境在提示信息中显示快捷方式,将鼠标移到工具栏命令的上方时可显示相应的提示信息。转到“工具”>“自定义...”,确保选中“在屏幕提示中显示快捷键”选项。

.

图5.在工具提示中启动快捷键显示

Window布局选择器

VisualStudio是一个功能强大的开发环境,它使用许多不同的工具窗口用于不同的任务和目的。对于VS2005中新提供的TeamSystem功能而言尤其如此。我们曾经听到许多用户反映,如果有一种可以在不同的窗口布局之间快速切换以适合当前要处理的任务的方式,会非常有用。实际上您可以在VS2005内部自己创建这项功能,不过,这需要执行几个步骤。

步骤1.创建设置文件。VisualStudio2005中有一项可以导入/导出环境设置的新功能。实际上,可以将可对环境进行的所有自定义设置导出到一个文件中,这样就可以将这些自定义设置与其他用户分享使用、将其导入到其他计算机,或者作为备份来存储。可以导入/导出的设置包括:窗口布局、键盘快捷方式、菜单自定义设置、字体与颜色以及“选项”对话框(“工具”>“选项...”)中实际存在的所有内容。可以根据需要,随时导出所有环境设置,也可以只导出其中的一部分。

在创建我们的“窗口选择器”时,第一个步骤是为每个想要使用的窗口布局创建单独的设置文件。在此示例中,我要创建3个设置文件,分别对应3个我想要使用的窗口布局:CodeWriting、CodeBrowsing和FormsDesign。

第一步就是按照您编写代码时喜欢的方式来布置窗口布局。就我而言,我喜欢将所有可见的工具窗口设置为自动隐藏状态以最大化编码区域。图6显示了我是如何为这个窗口布局来布置工具窗口的,不过您可以随意将其调整为您喜欢的方式。然后,转到“工具”>“导入和导出设置”,启动“导入和导出设置向导”。选择“导出选定的环境设置”,单击“下一步”。只选择窗口布局复选框,然后单击“下一步”。将设置命名为“CodeWritingWinLayout.vssettings”,然后单击“完成”。现在,您已经创建了您所需的三个设置文件中的第一个文件。重复以上这些步骤,创建余下的两个设置文件。显然,您需要更改窗口布局并将文件命名为其他名称。我已将我的设置文件命名为“CodeBrowsingWinLayout.vssettings”和“FormsDesignWinLayout.vssettings”。

.

图6.用于编码的窗口布局

步骤2.创建宏来导入设置文件。在创建设置文件之后,您需要创建3个宏-分别用于导入每个设置文件。从下面的“列表3”可以看出,这个代码并不复杂。

ImportsEnvDTE
ImportsEnvDTE80
ImportsSystem.Diagnostics
ImportsSystem.IO

PublicModuleModule1

PublicSubImportWinLayoutCodeWriting()
DTE.ExecuteCommand("Tools.ImportandExportSettings",
"-import:c:/demo/settings/CodeWritingWinLayout.vssettings")
EndSub

PublicSubImportWinLayoutCodeBrowsing()
DTE.ExecuteCommand("Tools.ImportandExportSettings",
"-import:c:/demo/settings/CodeBrowsingWinLayout.vssettings")
EndSub

PublicSubImportWinLayoutFormsDesign()
DTE.ExecuteCommand("Tools.ImportandExportSettings",
"-import:c:/demo/settings/FormsDesignWinLayout.vssettings")
EndSub

EndModule

列表3.用于导入设置文件的宏代码

步骤3.在工具栏中添加按钮。现在可以创建更改窗口布局的实际按钮。单击“工具”>“自定义...”,单击“命令”选项卡。从“类别”列表框中选择“宏”,然后在“命令”列表中向下滚动,找到刚才编写的三个宏。这些宏的名称应该为MyMacros.Module1.ImportWinLayoutCodeWriting、MyMacros.Module1.ImportWinLayoutCodeBrowsing和MyMacros.Module1.ImportWinLayoutFormsDesign(参见图7)。单击每个命令,将其拖动到VisualStudio工具栏上。您现在需要在工具栏中右键单击新放置的命令,将这些命令的名称更改为更短的名称。

.

图7.使用“自定义”对话框将宏放置到工具栏上。

关闭“自定义”对话框,保存您的自定义设置。您已经创建了您自己的“窗口布局”选择器。单击工具栏上的这些新按钮,尝试使用这些按钮。您甚至可以转到“工具”>“选项...”>“环境”>“键盘”页面为这些命令指定键盘快捷方式。

代码段

代码段是在VisualStudio2005中引入的最能体现效率的特点之一。它可以避免单调乏味的输入过程(例如键入for循环),使您能够快速插入代码段,它还可以提供可完成特定任务(如通过网络发送数据)的模板。大部分内置的C#代码段都属于第一种类型-这些代码段可以帮助您将重复输入降到最低,而很大一部分内置的VB代码段都属于第二种类型-使用这些代码段可以更容易地编写执行特定任务的代码。

有两种插入代码段的方式。您可以在代码编辑器中键入代码段的别名,然后按两次Tab键(对于VB只需按一次Tab键)即刻插入代码段。在插入代码段之后,您可以通过按Tab键和Shift+Tab键跳到代码段的不同区域。这允许您快速更改需要修改的代码部分。请注意:在C#中,代码段别名也具有IntelliSense。您可以在IntelliSense列表中通过其代码段图标指明某一项为代码段。

.

图8.IntelliSense完全支持代码段

如果忘记了代码段的别名,还可以按“Ctrl+K、Ctrl+X”在代码编辑器内插入别名,也可单击鼠标右键,然后选择“插入代码段...”。这会显示代码段选取器,使用它可以浏览适用于当前编程语言的所有代码段以及选择要插入的代码段。这种插入代码段的方法对于C#和VisualBasic均有效。对于VisualBasic用户,还可以有另一种插入代码段的方式:您可以键入代码段别名的前几个字母,后跟“?”,然后按Tab键。VisualStudio会显示一个按字母排序的列表,其中包含与突出显示的内容最为匹配的所有代码段的别名。此功能仅适用于VisualBasic用户。

.

图9.在C#中插入代码段

从个人角度将,最令人兴奋的代码段功能部分是,您可以为个人使用而创建自己的代码段,也可以将其分享给其他同行使用。当然,您也可以下载其他开发人员创建好的代码段。

在VisualStudio内部非常容易就可以创建您自己的代码段。我将通过一个示例说明如何操作。我经常会编写一些应急的实用程序来帮助我完成工作。其中的许多实用程序都有通用的模式:打开某个文件,执行一些处理,然后关闭该文件。以下是我的代码段的创建步骤。

步骤1:创建XML文件。每个代码段都包含在一个XML文件中。在VisualStudio内部,只要转到“文件”>“新建...”>“文件...”,然后选择“XML文件”类型即可。

.

图10.创建新的XML文件

步骤2:定义代码段。如果有足够的兴趣,甚至还有一个可创建代码段的代码段。只要在该文件的第二行按下Ctrl+K、Ctrl+X,选择“Snippet”代码段,就会自动为您插入一个代码段文件的模板。

.

图11.使用XML代码段来创建其他代码段

标题、作者、快捷键和描述字段这些内容不言自明,我就不再具体说明了。<Snippet>标签中的内容值得讨论,我下面的例子可以对此给出最好的解释。

实际上,您将所有代码放在了<![CDATA[...]]>标签之内,而该标签是在</Code>标签的内部。对于那些希望用户可以轻松替换的字段,您可以在这些字段两边放置一对“$”字符。在我的示例中,我设置了三个我的代码段用户可以轻松替换的参数:StrmReader、FilePath和Line。这三个参数在CDATA部分的内部使用,每个参数两侧都有一对“$”字符。此外,每个参数也必须在<Declarations>元素中进行定义。为每个参数指定一个ID和一个默认值(可选)。

敏锐的读者会注意到,在我的代码段内部还有另外一个我没有定义的参数:$end$。这是一个特殊参数,用于指定用户在代码段字段中填写完内容并按下Enter键后光标所在的位置。还有一个我在此处没有列出的特殊参数:$selected$。$selected$参数只对SurroundsWith类型的代码段有意义。它用于定义在使用“SurroundWith...”插入此代码段时所选的代码段的放置位置。

<?xmlversion="1.0"encoding="utf-8"?>
<CodeSnippetFormat="1.0.0"xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>FileProcessing</Title>
<Author>JamesLau</Author>
<Shortcut>fp</Shortcut>
<Description>Opensafile,doessomeprocessing,andthenclosesthefile.</Description>
<SnippetTypes>
<SnippetType>SurroundsWith</SnippetType>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>StrmReader</ID>
<Default>strmReader</Default>
</Literal>
<Literal>
<ID>FilePath</ID>
<Default>fPath</Default>
</Literal>
<Literal>
<ID>Line</ID>
<Default>strLine</Default>
</Literal>
</Declarations>
<CodeLanguage="CSharp">
<![CDATA[
StreamReader$StrmReader___FCKpd___3nbsp;=null;
try
{
$StrmReader___FCKpd___3nbsp;=newStreamReader($FilePath$);
string$Line$;
while(($Line___FCKpd___3nbsp;=$StrmReader$.ReadLine())!=null)
{
//Performsomeprocessing
$selected$
$end$
}
}
catch(IOExceptionioex)
{
//Handleexception
}
finally
{
$StrmReader$.Close();
}
]]>
</Code>
</Snippet>
</CodeSnippet>

列表4.代码段内容示例

自定义VisualStudio起始页

在VisualStudio2005中,新的“起始页”不只是包含可以提供有关MSDN新闻的最新信息的实时RSS源。如果希望在“起始页”上阅读某些其他的RSS源,可以通过选择“工具”、“选项...”、“环境”,然后选择“启动”页面(在此可以编辑“起始页新闻频道”下面的URL),自定义RSS新闻频道。如果希望在每次启动VisualStudio时不要自动显示“起始页”,您还可以通过在同一选项页面中选择“启动时”下面的“显示空环境”来更改此行为。

团队设置

VisualStudio2005中另外一个少有人知的新功能是“团队设置”。如果您在团队环境下工作(大部分情况下是如此),那么“团队设置”可以帮助您强制执行团队编码规则或者更快地设置VisualStudio。

让我们假定您要在团队内部强制执行一组基本的代码格式规则。您可以只创建设置文件,让您的团队成员指向该文件,而不必指定这些规则的内容并让每个团队成员自定义其IDE选项以遵从这些规则。无论何时更新团队设置文件,该文件都会在用户下次启动VisualStudio时自动导入来改写已有的设置。以下步骤说明了如何使用这个强大的功能。

步骤1:创建设置文件。您可以使用“团队设置”来强制执行任何您需要的IDE自定义设置。开发人员使用“团队设置”最常进行的设置应该是代码格式设置。不过,您也可以将此功能用于任何可以导出的VisualStudio设置,如“字体与颜色”、“SourceSafe设置”、“键盘快捷方式”和“菜单自定义”,等等。只要在VisualStudio内部自定义所需的设置,然后使用“工具”>“导入/导出设置...”将其导入到已知位置即可。请仅导入要与团队享的那组设置,这一点很重要。

步骤2:在UNC路径中放置设置文件。将步骤1中导出的设置文件复制到您的团队成员可以访问的网络路径中。在我的计算机上,我在//jameslau/public/teamsettings.settings路径下共享了我的团队设置文件。

步骤3:更改“团队设置”路径。让团队成员更改他们的“团队设置”路径,使其指向您的团队设置文件。他们可以转到“工具”>“选项...”>“环境”>“导入和导出设置”来完成此操作。选择(选中)“使用团队设置文件”复选框,指定团队设置文件的路径。

.

图12.用于更改“团队设置”路径的“选项”对话框

/resetuserdata参数

我要与大家分享的最后一个技巧与/resetuserdata参数有关。如果VisualStudio在运行时被损坏,且无法从损坏状态进行恢复,您可以使用此参数将VisualStudio重置到其使用之初的状态。这些问题的例子可能包括:窗口布局文件被破坏、菜单自定义文件被破坏,或者键盘快捷方式文件被破坏。免责声明:如果使用此参数,您将丢失所有的环境设置和自定义设置。出于这个原因,Microsoft不公开支持使用此参数,而且也没有将这个参数公之于众(如果在命令提示行中键入devenv.exe/?,您不会看到显示此参数)。如果遇到环境方面的问题,应该将这个方法作为不得已而为之的办法,并且确保在使用此参数前,已通过导出环境设置对其进行了备份。

要使用此参数,请执行以下操作:

1.

关闭所有VisualStudio2005实例。

2.

单击“开始”,选择“运行...”。

3.

键入“devenv.exe/resetuserdata”。

此命令会运行几分钟时间,与此同时,VisualStudio清除设置并将其自身重置到其最初的状态。此时,您可以打开“任务管理器”来检查devenv.exe进程是否仍在运行。在结束运行后,可以重新启动VisualStudio。此时会再次出现首次启动对话框,就像在计算机上第一次运行VisualStudio一样。

总结

我们将通过我们的努力工作,不断为您带来VisualStudio的实用高效的功能。我希望这些技巧能对您有用,可以帮助您成为VisualStudio高级用户。如果对于VisualStudioIDE问题有任何的意见、反馈或者建议,非常欢迎您向我们发送相关邮件。可以将您给我们的邮件发送到jameslau@microsoft.com

©2006MicrosoftCorporation版权所有。保留所有权利。使用规定。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics