On 06/19/2011 02:04 PM, ThG wrote:
I use Vim to write a book.
Each Vim line ended by a carriage return will be a paragraph of the
book. Thus a single Vim line (which is wrapped, e.g. with a 80
character screen in 10 screen lines) can end as a 15 line paragraph in
the book. But I have one problem : I want to make quotes of poetry,
such as (Coleridge RAM.2)

A couple ideas occur to me. The first side-steps your problem by using something more regularly-used in text-flow: separate your paragraphs by 2 newlines as you did in your email (one blank line between paragraphs). You can then choose some other scheme to number your lines (whether just getting a line-count or actually inserting line-numbers in the text). Something like

  :let cnt=0|g/\n\n\+/let cnt+=1
  :echo cnt

will tell you the number of double-breaks.

The only way I can think of is to type spaces to the end of the screen
line (e.g. 38 spaces for the first verse, 55 for the second, etc...),
which is both tedious and unable to cope with a 75 or 90 (whatever)
character screen…

This can be automated by selecting your poetic text and performing the following

:'<,'>s/$/\=repeat(' ', $COLUMNS-strlen(getline('.')))/|'<,'>-1s/\n

(all in one line) which right-pads each line with the missing number of spaces, and then (separated by the "|") joins the N-1 lines by removing the newlines from them. You might have to strip trailing spaces before doing the whole thing if you issue the command multiple times over the same section after editing.

How can I proceed ? I have heard of elastic tabstops ? Are they
necessary ? Are they available for Vim ?

I'm not sure what elastic tabstops are. I tried setting 'tabstop' to $COLUMNS with

  :let &ts=$COLUMNS

and then joining each line, internally separated by tabs, but the result bound the tab to the character before it rather than the character after it, awkwardly coming out as

The fair breeze blew, the white foam
flew, The furrow followed free; We were the first that ever burst Into that silent sea.

-tim




--
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