docs: def format_multiple_paragraph_sentences(text, debug=False, **kwargs):
      """
      FIXME: funky things happen when multiple newlines in the middle of
      paragraphs
  
      CommandLine:
          python ~/local/vim/rc/pyvim_funcs.py --test-format_multiple_paragraph_sentences
  
      CommandLine:
          python -m utool.util_str --exec-format_multiple_paragraph_sentences --show
  
      Example:
          >>> # DISABLE_DOCTEST
          >>> from utool.util_str import *  # NOQA
          >>> import os, sys
          >>> #sys.path.append(os.path.expanduser('~/local/vim/rc'))
          >>> text = testdata_text(2)
          >>> formated_text = format_multiple_paragraph_sentences(text, debug=True)
          >>> print('+--- Text ---')
          >>> print(text)
          >>> print('+--- Formated Text ---')
          >>> print(formated_text)
          >>> print('L_____')
      """
      debug = _rectify_countdown_or_bool(debug)
      import utool as ut
      # Hack
      text = re.sub('^ *$', '', text, flags=re.MULTILINE)
      if debug:
          ut.colorprint(msgblock('[fmt] text', text), 'yellow')
      #print(text.replace(' ', '_'))
      #ut.util_dbg.COLORED_EXCEPTIONS = False
      # Patterns that define separations between paragraphs in latex
      pattern_list = [
          '\n\n\n*',     # newlines
          #'\n\n*$',     # newlines
          #'^\n\n*',     # newlines
          #'\n\n*',     # newlines
          '\n? *%.*\n',  # comments
  
          # paragraph commands
          '\n? *\\\\paragraph{[^}]*}\n',
          # '\n? *\\\\item \\\\textbf{[^}]*}: *\n',
          '\n? *\\\\item \\\\textbf{[^:]*}: *\n',
          '\n? *\\\\section{[^}]*}\n',
          '\n? *\\\\section{[^}]*}\\\\label{[^}]*}\n',
          '\n? *\\\\section{[^}]*}\\~?\\\\label{[^}]*}\n',
  
          '\n? *\\\\subsection{[^}]*}\\~?\\\\label{[^}]*}\n',
          '\n? *\\\\subsection{[^~]*}\\~?\\\\label{[^}]*}\n',
          '\n? *\\\\subsection{[^}]*}\n',
  
          '\n? *\\\\subsubsection{[^~]*}\\~?\\\\label{[^}]*}\n',
          '\n? *\\\\subsubsection{[^}]*}\n',
  
          '\n----*\n',
          '##* .*\n',
  
          '\\.}\n',
          '\\?}\n',
  
          '\n? *\\\\newcommand{[^}]*}.*\n',
          # generic multiline commands with text inside (like devcomment)
          '\n? *\\\\[a-zA-Z]+{ *\n',
  
          '\n? *\\\\begin{[^}]*}\n',
          '\n? *\\\\item *\n',
          '\n? *\\\\noindent *\n',
          '\n? *\\\\ImageCommand[^}]*}[^}]*}{\n',
          '\n? *\\\\end{[^}]*}\n?',
          '\n}{',
  
          # docstr stuff
          '\n' + ut.TRIPLE_DOUBLE_QUOTE + '\n',
          '\n? *Args: *\n',
          #'\n? [A-Za-z_]*[0-9A-Za-z_]* (.*?) *:',
      ]
      pattern = '|'.join(['(%s)' % (pat,) for pat in pattern_list])
      # break into paragraph blocks
      block_list, separators = regex_reconstruct_split(pattern, text,
                                                       debug=False)
  
      collapse_pos_list = []
      # Dont format things within certain block types
      _iter = ut.iter_window([''] + separators + [''], 2)
      for count, (block, window) in enumerate(zip(block_list, _iter)):
          if (window[0].strip() == r'\begin{comment}' and
               window[1].strip() == r'\end{comment}'):
              collapse_pos_list.append(count)
  
      tofmt_block_list = block_list[:]
  
      collapse_pos_list = sorted(collapse_pos_list)[::-1]
      for pos in collapse_pos_list:
          collapsed_sep = (separators[pos - 1] + tofmt_block_list[pos] +
                           separators[pos])
          separators[pos - 1] = collapsed_sep
          del separators[pos]
          del tofmt_block_list[pos]
  
      if debug:
          ut.colorprint('[fmt] tofmt_block_list = ' +
                        ut.repr3(tofmt_block_list), 'white')
  
      # apply formatting
      #if debug:
      #    ut.colorprint('--- FORMAT SENTENCE --- ', 'white')
      formated_block_list = []
      for block in tofmt_block_list:
          fmtblock = format_single_paragraph_sentences(
              block, debug=debug, **kwargs)
          formated_block_list.append(fmtblock)
          #ut.colorprint('---------- ', 'white')
      #if debug:
      #    ut.colorprint('--- / FORMAT SENTENCE --- ', 'white')
      rejoined_list = list(ut.interleave((formated_block_list, separators)))
      if debug:
          ut.colorprint('[fmt] formated_block_list = ' +
                        ut.repr3(formated_block_list), 'turquoise')
          #print(rejoined_list)
      formated_text = ''.join(rejoined_list)
      #ut.colorprint(formated_text.replace(' ', '_'), 'red')
      return formated_text