Book, Terse&Good (2016). Accessible on amazon
ALT + left click + hold + move:
Alt + Shift
CTRL + shift + 8 or CTRL+ r , CTRL+w:
1. ALT+F8 : will auto indent the selected text.
2. TAB and SHIF+TAB: will add or remove one indentation
by spaces when editing : Tool – Options – Text Editor – C/C++
4. if you have already a file with tabs you can replace all tabs by spaces by selecting the whole file and: Edit – Advanced – Untabify selected lines
There are many utilities which allow switching from header and source files. But why do you want to use something already existing if you can redo it? After some years in financial institutions, you will learn to redo badly what was already badly done … This one being so simple, we do not resist to the pleasure to write our macro:
' A badly written, but working, VBA code to
' switch between cpp header and source
Dim sName As String
Dim sNameToOpen As String
sName = DTE.ActiveWindow.Caption
If sName.EndsWith(".h") _
Or sName.EndsWith(".H") _
Or sName.EndsWith(".c") _
Or sName.EndsWith(".C") _
Or sName.EndsWith(".cpp") _
' open the associate file .h or .cpp
sName = DTE.ActiveDocument.Name()
If InStr(sName, ".h") Then
sNameToOpen = Mid(sName, 1, InStr(sName, ".h")) & "cpp"
ElseIf InStr(sName, ".C") Then
sNameToOpen = Mid(sName, 1, InStr(sName, ".C")) & "H"
ElseIf InStr(sName, ".H") Then
sNameToOpen = Mid(sName, 1, InStr(sName, ".H")) & "C"
ElseIf InStr(sName, ".c") Then
sNameToOpen = Mid(sName, 1, InStr(sName, ".c")) & "h"
ElseIf InStr(sName, ".cpp") Then
sNameToOpen = Mid(sName, 1, InStr(sName, ".cpp")) & "h"
sNameToOpen = DTE.ActiveDocument.Path & sNameToOpen
Now that we have proved that we can write a badly VBA program, we can search the web for more robust programs. I would recommend Pierre Arnaud's Solution which works if the header files and source files are not stored in the same directory.
Then you have to associate your new macro to a shortcut using tool->Customize->Keyboard… or associate it to a button:
1) R-click on toolbar,
2) In the Commands tab, under Categories, select Macros then the macro you just made
3) Drag the name of the macro onto the toolbar you want to use (you can make a new one, or add it somewhere)
4) R-click on the button you just added (the Customize Window needs to be open) and change the name to something shorter
The lazy and wise programmer will use the free PhatStudio. In this case ALT+S will work.
Get tired of F9 (breakpoint), F5 (run) and F9 (remove breakpoint)?
=> CTR+F10 should save you: run to the cursor.
· CTRL + SHIFT + F10: set next statement in debug mode. No need to use the mouse!
· Do not forget the usual: F11: step Into, SHIFT+F11: step out, and F10: step over
Useful in a call of a function when parameters are itself
function or classes (std::string, boost::shared_ptr, …).
We just have to enter the elements we do not want to step into in the registry. Depending of the version of Visual
To avoid to step into std::string we include the entry
We have included several namespaces in the file Visual_NativeDE_StepOver.reg: std, ATL, boost. If you want to go into a function of boost, std, or ATL, you include a StepInto for the corresponding function. For example if you want to step into std::vector, include the following entry:
The first number is the priority (30) and must be bigger than the one corresponding to std (18 in the reg file).
Download : Visual_NativeDE_StepOver.reg
Visual 2008 and 2010 are much better to debug than 2003
or 2005, without speaking of Visual 6. However if this does not work you can
have a try at the file autoexp.dat:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger
C:\Program Files\Microsoft Visual Studio 10.0\Common7\Packages\Debugger
You should be able to copy some examples from the file. For example all debugging for STL container are there. A tutorial can be found there: http://www.idigitalhouse.com/Blog/?p=83 and in any other case try google.
The only Tip in this page that I have not used. It is here for reference.
These are the shortcuts that I use regularly:
· CTRL+(SHIFT)+- : Moves to the previously (next) browsed line of code.
· CTRL+]: Moves the cursor to the matching brace
· CTRL+TAB : Navigate between the open windows
· TAB and SHIFT TAB: add or remove indentation
· ALT+F8 : will auto indent the selected text
· CTRL+SPACE: Completes the current word
· CTRL+SHIFT+INS: Cycles through the clipboard ring (CTRL+SHIFT+V for version < 2005)
· CTRL+SHIFT+SPACE: Displays the name, return value, and parameters of the function call
· CTR+u: lower case, CTRL+SHIFT+U : upper case (I knew a colleague who used word …)
· CTRL+SHIFT+F: Find or Replace in all files in the solution
· CTRL+F3 +(SHIFT): Look for next (previous) select text
· CTRL+(SHIFT)+F12 : Go to definition (declaration).
· CTRL+F4: Closes the current document window
· F6: Moves to the next pane of a split pane view of a single document
You have a beautiful macro which does not work or you want to understand it and debug it. Choose to expand the macro in your file:
When compiling It will create a text file “*.i” that you can investigate.
Delete the “*.ncb” file in your solution folder. Could work but not always. For a big project with quite a lot of macros, my intellisense stopped to work. Annoying, but you learn to live without it!
Also look at for problems with precompiled headers: http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx
If you are happy with the P4 add-in for Visual Studio this tip is not for you. Personally I removed it because it was too slow. I made a macro to check out the current file from Visual studio. This old ugly macro will create the command file to check out the file and run it using p4 command line. The point to write to a file is to be able to debug it when there is a problem. That’s all. You have to check-in manually. Not intelligent, and not beautiful, but it is fast and it works well enough for me.
1. To be able to use it you need to have installed the p4 with the command line. If you have not done it, you have to uninstall the p4 and reinstall it checking the option "command line"
2. Copy the following macro in the "MyMacro" (open it with Alt+F11)
3. You have to specify the client inside the macro (“vClient = …”).
4. Use a shortcut to this macro using Tools->Customize->Keyboard and then assign it to a shortcut.
There are several add-ins accessible. Personally I used mainly:
1. STLFilt simplifies and/or reformats long-winded C++ error and warning messages, with a focus on STL-related diagnostics. Really useful. A little bit annoying to install (read the README.txt!), and do not forget to add the option /WL in the compilation command line of Visual.
2. Visual Local History : local file history à la Eclipse. For 2005, and 2008. Create backup when saving a file. Indispensable if you do not have a source control.
3. Fast file navigation with a filter
a. PhatStudio. (ALT+O): Include switch between source and header files (ALT+S).
c. SonicFileFinder: Alternative.
4. Profiler "Very Sleepy" : open-source profiling software. GUI outside Visual C++.
6. Incredibuild. Distributed builds. Not free but so useful.
7. Tomato: I used it at Barclays&Citi and some of my colleagues were great fans. However I do not find it more useful than PhatStudio. The only good point is that F12 is almost broken in Visual 2010 and so Ctr+G can be used instead. .
8. cppcheck static analysis tool for C/C++ code. Can be useful. However it is not integrated to Visual, so you will need to create your command line.
9. CancelFailedBuild Cancels a failed build as soon as the first failure occurs. Very useful
10. Viafora: coloring brackets Enhances the VS text editing experience with Rainbow Braces, XML highlighting and more. Very very useful.
11. Remove/hide the 'External Dependencies' folder in Solution Explorer Options dialog (from the Tools menu). On the right side panel expand the Text Editor section, then expand C/C++ and then click on Advanced. Set the Disable External Dependencies Folder to True and restart Visual Studio.
Go back to