Carl Lowenstein wrote:
> On Jan 25, 2008 3:28 PM, Ralph Shumaker <[EMAIL PROTECTED]> wrote:
>> Carl Lowenstein wrote:
>>> On Jan 25, 2008 2:40 PM, James G. Sack (jim) <[EMAIL PROTECTED]> wrote:
>>>
>>>> Carl Lowenstein wrote:
>>>>
>>>>> Perhaps the command you are looking for is "g!" global exclude.
>>>>>
>>>>> :%g!/pattern/action             # perform action on all lines not
>>>>> matching pattern
>>>>>                                        # action can include another
>>>>> substitution match
>>>>>                                        #  and other specifications
>>>>> like g)lobal and c)onfirm
>>>>> :%g!/pattern/s/pattern2/new thing/gc
>>>>>
>>>> Wow another vim capability I never encountered.
>>>>
>>>> Now, I wonder if there is any way to get more occurrences of the adj/adv
>>>>  "global" into a vim command. This one has 3 does it not?
>>>>
>>>>
>>> There are only two.  The first g is "global within the specified
>>> range", the second one is "global within the line".  Vi/Ex have been
>>> like this since forever.  Actually I find this usage in 6th Edition
>>> Unix ed(I) dated 1973.  So blame it on Ken Thompson not Bill Joy.
>>>
>>> Well, OK the "%" also states that the specified range is the whole file.
>>>
>>>     carl
>>>
>> I had to fuss with it a little, but ended up with:
>> :%g!/<br>$\|^[$%]$/s/$/<br>/gc
>>
>> That worked perfectly.  And with command history, I don't even have to
>> re-type it.
>>
>> What I tried first was:
>> :%g!/<br>$/g!/^[$%]$/s/$/<br>/gc
>>
>> Apparently, you can't use the g! twice (or I didn't format it right).
> 
> Yes.  Unfortunately, the historical development of this editor left it
> with two different "g" commands.
> "g" select lines globally within the range.  This one can be negated.
> "g" perform operations globally within the line.
> 
> As sort of pointed out by Jim Sack, if the region of interest is all
> lines, you don't need both the initial "%" and the "g" since "%" ==
> all lines is implied by an otherwise unspecified "g".
> 
> The "g!" inversion of the selection was originally "v" but this seems
> to have been redefined to be something else in vim.  At least
> according to my quick look through the _Vi Improved_ book.
> 

Evidently 'v' is still in there. Try
 :help global
for a discussion of 'g[lobal]' , 'g[lobal]!' and 'v[global]'

Regards,
..jim


-- 
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to