On 11/01/10 07:40, Joan Miquel Torres Rigo wrote:
> 2010/11/1 Tim Chase<v...@tim.thechases.com>:
  :v/\%40c./d

("if there's a character at position 40, don't delete this
row; otherwise, delete it")

Then you will also remove rows with 61 to 80 characters.

But the strategy is probably good. (I'm not fully expert with
vim's regular expressions yet and I don't know the meaning of
'%' in this context).

Actually, the problem is the reverse -- it fails to delete lines > 80 characters. The \%40c is an atom that matches at column 40

  :help /\%c

so any line that doesn't have a character at position 40 (lines <40 chars) will be deleted. (note that I don't anchor the column-position to the end-of-line) I'd usually[1] do this as a 2-pass, taking out those >80 in the 2nd pass:

  :v/\%40c./d  " delete anything shorter than 40
  :g/\%81c./d  " delete anything longer than 80

I might have some fence-posting errors in there, so 40 might need to be 39 or 41 and 81 might also be +/- 1, but the logic still holds.

-tim


[1]
Yes, I've had to do the same thing as the OP on several occasions with various shorter/longer-than thresholds; usually in column-delimited files with garbage before/after the actual data.

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to