emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-orgmode] Re: Suggestions on list create/edit commands:


From: Philip Rooke
Subject: Re: [Emacs-orgmode] Re: Suggestions on list create/edit commands:
Date: Sun, 14 May 2006 13:35:48 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Carsten Dominik <address@hidden> writes:

> On May 12, 2006, at 4:39, T. V. Raman wrote:
>>
>>
>> 1)     orgtbl is nice as a minor mode. Why not go once step
>>        further and enable org as a minor mode; it would be nice
>>        to be able to create structured lists in email.
>
> I don't know how this would be possible.  The org-mode keymap would
> take over, no key from the current major mode would keep working.
> Orgtbl used a rather complicated trick to function in tables while
> leaving things to the major mode outside tables.  I don't see how a
> similar trick could work for the whole file.
>
> One could construct a restricted minor mode with some functionality - 
> what stuff should be in there?

I know this is not what you are asking for, but I find the following
very helpful when I want to use org-mode facilities to quickly create a
piece of text whilst in an email message or, indeed, anywhere else:

(defun popup-input-buffer ()
  "Provide an input buffer in a specified mode."
  (interactive)
  (let ((buffer-name (generate-new-buffer-name "*input*"))
        (mode (intern
               (completing-read
                "Mode: "
                (mapcar (lambda (e)
                          (list (symbol-name e)))
                        (apropos-internal "-mode$" 'commandp))
                nil t))))
    (pop-to-buffer (make-indirect-buffer (current-buffer) buffer-name))
    (narrow-to-region (point) (point))
    (funcall mode)

    (let ((map (copy-keymap (current-local-map))))
      (define-key map (kbd "C-c C-c")
        (lambda ()
          (interactive)
          (kill-buffer nil)
          (delete-window)))
      (use-local-map map))
    (shrink-window-if-larger-than-buffer)))

Whilst in some mode other than org-mode simply:

  M-x popup-input-buffer
  org-mode <ret>
  [...use org-mode...]
  C-c C-c

I can claim no credit for this idea, I found the function in a GPL'd file
of elisp snippets written by someone called Mark Triggs.

Phil








reply via email to

[Prev in Thread] Current Thread [Next in Thread]