Vim Tips Wiki
m (Added categories, clean up)
m (More clean up)
Line 22: Line 22:
   
 
== Comments ==
 
== Comments ==
Clever~ :-)
 
 
nospam--AT--nospam.org
 
, May 23, 2002 3:05
 
----
 
 
You could also modify this just a bit and make it a vmap, that way you
 
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).
 
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>
+
vmap ;' '<O<Esc>i#if 0<Esc>'>o<Esc>i#endif<Esc>
   
 
pottsdl--AT--netzero.net
 
pottsdl--AT--netzero.net
Line 45: Line 40:
 
----
 
----
 
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'.
 
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'.
 
   
 
svickers--AT--iteamsolutions-dot-com
 
svickers--AT--iteamsolutions-dot-com

Revision as of 10:18, 21 July 2007

Previous TipNext Tip

Tip: #249 - Insert if/endif around block of code

Created: May 22, 2002 17:58 Complexity: basic Author: David Thompson Version: 5.7 Karma: 13/9 Imported from: Tip#249

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 dat1965@yahoo.com

Comments

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>

pottsdl--AT--netzero.net , May 23, 2002 4:59


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

nospam2--AT--nospam.org , May 23, 2002 14:26


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

svickers--AT--iteamsolutions-dot-com , October 18, 2002 11:06