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