Loading ...
Sorry, an error occurred while loading the content.

Re: padding lines to 80 characters [SOLVED]

Expand Messages
  • John Aldridge
    ... Actually, the caret (^) shouldn t be necessary, but I think it clarifies the regex. ~ ~ ~ John R. Aldridge, Jr.
    Message 1 of 4 , Sep 1, 2003
    • 0 Attachment
      The old vi way would be:

      >:%s/$/<80 or more spaces go here>/g

      :%s/^.\{80\}/&/

      Actually, the caret (^) shouldn't be necessary,
      but I think it clarifies the regex.

      ~
      ~
      ~
      "John R. Aldridge, Jr."

      At 03:30 09-01-2003, Denis Perelyubskiy wrote:

      >Hi, Denis. Nice talking to you :)
      >
      >Don't know if there is a better solution, but here
      >is what works for me:
      >
      >:%s/$/<80 or more spaces go here>/g
      >:%s/:%s/\%80c *$//g
      >
      >denis
      >
      >ps. sorry for the spam. it did not occur to me that it was
      >this simple before posting :(
      >
      >On Sun, 31 Aug 2003 22:39:14 -0800,
      >"Denis Perelyubskiy" <lists@...> said:
      > > hello,
      > >
      > > is it possible to padd every line, if its length is
      > > smaller then 80 characters, to 80 characters with
      > > spaces? and if so, how?
      > >
      > > thanks,
      > >
      > > denis
      > > --
      > > // mailto: Denis Perelyubskiy <lists at overwhelmTAKECAPITALSOUT dot net>
      > > // icq : 12359698
      >--
      >// mailto: Denis Perelyubskiy <lists at overwhelmTAKECAPITALSOUT dot net>
      >// icq : 12359698
    • Antony Scriven
      ... Interesting quoting style! Anyway, that just replaces 80 chars with itself. ?? Maybe a naughty program somewhere trimmed them. The ^ isn t necessary, but I
      Message 2 of 4 , Sep 1, 2003
      • 0 Attachment
        John Aldridge wrote:

        > The old vi way [for padding a line] would be:
        >
        > >:%s/$/<80 or more spaces go here>/g
        >
        > :%s/^.\{80\}/&/
        >
        > Actually, the caret (^) shouldn't be necessary,
        > but I think it clarifies the regex.

        Interesting quoting style! Anyway, that just replaces 80
        chars with itself. ?? Maybe a naughty program somewhere
        trimmed them. The ^ isn't necessary, but I always throw them
        in too. If you really want a vi-compatible way to pad lines
        to 80 chars, try this.

        :%!expand^Mo^[S^[80a.^[0i:g/^.\{0,80\}$/s/.*/&^[A/|s/^\(.\{80\}\).*/\1^["yyy@y

        You need to replace ^M with a real ctrl-M and all ^[s with
        real <Esc>s. Then suck the line into a register and execute
        it: "xyy@x You may need to :redraw afterwards. The `S' is to
        overcome :se ai if you try it in in Vim.

        expand removes tabs (assuming ts=8) otherwise the padding
        can look like it's wrong, even though it will be to 80 real
        characters, not screen columns. If you have control
        characters in lines it will still look messy however. I've
        used dots not spaces in the example so you can see the
        result. Lines longer than 80 are untouched. I could really
        have done it for lines longer than 79 chars, but never mind.

        There's quite a lot you can do with standard vi. Using vim's
        features, however, makes this sort of thing much more robust.
        That's obvious; I don't know why I said that.

        Anyway the OPs method is a good one.

        Antony (go vi, go!)
      Your message has been successfully submitted and would be delivered to recipients shortly.