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

16 Responses to Single character commenting

  1. Twan van Laarhoven on said:

    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();
    //*/

  2. Jujubee on said:

    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.

  3. Matt H on said:

    ifdef’s are way better for removing code because they always work, even if you are removing code that has comments in it

  4. I sometimes put something like this while writing css files:

    /* *
    * { outline: 1px solid red; }
    /* */

    a.

  5. Tom Ritchford on said:

    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.

  6. Michael on said:

    You know, quickly toggling CSS comments (with their damn C-style comments only) has always driven me crazy. This is a great idea.

  7. 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.

  8. Matthew on said:

    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)

  9. 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.

  10. Jean-Claude Wippler on said:

    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

  11. Use an editor where you can just toggle in and toggle out of comments? Textmate for example.

  12. Robin Message on said:

    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.

  13. Hiro Protagonist on said:

    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.

  14. Daniel McLaren on said:

    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.

  15. MIke Dugdale on said:

    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

  16. 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 !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

%d bloggers like this: