brant@linc.cis.upenn.edu (Brant Cheikes) (07/17/88)
Problem: Abbreviations are expanded at all levels of vi. This has been reproduced in both System V vi and BSD vi (SVR2 and 4.3BSD respectively). Reproduce: Run vi, and set an abbreviation, say :ab foo FooBaz. Now insert some text, anytime you type "foo", it will be replaced by "FooBaz". This is fine. However, you can no longer ever search for the string "foo", nor edit a file called "foo"--in all cases, "foo" is expanded first to FooBaz. SO, is this a bug? Is there some way to search for abbreviation strings? If a bug, is there a fix? It seems to me that abbreviations should ONLY be expanded while in input mode. -- Brant Cheikes Department of Computer and Information Science ARPA: brant@linc.cis.upenn.edu, UUCP: {bpa,drexel}!manta!brant
levy@ttrdc.UUCP (Daniel R. Levy) (07/18/88)
In article <5473@super.upenn.edu>, brant@linc.cis.upenn.edu (Brant Cheikes) writes: # Problem: Abbreviations are expanded at all levels of vi. # This has been reproduced in both System V vi and BSD vi # (SVR2 and 4.3BSD respectively). # Reproduce: Run vi, and set an abbreviation, say :ab foo FooBaz. # Now insert some text, anytime you type "foo", it will be replaced # by "FooBaz". This is fine. However, you can no longer ever search # for the string "foo", nor edit a file called "foo"--in all cases, # "foo" is expanded first to FooBaz. # SO, is this a bug? Is there some way to search for abbreviation # strings? If a bug, is there a fix? It seems to me that abbreviations # should ONLY be expanded while in input mode. "Bug" is in the eye of the beholder, I guess, but yes there is a way to do what you want. Hide one of the characters of the abbreviation (except the first if it is a multi-character abbreviation) with a back-slash, e.g. even if you have done ":ab foo FooBaz", /f\oo/<RETURN> searches for "foo" and :vi f\oo<RETURN> edits file "foo" etc. -- |------------Dan Levy------------| THE OPINIONS EXPRESSED HEREIN ARE MINE ONLY | AT&T Data Systems Group | AND ARE NOT TO BE IMPUTED TO AT&T. | Skokie, Illinois | |-----Path: att!ttbcad!levy-----|
maart@cs.vu.nl (Maarten Litmaath) (07/20/88)
In article <5473@super.upenn.edu> brant@linc.cis.upenn.edu (Brant Cheikes) writes:
\Problem: Abbreviations are expanded at all levels of vi.
\This has been reproduced in both System V vi and BSD vi
\(SVR2 and 4.3BSD respectively).
\
\Reproduce: Run vi, and set an abbreviation, say :ab foo FooBaz.
\Now insert some text, anytime you type "foo", it will be replaced
\by "FooBaz". This is fine. However, you can no longer ever search
\for the string "foo", nor edit a file called "foo"--in all cases,
\"foo" is expanded first to FooBaz.
\
\SO, is this a bug? Is there some way to search for abbreviation
\strings? If a bug, is there a fix? It seems to me that abbreviations
\should ONLY be expanded while in input mode.
This is a bug indeed.
The same goes for 'map!'.
There are work-arounds however:
/foo^V.
and
/foo^V$
The first will find any occurrence of 'foo' not followed by \n,
the second will find foo at EOL.
The ^V is needed to escape the next 'breakpoint' char.
Edit next file:
:n foo^V ^J
--
I'd rather live in Russia |Maarten Litmaath @ Free U Amsterdam:
than in South-Africa... |maart@cs.vu.nl, mcvax!botter!ark!maart
ecl@mtgzy.att.com (Evelyn C. Leeper) (07/20/88)
In article <5473@super.upenn.edu> brant@linc.cis.upenn.edu (Brant Cheikes) writes: > Problem: Abbreviations are expanded at all levels of vi. This has been > reproduced in both System V vi and BSD vi (SVR2 and 4.3BSD respectively). > > Reproduce: Run vi, and set an abbreviation, say :ab foo FooBaz. Now insert > some text, anytime you type "foo", it will be replaced by "FooBaz". This is > fine. However, you can no longer ever search for the string "foo", nor edit a > file called "foo"--in all cases, "foo" is expanded first to FooBaz. > SO, is this a bug? Is there some way to search for abbreviation strings? If > a bug, is there a fix? It seems to me that abbreviations should ONLY be > expanded while in input mode. Whether or not it's a bug is a philsophical question. How to search for the string "foo" is with "/f.*oo". Evelyn C. Leeper 201-957-2070 UUCP: att!mtgzy!ecl or ecl@mtgzy.att.com ARPA: ecl%mtgzy@att.arpa
andy@mssx.UUCP (Andreas Pleschutznig) (07/22/88)
In article brant@linc.cis.upenn.edu (Brant Cheikes) writes: > Problem: Abbreviations are expanded at all levels of vi. > This has been reproduced in both System V vi and BSD vi > (SVR2 and 4.3BSD respectively). > > Reproduce: Run vi, and set an abbreviation, say :ab foo FooBaz. > Now insert some text, anytime you type "foo", it will be replaced > by "FooBaz". This is fine. However, you can no longer ever search > for the string "foo", nor edit a file called "foo"--in all cases, > "foo" is expanded first to FooBaz. > > SO, is this a bug? Is there some way to search for abbreviation > strings? If a bug, is there a fix? It seems to me that abbreviations > should ONLY be expanded while in input mode. > -- Well, I don't think this is really a bug in vi, because if you read the description of your system carefully, you will notice that there are certain char's like '\' to take the special meaning off. Just try the following vi test :ab x foo x x x You will notice, that the 'x' is translated to 'foo'. Now go up and do 'rx' at a pace you wish to -> Hmmm... The 'x' seems to be in the file without translation !!!. In the same way, you may edit then a file named 'x' by doing a line like ':e! \x', where the '\' takes off the special meaning of 'x'. Hope that helps. andy