710 likes | 1.21k Vues
Visual Studio.NET: Tips, Tricks, & Toys. by Kevin Grossnicklaus. Agenda. Introduction General Tips Code Editor Tricks Searching Layout and Navigation Advanced Design-Time Tips Debugging Tips VS.NET Plug-Ins External Development Tools Additional Resources Questions?. Introduction.
E N D
Visual Studio.NET: Tips, Tricks, & Toys by Kevin Grossnicklaus
Agenda • Introduction • General Tips • Code Editor Tricks • Searching • Layout and Navigation • Advanced Design-Time Tips • Debugging Tips • VS.NET Plug-Ins • External Development Tools • Additional Resources • Questions?
Introduction • Kevin Grossnicklaus • ArchitectNow-www.ArchitectNow.net (2009-Present) • President • Washington University - CAIT Program (2003-Present) • Instructor • SSE - www.SSEinc.com (1999-2009) • Chief Architect • Software Development Practice Leader • Email: kvgros@architectnow.net • Twitter: @kvgros
Expectations • What are we going to cover? • Why is this something I should be aware of? • Who can use this stuff? • How detailed are we going to get?
Managing Shortcuts • Keyboard vs. Mouse • Verify your current environment settings • This talk assumes “General Development” • Manage keyboard shortcuts here: • Tools->Options->Environment->Keyboard • All settings (including shortcuts) can be imported and/or exported from: • Tools->Import and Export Settings
Keyboard Shortcuts • Standard Shortcuts: • Ctl-K • Ctl-Shift-O • “Chords” = Two character shortcuts • Written as: • Ctl-K,D or Ctl-K, Ctl-D
Shortcut Reference Posters • Visual Studio 2010 Keybinding Posters • http://www.microsoft.com/en-us/download/details.aspx?id=13189
Top Level Shortcuts • Ctl-Shift-N = New Project • Alt-Shift-N = New Website • Ctl-Shift-O = Open Project • Alt-Shift-O = Open Website • Ctl-Shift-A = Add New Item • Alt-Shift-A = Add Existing Item
Cut/Copy/Paste • Copy or Cut = Ctl-C or Ctl-X (respectively) • If no selection, cuts or copies the current line to the clipboard • If there is a selection, cuts or copies the selection to the clipboard • Tools->Options->Text Editor->All Languages->General • Uncheck the “Apply Cut or Copy Commands to Blank Lines When There is No Selection” option • Current Line • Ctl-L to cut the current line to the clipboard (including EoL) • Ctl-Shift-L to delete the current line
Cut/Copy/Paste (Cont.) • Paste = Ctl-V • Pastes the last item cut or copied into the editor at the current cursor location • Clipboard “Ring” = Ctl-Shift-V • Cycles through the previous 20 items cut to the clipboard and pastes them at the current cursor location • Accidentally cut or copy something you didn’t mean to? • Cycle through pasting until you get to the item you overwrote
Misc Selection/Insertion Commands • Ctl-Enter to insert a blank line above current line • Ctl-Shift-Enter to insert a blank line below current line • Ctl-W to select current word • Ctl-Delete to delete next word • Ctl-Backspace to delete previous word
Drag/Drop Code • Selections of code can be dragged around a code file or to different files • Hold Shift to “Copy” • Code can be dragged onto the Toolbox dock-window in the “General” section and then dragged back onto other editors • These can be renamed to be more readable • This is a handy way to reuse sections of code
Weird Editor Shortcuts • Ctl-T to transpose a character • Ctl-Shift-T to transpose a word • Alt-Shift-T to transpose a line • Ctl-U to make current selection or character lowercase • Ctl-Shift-U to make current selection or character uppercase
Undo/Redo • Ctl-Z to Undo • Ctl-Y to Redo • Use the dropdowns for more granular control and information
Scrolling • Use the scroll bars or mouse wheel • Press mouse wheel to allow for 4-way navigation
“Go-Back” Markers and Navigation • What is a “Go-Back” marker? • Ctl-Minus to navigate backwards • Ctl-Shift-Minus to navigate forwards • Optionally use the toolbar buttons and dropdown boxes for more info
Navigation Bar • What is the navigation bar? • Ctl-F2 to select the navigation bar • Tab or Shift-Tab to switch between combo boxes once selected • Arrow keys to navigate down and enter to select • To enable/disable per language: • Tools->Options->Text Editor->All languages (or specific language)->General • Set the “Navigation Bar” option
Splitting Editor Windows • Window->Split to split • Window->Remove Split to remove • Splitter can be resized via mouse • F6 to switch between split panes
Line Numbers • Enable line numbers here: • Tools->Options->Text Editor->All languages (or specific language)->General • Check “Line Numbers”
Track Changes • Tools->Options->Text Editor->General • Check “Track Changes” • What does this do? • Yellow – Lines were edited since last save. • Green – Lines were edited prior to last save. • Yellow becomes Green after one save, close and re-open a file and Green is gone
Code Selection • Click and drag to select code via the common “stream” mode • Hold Alt-Shift and click and drag to select in “box” mode • Shift-Arrow Keys to manually select code in “stream” mode • Alt-Shift-Arrow Keys to manually select in “box” mode
Formatting • What does code formatting do? • Where can I adjust the settings? • Tools->Options->Text Editor->(Language)->Formatting • Ctl-K,D to format the current document • Ctl-K,F to format the current selection
Outlining • Ctl-M,M to toggle outlining around cursor • Ctl-M,L to toggle all outlining in current file • Ctl-M,P to turn off outlining • Edit->Outlining->Start Automatic Outlining to turn back on • Ctl-M,O to collapse to definitions • Selecting a collapsed definition allows you to cut and paste it as a whole
Remove Unused Usings • Right click in editor and select: • Organize Usings->Remove Unused Usings
Bookmarks • Ctl-K,K to toggle bookmarks on current line • Ctl-K,N to go to the next bookmark • Ctl-K,P to go to the previous bookmark • Ctl-K,L to clear all bookmarks • Ctl-K,W to view the bookmarks window • Organizing Bookmarks
Commenting • Handy Shortcuts: • Ctl-K,C = Comment Block • Ctl-K,U = Uncomment Block • XML Comments • Task List Comments • //TODO • //HACK • //UNDONE
Intellisense • Ctl-J to invoke statement completion (i.e. bring up Intellisense) • Ctl-Space or Alt-Right Arrow for statement completion
Smart-Tags • Ctl-Period to drop down a Smart-Tag menu • Enter to select the first item • Resolve Context Menu
Code Snippets • Ctl-K,X to bring up Code Snippet menu • Type-ahead supported • Or enter the snippet shortcut keyword and press Tab-Tab • Ctl-K,S to insert a code snippet around a selected block of code • Tab and Shift-Tab to switch between “tokens” • Ctl-K,B to bring up the Code Snippet Manager
Refactoring • Ctl-R,R to rename current item • Ctl-R,M to extract the currently selected code into a new method • Ctl-R,E to encapsulate field into a property • Ctl-R,I to extract interface from current class • Ctl-R,P to promote selected local variable to a parameter • Ctl-R,V to remove parameters • Ctl-R,O to reorder parameters
Call Hierarchy Window • To display: Ctl-K,T • Nice navigation between calling methods and methods called from the current method
Searching - 1 • Incremental Search • Ctl-I • Start typing • Ctl-I again to jump to next occurrence • Current Word Search • Ctl-F3 to search for the currently selected word • Ctl-Shift-F3 to search for the current word looking backwards • Quick Find • Ctl-F to bring up Quick Find with current word as the default • Use Regular Expressions
Searching - 2 • Quick Replace • Ctl-H brings up the Quick Replace window with the current word as the default • Find Symbol • Alt-F12 brings up the Find Symbol dialog • Shift-Alt-F12 searches for the current word using the Find Symbol functionality but skips the UI
Searching - 3 • Find in Files • Ctl-Shift-F opens the Find in File dialog • Replace in Files • Ctl-Shift-H opens the Replace in Files dialog • Find in Files options
Document Windows • Document Windows = Tabbed Documents • Ctl-Alt-Down Arrow to drop down file tab channel • Tab Context Menu • Close All But This • Copy Full Path • Open Containing Folder • Tab Groups • Horizontal or Vertical • Windows Menu
Document Navigation • Ctl-Tab to display the IDE navigator • Ctl-Tab again to scroll through open documents • Ctl-Shift-Tab to scroll in reverse • Arrow keys or mouse to select a document or dock-window • Ctl-F6 and Ctl-Shift-F6 to jump between currently open documents without using the IDE navigator (forwards and backwards) • Ctl-F4 to close the current document
Dock/Tool Windows • Docking Targets • Five “States” • Dockable • Floating • Tabbed • Hide • Auto-Hide • Alt-F7 and Alt-Shift-F7 to scroll (forwards or backwards) through all opened tool windows using the IDE navigator • Alt-F6 and Alt-Shift-F6 to scroll (forwards or backwards) through all opened tool windows without the navigator
Dock/Tool Windows (Cont.) • Tool windows that are hidden can be shown via their shortcut key or most are found under one of the following menu locations: • View • View->Other Windows • Debug->Windows
Window Layouts • Four Layouts: • Design View • Full Screen • Debugging View • File View • Shift-Alt-Enter to toggle between Full Screen mode and Design View
Toolbars • Drag and drop customization • Visible based on current context • Right click to display any toolbar at any time • Customization dialog • “Show Shortcut Keys in Screen Tips” • Full customization of all toolbars while this dialog is visible
Context Menu Customization • Complete editing of any context menus • Tools->Customize • Select Toolbars tab • Check “Context Menus”
Quick Launch • In Title Bar • Ctl-Q to place cursor
Command Window • Ctl-Alt-A to open the command window • Enter a > to run any VS command from the command prompt • Full Intellisense for commands, arguments, and even file paths • Command aliasing • ? = Debug.Print • Enter “alias” by itself to see current aliases
Task Window • Custom Tasks • Task Shortcuts • Comment Tasks
External Tools • How to add external tools? • Redirecting console output to Output Window • Passing arguments