Article View: net.text
Article #354correction to yesterday's item on net.text bugs
From: gbergman
Date: Mon, 29 Oct 1984 01:18
Date: Mon, 29 Oct 1984 01:18
63 lines
3355 bytes
3355 bytes
Apologies for saying that ^V^V^V^M would not give the desired effect
of inserting a newline in a vi :map! command. It will, though
^V^M will do it as well. Here is the general scheme as well as I've
been able to figure it out:
in :map! escapes special
command, interpretation
typing: at the level: of characters:
^V writing command your delete & kill; ab.t;
line ^W, ^V, ^M, ^[, ^\
^V^V processing of space, tab, |, ^V
command
^V^V^V^V insertion your delete & kill; ab.t;
into text ^W, ^V, ^M, ^[, ^\
(here by "ab.t" I mean "abbreviation terminator", for example, any
nonalphanumeric character following an alphanumeric abbreviation.)
So before ^M, a single ^V will escape the interpretation of ^M
as carriage-return at the level of writing the command, i.e. will
allow you to include it in the command; an additional two ^V's
(contrary to what I said) will have no effect, since ^M does not
seem to be "special" at the command processing level; and it takes
four ^V's to escape its special interpretation at the level of
insertion into text. So with either 1 or 3 ^V's, it will be
included in the map! command, and produce the effect of a carriage
return in the inserted text, while with 5 or 7 ^V's it will produce
an inserted ^M in the text.
For constrast, consider the "substitute" command (with "magic"
set):
in :s escapes special
command, interpretation
typing: at the level: of characters:
^V writing command your delete & kill; ab.t;
line ^W, ^V, ^M, ^[, ^\
_
| pattern delimiter, \, ., ^, $, ~, [
\ -| [string] ^, \, -, ]
|_ replacement delimiter, \, &, ~, ^M
(Here by "delimiter" I mean the character you type immediately
after the s, typically /.) So if you type in s/x/^V^M, then you will
see this as s/x/^M, and when you type the final carriage return, x
in your text will be replaced by a newline, while if you type in
s/x/\^V^M you will see s/x/\^M, and when you hit another carriage
return, x will be replaced by an inserted ^M.
Apologies again for having sent that "correction" without testing
or thinking through what I was saying.
(The above is not, of course, complete. I haven't spoken of the
impossibility of escaping ^@ or linefeed, the special case of \ escaping
^H in text, the positive effect of \ in various "magic" combinations,
what happens if your map!ing includes an ^[... . And since much of the
above was discovered by trial and error, I'm sure there is much more to
be learned.)
George Bergman
Math, UC Berkeley 94720 USA
...!ucbvax!gbergman%cartan
Technical Details
Message-ID:
<591@ucbtopaz.CC.Berkeley.ARPA>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!bonnie!akgua!sdcsvax!dcdwest!ittvax!decvax!ucbvax!ucbtopaz!gbergmanReferences:
<262@lzmi.UUCP> <590@ucbtopaz.CC.Berkeley.ARPA>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83 v7 ucbtopaz-1.8; site ucbtopaz.CC.Berkeley.ARPA Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!bonnie!akgua!sdcsvax!dcdwest!ittvax!decvax!ucbvax!ucbtopaz!gbergman From: gbergman@ucbtopaz.CC.Berkeley.ARPA Newsgroups: net.text Subject: correction to yesterday's item on net.text bugs Message-ID: <591@ucbtopaz.CC.Berkeley.ARPA> Date: Sun, 28-Oct-84 20:18:38 EST Article-I.D.: ucbtopaz.591 Posted: Sun Oct 28 20:18:38 1984 Date-Received: Tue, 30-Oct-84 01:29:58 EST References: <262@lzmi.UUCP> <590@ucbtopaz.CC.Berkeley.ARPA> Organization: Univ. of Calif., Berkeley CA USA Lines: 63