Nick Dokos <nicholas.do...@hp.com> wrote: > Skip Collins <skip.coll...@gmail.com> wrote: > > > > org-time-stamp-inactive uses the minibuffer, and calling > > > a function that uses the minibuffer *from* the minibuffer (as > > > org-set-property would do) make emacs unhappy. > > > > Elisp does seem to allow recursive minibuffers: > > http://www.gnu.org/software/emacs/elisp/html_node/Recursive-Mini.html > > > > Would the implementation of this for org-set-property be straightforward? > > > > Oh, very nice: I didn't know about that. Here's a proof-of-concept > snippet, redefining the org-completing-read function to bind > org-time-stamp-inactive to a key ("!" in the following, but you will > probably want to season to taste): > > (setq enable-recursive-minibuffers t) > > (defun org-completing-read (&rest args) > "Completing-read with SPACE being a normal character." > (let ((minibuffer-local-completion-map > (copy-keymap minibuffer-local-completion-map))) > (org-defkey minibuffer-local-completion-map " " 'self-insert-command) > (org-defkey minibuffer-local-completion-map "?" 'self-insert-command) > (org-defkey minibuffer-local-completion-map "!" 'org-time-stamp-inactive) > (apply 'org-icompleting-read args))) > > It even seems to work!-) >
Still a proof-of-concept, but better than the first attempt - set recursive minibuffers locally and use the standard keybinding: --8<---------------cut here---------------start------------->8--- (defun org-completing-read (&rest args) "Completing-read with SPACE being a normal character." (let ((minibuffer-local-completion-map (copy-keymap minibuffer-local-completion-map)) (enable-recursive-minibuffers t)) (org-defkey minibuffer-local-completion-map " " 'self-insert-command) (org-defkey minibuffer-local-completion-map "?" 'self-insert-command) (org-defkey minibuffer-local-completion-map (kbd "C-c !") 'org-time-stamp-inactive) (apply 'org-icompleting-read args))) --8<---------------cut here---------------end--------------->8--- Nick