Den fre 16 apr. 2021 19:27Stan Brown <the_stan_br...@fastmail.fm> skrev:

> On 2021-04-16 09:42, Julius Hamilton wrote:
>
> > At the beginning of a paragraph which has been separated mid-sentence
> > onto separate lines, how might I automate the process of calling CTRL-J
> > until all the separated lines in the paragraph have been combined into
> > one line? Will Vim be able to call CTRL-J until a condition is met, for
> > example, that the single line being built ends in a sentence (a period),
> > or until the next line is a blank newline?
>

I have the following in my .vimrc :

" Command to join lines in all paragraphs in a range/the whole buffer (Jp
== join paras)
:com! -range=% Jp <line>,<line>g/^\s*\S/ .,/^\s*$/-join

" Explanation:
"  :g/^\s*\S/ " Go to the first in each sequence of non-blank lines
          " Actually every non-blank line but the result is the same here!
"  .,/^\s*$/- " "Select" all lines from the current to the one before the
next blank line
"  join  " Join the "selected" lines

" Mapping to join lines in all paras in the buffer
:nnor Jp Go<esc>ggVG:Jp<cr>

" Explanation:
"  G " Go to the last line in the buffer
"  o<esc> " Add a blank line below the last so we are sure there is one!
"  gg " Go to the first line in the buffer
"  V  " Visually select the (first) line
"  G  " Extend the selection to the last line in the buffer
"  :Jp<cr> " Execute the command defined above

" Mapping to execute the :Jp command over the current visual selection
:vnor Jp :Jp<cr>

HTH

/bpj


> The short answer is go to the top of the paragraph and press Shift+V,
> then to the bottom and press Shift+J (not Ctrl+J). You can automate this
> further by writing a function that would figure out the top and bottom
> of the paragraph via whatever logic you build in. See :help :function.
>
> > Then, how might I automate the process of entering N newlines between
> > every sentence? I.e., automating pressing ), i, enter a few times, then
> > escape, for multiple sentences? I could create a shortcut to execute
> > these commands and call it myself, or it could also repeat until the
> > conditions above. How would I do either?
>
> Example, for N = 4:
> :imap <F9> <CR><CR><CR><CR><Esc>
> Type the actual < and > characters as shown. To use this, at the end of
> typing your paragraph do not press Esc but press F9 (or whatever key you
> mapped).
>
> If you sometimes want to insert N blank lines in already-written text,
> add this:
> :map <F9> A<F9>
> The previous map was active in insert mode; this one is active in normal
> mode. It moves to the end of the current line ("A") in insert mode and
> then appends the insert-mode version of F9.
>
> Once you've verified that these work as you wish, you can put them in
> your $VIM/_vimrc file so that they will be executed whenever you start Vim.
>
> > Also, how do I go back to where the cursor previously was, in case I
> > accidentally move it?
>
> `` or ''
> (One goes back to the _line_) where you were; the other goes back to the
> exact position within the line.)
>
> --
> Stan Brown
> Tehachapi, CA, USA
> https://BrownMath.com
> https://OakRoadSystems.com
>
> --
> --
> 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
>
> ---
> You received this message because you are subscribed to the Google Groups
> "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to vim_use+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/vim_use/d9ee4264-13cb-eef7-be14-e0e68f9df155%40fastmail.fm
> .
>

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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_use+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/CADAJKhA-3Dmp1O7XcGsJ0BPkivshP%3DWt47_nvP_sJdPwN2j64Q%40mail.gmail.com.

Reply via email to