Vim logo vim online Vim Book Ad

basic Tip #249: C/C++: Quickly insert #if 0 - #endif around block of code

 tip karma   Rating 9/6, Viewed by 674 

created:   May 22, 2002 17:58      complexity:   basic
author:   David Thompson      as of Vim:   5.7

One of my favorite macros that I use in vim (and vi) inserts a #if 0 #endif sandwich
around a block of code.  I always map this to the 2 key sequence ;'  which is the
semi-colon followed by the single quote.  Look at your keyboard, you will notice
these keys are adjacent to one another.  I like this mapping because it's very fast,
my fingers easily roll from one key to the next, obviously YMMV.

To use this mapping, go to the line of code that you want the '#if 0' to be on, type
ma to mark this line with the marker a, then move to the line that should be last line
just above the '#endif' and press ;'

    " insert #if 0 - #endif around block of code
    map ;' mz'aO<Esc>i#if 0<Esc>'zo<Esc>i#endif<Esc>

--
David Thompson
[email protected]

 rate this tip  Life Changing Helpful Unfulfilling 

<<Auto-save the current buffer periodically. | One big window >>

Additional Notes

[email protected], May 23, 2002 3:05
Clever~ :-)
[email protected], May 23, 2002 4:59
You could also modify this just a bit and make it a vmap, that way you
wouldn't need to mark the beginning of the line set (though not vi compatible).

vmap ;' '<O<Esc>i#if 0<Esc>'>o<Esc>i#endif<Esc>
[email protected], May 23, 2002 14:26
1. What about removing '#if 0...' ? It should be easy to do.

2. I like to do this with a range argument as well - "3;'" in your case.

3. However, you get all this with various schemes for commenting/uncommenting code...
svickers@iteamsolutions-dot-com, October 18, 2002 11:06
A very handy tip indeed... I tweaked it a bit by using 0<C-D> (instead of <Esc>i) and made a version for Perl by replacing '#if 0' with '=pod' and '#endif' with '=cut'.
If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to [email protected] after searching the archive. Help Bram help Uganda.
SourceForge Logo