gosh, I was wrong!

you don't even need vim7 for that...

just visual, !sort -k 2 and that's it

the problem is that after that the block are no longer
separated by whitespaces and a BIG blank screen is showed but the
rerefences are ahead, in the bottom of the file... That's why I
thought vim was removing everything... it wasn't, it was just working
properly... you delete spaces and they are kept, as blank lines... the
size of the file is the same but you just have to look in the bottom!

A mere :%s/$/\r suffices then, as Tim said

vim is just great!

Pau

2007/1/5, Vim Visual <[EMAIL PROTECTED]>:
HI,

thanks for the answer.

If I try that the whole reference blocks are deleted... If I do it
after having selected them on visual mode, I get "Not an editor
command"

If you want to try yourself, the whole file is here

http://www.aei.mpg.de/~pau/biblio_TOT.bbl

vim version 7.0.42 here ...

??????

Thanks

Pau

2007/1/4, Tim Chase <[EMAIL PROTECTED]>:
> > I have a long bibliography file for a latex document and I must put
> > the references in order. Unfortunately the different authors have used
> > different styles, so that I have two blocks.
> > In the first block all references look like
> >
> > ------------------------------------------------------------
> > \bibitem[ {Aarseth}, 1999]{Aarseth99}{Aarseth}, S.~J. (1999).\newblock
> > {From NBODY1 to NBODY6: The Growth of an Industry}.\newblock {\em
> > PASP}, 111:1333--1346.
> > ----------------------------------------------------------
> >
> > (note that each entry is a single row)
> >
> > And in the second block I have
> >
> > ----------------------------------------------------------
> > \bibitem{stroeer06emri} Stroeer A, Gair J R and Vecchio A, 2006,
> > Proceedings of 6th LISA Symposium submitted, preprint gr-qc/0605227
> > ----------------------------------------------------------
> >
> > (idem, single rows)
>
> Well, if a few liberties can be taken, Vim7's sorting
> functionality offers a killer solution to this problem:
>
>         :%sort /\\bibitem[^{]*{\zs/
>
> Since each bib item is on its own line (and not overflowing to
> multiple lines), a simple sort at the "right" offset (as kindly
> found by the regexp) will do the trick.  In this case, the
> pattern is "start ("\zs") the sorting comparison after '\bibitem
> up through the first open-curly-bracket' ("\\bibitem[^{]*{")"
>
> (okay, now /that/ had some odd quoting and parenthesizing in it...)
>
> It does have the side effect that the block are no longer
> separated by whitespace, but this can then be rectified with
>
>         :%s/$/\r
>
> which will doublespace them again.
>
> Adjust the "%" for to be your desired range.
>
> > I have more than 200 references and I don't feel like doing this per hand!
>
>
> Hopefully this does the trick for you.  If not, drop a line to
> the list with the details of went gonzo (likely some precondition
> I'm missing).
>
> -tim
>
>
>

Reply via email to