From: Ilya Shlyakhter <ilya_shl@alum.mit.edu>
To: emacs-orgmode@gnu.org
Subject: Re: inline source code blocks
Date: Thu, 06 Mar 2014 18:35:29 -0500 [thread overview]
Message-ID: <lfb0nj$fhf$1@ger.gmane.org> (raw)
In-Reply-To: <874n3bug4r.fsf@gmail.com>
On 3/6/14 5:04 PM, Eric Schulte wrote:
> I think code blocks work well for non-inline code.
For a series of one-liners interspersed with comments, code block
boundaries triple the number of lines. E.g. the example in the manual
at http://orgmode.org/org.html#noweb_002dref
+BEGIN_SRC sh :tangle yes :noweb yes :shebang #!/bin/sh
<<fullest-disk>>
#+END_SRC
* the mount point of the fullest disk
:PROPERTIES:
:noweb-ref: fullest-disk
:END:
** query all mounted disks
#+BEGIN_SRC sh
df \
#+END_SRC
** strip the header row
#+BEGIN_SRC sh
|sed '1d' \
#+END_SRC
** sort by the percent full
#+BEGIN_SRC sh
|awk '{print $5 " " $6}'|sort -n |tail -1 \
#+END_SRC
** extract the mount point
#+BEGIN_SRC sh
|awk '{print $2}'
#+END_SRC
could be shortened to
#+PROPERTY: ob-default-lang sh
#+HEADER: :tangle yes :noweb yes :shebang #!/bin/sh
: <<fullest-disk>>
* the mount point of the fullest disk
:PROPERTIES:
:noweb-ref: fullest-disk
:END:
** query all mounted disks
: df \
** strip the header row
: |sed '1d' \
** sort by the percent full
: |awk '{print $5 " " $6}'|sort -n |tail -1 \
** extract the mount point
: |awk '{print $2}'
i.e. where the (inherited) property ob-default-lang exists, literal
examples become code blocks in that language.
Or in a list of C++ declarations:
#+PROPERTY: ob-default-lang c++
...
* class MyClass
Does X, Y and Z.
: class MyClass: public MyParent {
** Private fields
*** Field a: stores thing one
: int a;
*** Field b: stores thing two
: char *b;
** Public methods
: public:
*** Method getA: Returns the value of a.
: int getA() const { return a; }
** end class MyClass
:}
I'm finding that Org would work well as a literate programming system
for C++, if the code block starts and ends didn't get in the way so much
during frequent switching between code and prose.
> I use the following to make code block syntax less intrusive
Thanks, that was helpful, didn't know about compose-region.
Still, it does not reduce the number of lines used, so a short list of
declarations interspersed with comments quickly ends up taking a lot of
vertical space. When coding it helps to be able to see many things at
once, and having many extra lines (even mostly-blank ones) makes that
difficult.
ilya
next prev parent reply other threads:[~2014-03-06 23:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-05 21:28 inline source code blocks Ilya Shlyakhter
2014-03-06 22:04 ` Eric Schulte
2014-03-06 23:35 ` Ilya Shlyakhter [this message]
2014-03-07 2:22 ` Eric Schulte
2014-03-07 2:52 ` Ilya Shlyakhter
2014-03-07 0:02 ` Ilya Shlyakhter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='lfb0nj$fhf$1@ger.gmane.org' \
--to=ilya_shl@alum.mit.edu \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).