From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: Converting paragraph to plain lis Date: Wed, 16 Dec 2015 06:38:51 -0500 Message-ID: References: <542BCA5A-1AC1-454B-8292-C6F196BB57BB@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9AQ9-00084z-UW for emacs-orgmode@gnu.org; Wed, 16 Dec 2015 06:39:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a9AQ4-0004kY-PX for emacs-orgmode@gnu.org; Wed, 16 Dec 2015 06:39:01 -0500 Received: from mail-qg0-x22e.google.com ([2607:f8b0:400d:c04::22e]:36660) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9AQ4-0004kU-LJ for emacs-orgmode@gnu.org; Wed, 16 Dec 2015 06:38:56 -0500 Received: by mail-qg0-x22e.google.com with SMTP id 103so31184381qgi.3 for ; Wed, 16 Dec 2015 03:38:56 -0800 (PST) In-reply-to: <542BCA5A-1AC1-454B-8292-C6F196BB57BB@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: marvin doyley Cc: emacs-orgmode@gnu.org Here is a solution that works on your paragraph. #+BEGIN_SRC emacs-lisp (defun explode-paragraph () (interactive) (let (start end) ;; narrow to paragraph (backward-paragraph) (forward-line) (setq start (point)) (forward-paragraph) (previous-line) (setq end (point)) ;; now move by sentence, insert number and \n. at the end go to beginning ;; insert a number and use C-cC-c to renumber the list. (save-restriction (narrow-to-region start end) (goto-char (point-min)) (while (< (point) (point-max)) (forward-sentence) (insert "\n1. ")) (goto-char (point-min)) (insert "1. ") (org-ctrl-c-ctrl-c)))) (defun unfill-paragraph () "Unfill paragraph at or after point." (interactive "*") (let ((fill-column most-positive-fixnum)) (fill-paragraph nil (region-active-p)))) (defun list-to-paragraph () "Convert list at point to a paragraph." (interactive) ;; make sure we are at the beginning of the list (beginning-of-line) (let ((element (org-element-context)) contents) (when (eq 'item (car element)) (setq element (org-element-property :parent (org-element-context))) (goto-char (org-element-property :begin element))) ;; collect each sentence, minus the numbers. (setq contents (loop for node in (org-element-property :structure element) collect ;; remove number and space (replace-regexp-in-string (regexp-quote (nth 2 node)) "" (buffer-substring (nth 0 node) (nth 6 node))))) ;; replace the list, and then unfill the paragraph. (setf (buffer-substring (org-element-property :begin element) (- (org-element-property :end element) 1)) (mapconcat 'identity contents "")) (goto-char (org-element-property :begin element)) (unfill-paragraph))) #+END_SRC marvin doyley writes: > Hi there, > > Does anybody know how to convert a paragraph to a plain list, and vice versa. For example, I would like to convert > > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse viverra consectetur euismod. Donec non tempor turpis. > > to > > 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. > 2. Suspendisse viverra consectetur euismod. > 3. Donec non tempor turpis. > > In one key stroke, this would speed up my brain storming process. > > Thanks, > M -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu