It’s a pretty common practice to comment and uncomment big chunks of code during the development and testing of software. Here’s an odd little hack from the ajaxian blog that can make this a little easier for blocks that you’re constantly flipping on and off during development.
For C style comments, the following will be commented out:
/*
if ( foo == bar )
{
dosomething();
return();
}
// */
And the addition of a single ‘/’ will uncomment the block:
//*
if ( foo == bar )
{
dosomething();
return();
}
// */
In languages that don’t have the single line comment, such as CSS, you can do the same thing with only the block level comments.
Commented:
/*/
min-height:100px;
/**/
Uncommented:
/**/
min-height:100px;
/**/
You are probably talking to your screen right now, saying, “hey Jason, that commenting trick is marginally useful at best.” I can only respond by reminding you that every keystroke is a beautiful and unique snowflake that must be cherished and never wasted.
A neat commenting trick – Link



There is also a trick for ‘toggling’ comments, a single character can comment out one piece of code, and uncomment another:
/*
inside_comment();
/*/
outside_comment();
//*/
//*
outside_comment();
/*/
inside_comment();
//*/
If you’re in C or C++, use the preprocessor instead, like this
#if 0
if ( foo == bar )
{
dosomething();
return();
}
#endif
Changing the 0 to a 1 uncomments. Bonus, you don’t have to worry if there is an existing /**/ comment block in the code you’re commenting out. Double bonus, you can nest #if statements.
ifdef’s are way better for removing code because they always work, even if you are removing code that has comments in it
I sometimes put something like this while writing css files:
/* *
* { outline: 1px solid red; }
/* */
a.
I used to do almost exactly the same thing, depending on syntax highlighting to reveal the comments.
I do occasionally but almost every other time I use #ifdefs. Much long but MUCH more formal and it allows me to see the code that’s being hidden in the syntax highlighting – or conversely, if someone’s reviewing my code and doesn’t have syntax highlighting, the fact that those lines of code are not being compiled is far more obvious with the #ifdefs.
You know, quickly toggling CSS comments (with their damn C-style comments only) has always driven me crazy. This is a great idea.
It may be neat for a while, but when you return to your code in 6 months, you’ll find that the code is now less readable.
You could also use the blockcomment plugin for vim. Admittedly, it’s a little more than a single character (select block + x and same to uncomment)
If you need to put documentation, liscence, or other rather uniform (i.e. you want to script their insertion) headers on something written in scheme and C you can do something like:
;;/*
;; Commentary here
;;*/
and have only one script. Depending on compiler settings the C compiler might whine about empty statements, but there’s really no way arround that one. This way you only need one headerify script.
FYI, the Lua language has this feature by design – with “–[[" on the opening line and "--]]” on the closing line. To disable the comment, insert a space on the first line, i.e. change it to “– [[“.
See http://www.lua.org/manual/5.1/manual.html#2.1
Use an editor where you can just toggle in and toggle out of comments? Textmate for example.
I’ve used
/*/
Old Version
/*/
New version
/**/
in the past, which can be toggle between the two blocks with an extra * in the top line.
I use this frequently:
#if 1
// New code here
dosomethingelse();
#else
// old code here
dosomething();
#endif
Changing the 1 to a 0 allows you to quickly switch between the old and new code. If you’re making multiple changes, just do:
#define NEW_CODE 1
#if NEW_CODE
#else
#endif
This allows flipping multiple blocks between old and new with a single change.
I wanted to post about the comment toggling but Twan and Robin both beat me to it! It’s funny to see how many people have discovered and use that little trick.
If you want to read this in its original form (from 8 years ago, no less) and lots of other C tricks, then head over to http://www.gamedev.net/reference/articles/article1239.asp
Welcome to visit Coach factory outlet store online! We offer diverse Coach outlet products as Coach bags, Coach wallets, Coach purses, shoes, jewelry, sunglasses etc, at promotional price in Coach outlet Online. The styles include lots of popular collections such as Coach kristin, Coach madison, Coach hampton, Coach poppy etc…… Coach is a leading American designer and maker of luxury lifestyle handbags and accessories. There is no doubt that here Coach outlet store is the exact place you should visit. This Coach factory outlet provides various Fashion Coach Bags to customers. We guarantee that all the coach outlet bags offered at our website shop have high quality.If you want to purchase Coach Outlet Store, please feel free to contact us here.All are 70% off. I ensure we can satisfy you needs at Coach Factory Outlet. What you need to do is to visit our Coach Outlet online shop immediately, and get the products that you long for back to your home. Click Coach Purse to find the best buy in this Coach outlet online store !
// What's Trending
Raspberry Pi Design Contest
Dad Builds Son an Iron Man Arc Reactor
Seventeen Sneaky Secret Hides
What to do with an 800 Lb Eucalyptus Slab
Teardrop Camper Trailer
10 Things to Connect to Your Raspberry Pi
Lego Steampunk Strandbeest Model
80-Ruxpin Art Installation
// What's Shared
A better way to slice a pumpkin
DIY Nerf Darts
100 Dollar Store Organization Ideas for Craft Rooms and Beyond
In the Maker Shed: Minty Boost USB Charger
Mad’s Mouse House
Lace Princess Crowns
I Have a (Puzzling) Dream
Play the Rings of a Tree Trunk Like a Record
// Most Commented
Plastic Bags into Plastic Blocks: Revisited
10 Hot New Boards to Watch
Why the Maker Movement is Here to Stay
MAKE Asks: Roadside Hacks
Ten Tips for Hand Saws and Blades
DIY Hacks & How To’s: Convert From Battery Power to AC
How To Make Your Own Laundry Detergent
What to do with an 800 Lb Eucalyptus Slab
Trending Topics
Get our Newsletters
About Maker Media
Subscribe
to MAKE!
Get the print and digital versions when you subscribe