Path: utzoo!attcan!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!hplabs!hpfcdc!hpfcdq!benji From: benji@hpfcdq.HP.COM (Jeff Benjamin) Newsgroups: comp.unix.questions Subject: Re: Vi Message-ID: <8170004@hpfcdq.HP.COM> Date: 7 Jun 89 20:42:35 GMT References: <19890@adm.BRL.MIL> Organization: Hewlett-Packard - Fort Collins, CO Lines: 46 > Can Vi reformat a paragraph, justifying it properly(left, right, or center- > ed)? I hate editing text when I have to rejustify the right margin by hand > after deleting or adding to a line at the top of a paragraph. If you answer the question literally, the answer is no: vi cannot reformat a paragraph. However, vi provides the capability to use another system program to do the work for it, by using the ! command. This command allows you to pipe text from vi through a shell command. The command to use in this case is adjust(1). See the man page for complete usage. The vi syntax you would use is "![count]" where count and text_object are some way of specifying what portion of text is to be piped to shell_command(s). For example, "2j" as a text_object means, "this line and the following two lines," "$" means, "from here to the end of the file," and "3}" means, "from here to the second following end of paragraph." Use vi movement commands to make your text_objects. So the sequence you would use to adjust your paragraph: {!}adjust [adjust_options] This means: {: Move to the beginning of current paragraph (this is just in preparation for the actual ! command). !: Get ready to use a shell interpreter. Note that you will not see the "!" at the bottom of the screen until you have entered a text_object. }: From here to the end of the current paragraph (at this point, you see "!" on the bottom line of your screen). adjust: pipe it all through adjust and replace what's currently there. You can map this all to one keystroke in your .exrc (this maps it to control-A): :map {!}adjust [adjust_options] The same capability can be used to run your file through sort, pr, or whatever, without ever leaving vi. Have fun. ----- Jeff Benjamin {ucbvax,hplabs}!hpfcla!benji Graphics Technology Division benji%hpfcla@hplabs.HP.COM Hewlett Packard Co. Fort Collins, Colorado