Christian -- thanks, I think your suggestion is better than mine. Eric -- here's a small change that allows it to work before the first headline. (protected from patchwork I hope)
Dan --8<---------------cut here---------------start------------->8--- X diff --git a/lisp/ob.el b/lisp/ob.el X index e3f9fc7..655a79d 100644 X --- a/lisp/ob.el X +++ b/lisp/ob.el X @@ -1146,7 +1146,8 @@ region is not active then the point is demarcated." X (goto-char place) X (let ((lang (nth 0 info)) X (indent (make-string (nth 6 info) ? )) X - (stars (concat (make-string (org-current-level) ?*) " "))) X + (stars X + (concat (make-string (or (org-current-level) 0) ?*) " "))) X (when (string-match "^[[:space:]]*$" X (buffer-substring (point-at-bol) X (point-at-eol))) X @@ -1161,7 +1162,7 @@ region is not active then the point is demarcated." X (let ((start (point)) X (body (delete-and-extract-region X (if (region-active-p) (mark) (point)) (point))) X - (stars (concat (make-string (org-current-level) ?*) " "))) X + (stars (concat (make-string (or (org-current-level) 0) ?*) " "))) X (insert (concat (if (looking-at "^") "" "\n") X (if arg (concat stars "\n") "") X "#+begin_src " (read-from-minibuffer "Lang: ") "\n" X --8<---------------cut here---------------end--------------->8--- Christian Moe <m...@christianmoe.com> writes: > Hi Eric, > > Great, thanks. > > Christian > > On 9/21/10 3:04 PM, Eric Schulte wrote: >> Hi Christian, >> >> I agree generalizing this function over all block types would be very >> useful. When I find the time I will make this change. >> >> Thanks -- Eric >> >> Christian Moe<m...@christianmoe.com> writes: >> >>> Hi, >>> >>> I'm late to this discussion, but just a lateral thought: >>> >>> Would you consider rewriting this as `org-demarcate-block' or similar, >>> to operate on all #+begin_...end blocks, not just src? >>> >>> If generalized this function could be equally useful for non-src >>> blocks as well. Example blocks come immediately to mind, but there are >>> non-coding applications too. >>> >>> For instance, I store many notes with quotes from various texts, >>> sometimes in fairly long =#+begin_quote= blocks, which I then need to >>> split up when I want to write an extended discussion of a passage, >>> quoting a few lines at a time. >>> >>> For those who use verse blocks (I all too seldom have the need...), it >>> may be even more useful. >>> >>> For personal use, I already have a little org-insert-block utility >>> function to insert/wrap [q]uote, [s]rc, e[x]ample, [v]erse or [o]ther >>> blocks at a keystroke. This works for me since I use at least the >>> first two more or less equally often. A generalized demarcate-block >>> function would be a nice complement. >>> >>> Yours, >>> CM >>> >>> >>> >>> >>>>> I've just added this to the org-mode repo. >>>>> >>>>>> Not in the babel key map - in the org key map (I use it most in normal >>>>>> non src org entries to mark a block of elisp as src for >>>>>> samples/examples). >>>>> >>>>> For now it still lives in the babel keymap behind (C-c C-v d) since it >>>>> is fundamentally code-block related, >>>> >>>> For me, "fundamentally code-block related", in the absence of >>>> execution-related functionality, points to org-src.el rather than >>>> org-babel, so I suggest naming this function >>>> org-src-demarcate-block. The babel keymap is still a good place for a >>>> binding -- I think it's reasonable for the babel keymap to accomodate >>>> pure code block stuff in addition to execution/tangling stuff. >>>> >>>> Dan >>>> >>>> _______________________________________________ >>>> Emacs-orgmode mailing list >>>> Please use `Reply All' to send replies to the list. >>>> Emacs-orgmode@gnu.org >>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >>>> >> _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode