🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.editors
Article #2963

Re: VI Macros, Or What Is Really Going On Here?

#2963
From: Hans Mulder
Date: Tue, 05 Jan 1993 11:19
71 lines
2408 bytes
In <1992Dec30.182744.9053@telesciences.com> ciacovel@telesciences.com (Chris D Iacovelli) writes:

>Dear VI users,

>I have one macro which centers text lines,
> i.e.
>map [c :s/^[ ^I]*//^M$maKV{{\q
>          ||       ||
>          ||       A ^V'ed ^M
>          ||
>          Not a ^V'ed ESC

>I have another macro to stop formatting comments a la c-style,
>i.e.
>map! */ ^[:so ~/.CCOM.OFF^["ap$s/ ^[A
>        ||               ||       ||
>        ==============|=============
>                ^V'ed ESC's

>The above macros work fine if they are in seperate .exrc files.
>However, when they are incorporated into the same .exrc file they don't
>work,
> i.e. when I execute the [c macro the */ macro is called and I get an
>      ":input read error".

>I believe that the */ of the search string in the [c macro is being
>replaced with the contents of the */ map.

>Does this mean that during command mode that VI actually is in single
>line insert mode, insert into a command line buffer? or am I doing
>something wrong in my macro defines?

Yes, that's what happens.

There are at least four things you can do about it:

1. Insert enough control-Vs:

map [c :s/^[ ^I]^V^V*//^M$maKV{{\q
          ||    ||||   ||
          ||    ||||   A ^V'ed ^M
          ||    ||||
          ||    Type 4 control-Vs, to get two in the .exrc, to get one
          ||    in the rhs of the map, to get the * properly quoted.
          ||
          Not a ^V'ed ESC

2. Leave the trailing /s off the :s command:

map [c :s/^[ ^I]*^M$maKV{{\q
          ||     ||
          ||     A ^V'ed ^M
          ||
          Not a ^V'ed ESC

3. Use another separator, e.g.+:

map [c :s+^[ ^I]*++^M$maKV{{\q
          ||        ||
          ||        A ^V'ed ^M
          ||
          Not a ^V'ed ESC

4. Use vi mode commands:

map [c >>d0$maKV{{\q

--
Hope this helps,

Hans Mulder			hansm@cs.kun.nl
Technical Details
Message-ID: <C0DosB.4tz@sci.kun.nl>
Path: arc1-ca.pugleaf.net!sparky!uunet!pipex!bnr.co.uk!uknet!mcsun!sun4nl!sci.kun.nl!cs.kun.nl!hansm
References: <1992Dec30.182744.9053@telesciences.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!pipex!bnr.co.uk!uknet!mcsun!sun4nl!sci.kun.nl!cs.kun.nl!hansm
From: hansm@cs.kun.nl (Hans Mulder)
Newsgroups: comp.editors
Subject: Re: VI Macros, Or What Is Really Going On Here?
Message-ID: <C0DosB.4tz@sci.kun.nl>
Date: 5 Jan 93 11:19:22 GMT
References: <1992Dec30.182744.9053@telesciences.com>
Sender: news@sci.kun.nl (News owner)
Organization: University of Nijmegen, The Netherlands
Lines: 71
Nntp-Posting-Host: zeus.cs.kun.nl