Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!hplabs!hpda!hpwala!hpavla!rowland From: rowland@hpavla.HP.COM (Fred Rowland) Newsgroups: comp.unix.wizards Subject: vi and sed questions Message-ID: <4370002@hpavla.HP.COM> Date: 8 Sep 89 12:09:27 GMT Organization: Hewlett-Packard Avondale Division Lines: 52 Two questions about editing; one about vi and one about sed! I've been using these programs for several years and have never been able to find answers. I'd appreciate help. vi question There are lots of neat things you can do by mapping a series of commands to a key (` is my favorite). If the command string ends with (Ctrl-V)(Return), you can hold the key down and load up some command buffer with multiple copies of the command string. The effect is that the command marches down through the file as you watch the action. But it's slow; far slower than an addressed or global action. But it's also versatile--you can accomplish things that can't be done using addressed or global stuff. Is there any way to "load up" a key with the command string and then execute it via an addressed or global command? Example: lastname firstname middlename @address@ ... can be changed to firstname middlename lastname @address@ ... by this key mapping: :map ` 0dwf$P(CTRL-V)(Return) Just start at line 1, hold ` down, and watch the fun. But there ought to be a better way. sed question The file used in the above example is a mail list which has to be converted into labels. I add three @ symbols to the end of each line, then convert all of them to newlines. I can do this in vi but I get substitution overflows as the file grows considerably in size. I would prefer to use sed, but how do you tell sed to split a line (generate a newline)? I've tried various combinations of \(Return), \n, CTRL-V, and such but nothing works. I EVEN READ THE MANUAL! It told me to use \n and gave an example. It didn't work. This has to be possible, but how? Thanks, Fred (perplexed) Rowland Hewlett-Packard Avondale Division