From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Charles C. Berry" Subject: Re: export code with backslashes Date: Mon, 16 Mar 2015 15:28:03 -0700 Message-ID: References: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47173) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YXdUZ-0000Fu-6l for emacs-orgmode@gnu.org; Mon, 16 Mar 2015 18:28:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YXdUV-0007PM-5m for emacs-orgmode@gnu.org; Mon, 16 Mar 2015 18:28:11 -0400 Received: from iport-bcv1-out.ucsd.edu ([132.239.0.119]:31662) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YXdUU-0007OY-TI for emacs-orgmode@gnu.org; Mon, 16 Mar 2015 18:28:07 -0400 In-Reply-To: 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: hymie! Cc: emacs-orgmode@gnu.org On Mon, 16 Mar 2015, hymie! wrote: > Greetings. > > I'm only asking this question because it seems that Orgmode can do > anything, although I admit that what I'm asking for is probably outside > the normal scope. > > I have snips of code in my org files, denoted as ~code~. I prefer ~code~ to > BEGIN_SRC blocks, because I don't like the big grey text boxes in my > exported documents. Sometimes my code is very long and includes long lists > of options and arguments and such; for example: > > ~useradd -U -G wheel -p > '$6$wcMRrkcdGeNHLT5b$password0ISmGZSsILOyV/WJnpassword//' > accountname~ > > This is all one line. > > Then I use C-c C-e t A to "export" this into an ascii buffer, the sole > reason being to remove the tilde characters and provide me an easy > cut-n-paste option. I end up with this: > > useradd -U -G wheel -p > '$6$wcMRrkcdGeNHLT5b$password0ISmGZSsILOyV/WJnpassword//' > > accountname > > I would really really really like it if, in addition to the newlines that > are added, a backslash could be added as well. "Hey, this is a line > enclosed in tildes. I'm going to add line-breaks. Each line-break except > for the one at the end needs a backslash" > > useradd -U -G wheel -p \ > '$6$wcMRrkcdGeNHLT5b$password0ISmGZSsILOyV/WJnpassword//' \ > accountname > > Is such a thing possible? Yes. You can add a filter, see (info "(org) Advanced configuration") The line breaks come _after_ the code is processed. So you need to make the line breaks happen before you know can replace them. Try: #+BEGIN_SRC emacs-lisp (defun org-export-ascii-filter-code (text back-end info) "Replace `\\n' with `\\' in ascii code." (if (eq back-end 'ascii) (replace-regexp-in-string "\n" "\\\n" (org-babel-chomp (org-export-string-as text 'ascii t)) nil t) text)) (add-to-list 'org-export-filter-code-functions 'org-export-ascii-filter-code) #+END_SRC with ascii export. When I run this on your example, I get only one line break, but it is preceeded by a backslash. Naturally, you will need to adapt this up for other backends as a single backslash might not be what is wanted. HTH, Chuck