Re: [Orgmode] Re: [BABEL] Speed keys

2010-09-23 Thread Eric Schulte
Hi Jambunathan,

I've finally had a chance to test out this patch, and it's great!  I'd
love to apply this to the core Org repository, however given the size I
have to ask, have you (or are you willing to) signed the FSF papers?

http://orgmode.org/worg/org-contribute.php

Cheers -- Eric

Jambunathan K kjambunat...@gmail.com writes:

 Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for Babel
 blocks?

 Attached patch extends the speed key functionality.

 Usage notes:

 After applying the patch, use variant-1 or variant-2 to enable speed
 keys within a babel block.

 variant-1:

   (defun org-babel-speed-command-hook (keys)
 (when (org-babel-where-is-src-block-head)
   (cdr (assoc keys org-babel-key-bindings

 variant-2:

   (defun org-babel-speed-command-hook (keys)
 (when (and (bolp) (looking-at org-babel-src-block-regexp))
   (cdr (assoc keys org-babel-key-bindings

   (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook 'append)


 Use this hook with caution.

   (defun org-speed-command-catch-all-hook (keys)
 'ignore)

   (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook 'append)

 Jambunathan K.


 From 2fca952e923d44bec554b8b4e7dafc355e068f32 Mon Sep 17 00:00:00 2001
 From: Jambunathan K kjambunat...@gmail.com
 Date: Tue, 7 Sep 2010 04:01:16 +0530
 Subject: [PATCH 2/2] Support for user-extensible speed commands.

 * lisp/org.el (org-speed-command-hook): New. Hook for installing
 additional speed commands. Use this for enabling speed commands on
 src blocks.
 (org-speed-command-default-hook): The default hook for
 org-speed-command-hook. Factored out from org-self-insert-command
 and mimics existing behaviour.
 (org-self-insert-command): Modified to use org-speed-command-hook.

 TINYCHANGE.
 ---
  lisp/org.el |   38 +++---
  1 files changed, 31 insertions(+), 7 deletions(-)

 diff --git a/lisp/org.el b/lisp/org.el
 index 09281cc..ead91a3 100644
 --- a/lisp/org.el
 +++ b/lisp/org.el
 @@ -16494,6 +16494,34 @@ If not, return to the original position and throw an 
 error.
  
  (defvar org-table-auto-blank-field) ; defined in org-table.el
  (defvar org-speed-command nil)
 +
 +(defun org-speed-command-default-hook (keys)
 +  Hook for activating single-letter speed commands.
 +`org-speed-commands-default' specifies a minimal command set. Use
 +`org-speed-commands-user' for further customization.
 +  (when (or (and (bolp) (looking-at outline-regexp))
 + (and (functionp org-use-speed-commands)
 +  (funcall org-use-speed-commands)))
 +(cdr (assoc keys (append org-speed-commands-user
 +  org-speed-commands-default)
 +
 +(defcustom org-speed-command-hook 'org-speed-command-default-hook
 +  Hook for activating speed commands at strategic locations.
 +Hook functions are called in sequence until a valid handler is
 +found.
 +
 +Each hook takes a single argument, a user-pressed command key
 +which is also a `self-insert-command' from the global map.
 +
 +Within the hook, examine the cursor position and the command key
 +and return nil or a valid handler as appropriate. Handler could
 +be one of an interactive command, a function, or a form.
 +
 +Set `org-use-speed-commands' to non-nil value to enable this
 +hook. The default setting is `org-speed-command-default-hook'.
 +  :group 'org-structure
 +  :type 'hook)
 +
  (defun org-self-insert-command (N)
Like `self-insert-command', use overwrite-mode for whitespace in tables.
  If the cursor is in a table looking at whitespace, the whitespace is
 @@ -16501,13 +16529,9 @@ overwritten, and the table is not marked as 
 requiring realignment.
(interactive p)
(cond
 ((and org-use-speed-commands
 -  (or (and (bolp) (looking-at outline-regexp))
 -  (and (functionp org-use-speed-commands)
 -   (funcall org-use-speed-commands)))
 -  (setq
 -   org-speed-command
 -   (or (cdr (assoc (this-command-keys) org-speed-commands-user))
 -   (cdr (assoc (this-command-keys) org-speed-commands-default)
 +  (setq org-speed-command
 +(run-hook-with-args-until-success
 + 'org-speed-command-hook (this-command-keys
  (cond
   ((commandp org-speed-command)
(setq this-command org-speed-command)

___
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


Re: [Orgmode] Re: [BABEL] Speed keys

2010-09-21 Thread Carsten Dominik

Hi Eric,

could I ask you to take a look at this?

Thanks

- Carsten

On Sep 7, 2010, at 12:57 AM, Jambunathan K wrote:




Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for Babel
blocks?


Attached patch extends the speed key functionality.

Usage notes:

After applying the patch, use variant-1 or variant-2 to enable speed
keys within a babel block.

variant-1:

 (defun org-babel-speed-command-hook (keys)
   (when (org-babel-where-is-src-block-head)
 (cdr (assoc keys org-babel-key-bindings

variant-2:

 (defun org-babel-speed-command-hook (keys)
   (when (and (bolp) (looking-at org-babel-src-block-regexp))
 (cdr (assoc keys org-babel-key-bindings

 (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook  
'append)



Use this hook with caution.

 (defun org-speed-command-catch-all-hook (keys)
   'ignore)

 (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook  
'append)


Jambunathan K.


From 2fca952e923d44bec554b8b4e7dafc355e068f32 Mon Sep 17 00:00:00 2001
From: Jambunathan K kjambunat...@gmail.com
Date: Tue, 7 Sep 2010 04:01:16 +0530
Subject: [PATCH 2/2] Support for user-extensible speed commands.

* lisp/org.el (org-speed-command-hook): New. Hook for installing
additional speed commands. Use this for enabling speed commands on
src blocks.
(org-speed-command-default-hook): The default hook for
org-speed-command-hook. Factored out from org-self-insert-command
and mimics existing behaviour.
(org-self-insert-command): Modified to use org-speed-command-hook.

TINYCHANGE.
---
lisp/org.el |   38 +++---
1 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 09281cc..ead91a3 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -16494,6 +16494,34 @@ If not, return to the original position and  
throw an error.


(defvar org-table-auto-blank-field) ; defined in org-table.el
(defvar org-speed-command nil)
+
+(defun org-speed-command-default-hook (keys)
+  Hook for activating single-letter speed commands.
+`org-speed-commands-default' specifies a minimal command set. Use
+`org-speed-commands-user' for further customization.
+  (when (or (and (bolp) (looking-at outline-regexp))
+   (and (functionp org-use-speed-commands)
+(funcall org-use-speed-commands)))
+(cdr (assoc keys (append org-speed-commands-user
+org-speed-commands-default)
+
+(defcustom org-speed-command-hook 'org-speed-command-default-hook
+  Hook for activating speed commands at strategic locations.
+Hook functions are called in sequence until a valid handler is
+found.
+
+Each hook takes a single argument, a user-pressed command key
+which is also a `self-insert-command' from the global map.
+
+Within the hook, examine the cursor position and the command key
+and return nil or a valid handler as appropriate. Handler could
+be one of an interactive command, a function, or a form.
+
+Set `org-use-speed-commands' to non-nil value to enable this
+hook. The default setting is `org-speed-command-default-hook'.
+  :group 'org-structure
+  :type 'hook)
+
(defun org-self-insert-command (N)
  Like `self-insert-command', use overwrite-mode for whitespace in  
tables.

If the cursor is in a table looking at whitespace, the whitespace is
@@ -16501,13 +16529,9 @@ overwritten, and the table is not marked as  
requiring realignment.

  (interactive p)
  (cond
   ((and org-use-speed-commands
-(or (and (bolp) (looking-at outline-regexp))
-(and (functionp org-use-speed-commands)
- (funcall org-use-speed-commands)))
-(setq
- org-speed-command
- (or (cdr (assoc (this-command-keys) org-speed-commands-user))
-	  (cdr (assoc (this-command-keys) org-speed-commands- 
default)

+(setq org-speed-command
+  (run-hook-with-args-until-success
+   'org-speed-command-hook (this-command-keys
(cond
 ((commandp org-speed-command)
  (setq this-command org-speed-command)
--
1.7.0.4

___
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


- Carsten




___
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


Re: [Orgmode] Re: [BABEL] Speed keys

2010-09-21 Thread Eric Schulte
Yes,

I've had this marked for reply for some time now, I'll be sure to look
at it by the end of the week.

Best -- Eric

Carsten Dominik carsten.domi...@gmail.com writes:

 Hi Eric,

 could I ask you to take a look at this?

 Thanks

 - Carsten

 On Sep 7, 2010, at 12:57 AM, Jambunathan K wrote:


 Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for Babel
 blocks?

 Attached patch extends the speed key functionality.

 Usage notes:

 After applying the patch, use variant-1 or variant-2 to enable speed
 keys within a babel block.

 variant-1:

  (defun org-babel-speed-command-hook (keys)
(when (org-babel-where-is-src-block-head)
  (cdr (assoc keys org-babel-key-bindings

 variant-2:

  (defun org-babel-speed-command-hook (keys)
(when (and (bolp) (looking-at org-babel-src-block-regexp))
  (cdr (assoc keys org-babel-key-bindings

  (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook
 append)


 Use this hook with caution.

  (defun org-speed-command-catch-all-hook (keys)
'ignore)

  (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook
 append)

 Jambunathan K.


 From 2fca952e923d44bec554b8b4e7dafc355e068f32 Mon Sep 17 00:00:00 2001
 From: Jambunathan K kjambunat...@gmail.com
 Date: Tue, 7 Sep 2010 04:01:16 +0530
 Subject: [PATCH 2/2] Support for user-extensible speed commands.

 * lisp/org.el (org-speed-command-hook): New. Hook for installing
 additional speed commands. Use this for enabling speed commands on
 src blocks.
 (org-speed-command-default-hook): The default hook for
 org-speed-command-hook. Factored out from org-self-insert-command
 and mimics existing behaviour.
 (org-self-insert-command): Modified to use org-speed-command-hook.

 TINYCHANGE.
 ---
 lisp/org.el |   38 +++---
 1 files changed, 31 insertions(+), 7 deletions(-)

 diff --git a/lisp/org.el b/lisp/org.el
 index 09281cc..ead91a3 100644
 --- a/lisp/org.el
 +++ b/lisp/org.el
 @@ -16494,6 +16494,34 @@ If not, return to the original position and
 throw an error.

 (defvar org-table-auto-blank-field) ; defined in org-table.el
 (defvar org-speed-command nil)
 +
 +(defun org-speed-command-default-hook (keys)
 +  Hook for activating single-letter speed commands.
 +`org-speed-commands-default' specifies a minimal command set. Use
 +`org-speed-commands-user' for further customization.
 +  (when (or (and (bolp) (looking-at outline-regexp))
 +(and (functionp org-use-speed-commands)
 + (funcall org-use-speed-commands)))
 +(cdr (assoc keys (append org-speed-commands-user
 + org-speed-commands-default)
 +
 +(defcustom org-speed-command-hook 'org-speed-command-default-hook
 +  Hook for activating speed commands at strategic locations.
 +Hook functions are called in sequence until a valid handler is
 +found.
 +
 +Each hook takes a single argument, a user-pressed command key
 +which is also a `self-insert-command' from the global map.
 +
 +Within the hook, examine the cursor position and the command key
 +and return nil or a valid handler as appropriate. Handler could
 +be one of an interactive command, a function, or a form.
 +
 +Set `org-use-speed-commands' to non-nil value to enable this
 +hook. The default setting is `org-speed-command-default-hook'.
 +  :group 'org-structure
 +  :type 'hook)
 +
 (defun org-self-insert-command (N)
   Like `self-insert-command', use overwrite-mode for whitespace in
 tables.
 If the cursor is in a table looking at whitespace, the whitespace is
 @@ -16501,13 +16529,9 @@ overwritten, and the table is not marked as
 requiring realignment.
   (interactive p)
   (cond
((and org-use-speed-commands
 - (or (and (bolp) (looking-at outline-regexp))
 - (and (functionp org-use-speed-commands)
 -  (funcall org-use-speed-commands)))
 - (setq
 -  org-speed-command
 -  (or (cdr (assoc (this-command-keys) org-speed-commands-user))
 -  (cdr (assoc (this-command-keys) org-speed-commands-
 default)
 + (setq org-speed-command
 +   (run-hook-with-args-until-success
 +'org-speed-command-hook (this-command-keys
 (cond
  ((commandp org-speed-command)
   (setq this-command org-speed-command)
 --
 1.7.0.4

 ___
 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

 - Carsten

___
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


[Orgmode] Re: [BABEL] Speed keys

2010-09-06 Thread Jambunathan K

 Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for Babel
 blocks?

Attached patch extends the speed key functionality.

Usage notes:

After applying the patch, use variant-1 or variant-2 to enable speed
keys within a babel block.

variant-1:

  (defun org-babel-speed-command-hook (keys)
(when (org-babel-where-is-src-block-head)
  (cdr (assoc keys org-babel-key-bindings

variant-2:

  (defun org-babel-speed-command-hook (keys)
(when (and (bolp) (looking-at org-babel-src-block-regexp))
  (cdr (assoc keys org-babel-key-bindings

  (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook 'append)


Use this hook with caution.

  (defun org-speed-command-catch-all-hook (keys)
'ignore)

  (add-hook 'org-speed-command-hook 'org-babel-speed-command-hook 'append)

Jambunathan K.


From 2fca952e923d44bec554b8b4e7dafc355e068f32 Mon Sep 17 00:00:00 2001
From: Jambunathan K kjambunat...@gmail.com
Date: Tue, 7 Sep 2010 04:01:16 +0530
Subject: [PATCH 2/2] Support for user-extensible speed commands.

* lisp/org.el (org-speed-command-hook): New. Hook for installing
additional speed commands. Use this for enabling speed commands on
src blocks.
(org-speed-command-default-hook): The default hook for
org-speed-command-hook. Factored out from org-self-insert-command
and mimics existing behaviour.
(org-self-insert-command): Modified to use org-speed-command-hook.

TINYCHANGE.
---
 lisp/org.el |   38 +++---
 1 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 09281cc..ead91a3 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -16494,6 +16494,34 @@ If not, return to the original position and throw an 
error.
 
 (defvar org-table-auto-blank-field) ; defined in org-table.el
 (defvar org-speed-command nil)
+
+(defun org-speed-command-default-hook (keys)
+  Hook for activating single-letter speed commands.
+`org-speed-commands-default' specifies a minimal command set. Use
+`org-speed-commands-user' for further customization.
+  (when (or (and (bolp) (looking-at outline-regexp))
+   (and (functionp org-use-speed-commands)
+(funcall org-use-speed-commands)))
+(cdr (assoc keys (append org-speed-commands-user
+org-speed-commands-default)
+
+(defcustom org-speed-command-hook 'org-speed-command-default-hook
+  Hook for activating speed commands at strategic locations.
+Hook functions are called in sequence until a valid handler is
+found.
+
+Each hook takes a single argument, a user-pressed command key
+which is also a `self-insert-command' from the global map.
+
+Within the hook, examine the cursor position and the command key
+and return nil or a valid handler as appropriate. Handler could
+be one of an interactive command, a function, or a form.
+
+Set `org-use-speed-commands' to non-nil value to enable this
+hook. The default setting is `org-speed-command-default-hook'.
+  :group 'org-structure
+  :type 'hook)
+
 (defun org-self-insert-command (N)
   Like `self-insert-command', use overwrite-mode for whitespace in tables.
 If the cursor is in a table looking at whitespace, the whitespace is
@@ -16501,13 +16529,9 @@ overwritten, and the table is not marked as requiring 
realignment.
   (interactive p)
   (cond
((and org-use-speed-commands
-(or (and (bolp) (looking-at outline-regexp))
-(and (functionp org-use-speed-commands)
- (funcall org-use-speed-commands)))
-(setq
- org-speed-command
- (or (cdr (assoc (this-command-keys) org-speed-commands-user))
- (cdr (assoc (this-command-keys) org-speed-commands-default)
+(setq org-speed-command
+  (run-hook-with-args-until-success
+   'org-speed-command-hook (this-command-keys
 (cond
  ((commandp org-speed-command)
   (setq this-command org-speed-command)
-- 
1.7.0.4

___
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


[Orgmode] Re: [BABEL] Speed keys

2010-09-05 Thread Jambunathan K
Carsten Dominik carsten.domi...@gmail.com writes:

 On Sat, Sep 4, 2010 at 10:13 PM, Jambunathan K
 kjambunat...@gmail.com wrote:
 One of the problems with C-c C-v prefix is that I tend to forget it if I
 revisit Babel say after a week's time. (Not nitpicking here!). The
 reason is that I simply couldn't contrive a convenient menemonic that
 would make me recollect C-v.


 visit   (do something with the code snippets)

I would go with the first suggestion but with a slight modification.

visit   (this command makes me visit the Org Manual all the time)

:-)

Jambunathan K.



___
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


[Orgmode] Re: [BABEL] Speed keys

2010-09-04 Thread Jambunathan K

 Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for
 Babel blocks?
 

Eric Hi Jambunathan, That sounds like a good idea.  I suppose
Eric initially the speed keys should just mirror the babel key map?

Exactly. 

As long as the cursor is on a #+begin_src (and/or #+end_src), one need
not bother about typing C-c C-v. So a keypress 'n' would do what C-c C-v
n would do.

More importantly emerging new sequences like, C-c C-v C-x TAB could be
composed as

1. Push a mark (C-SPC) [Optional]

2. Move to babel guard line using user preferred method [See my other
   post on the list]

3. C-x TAB

One of the problems with C-c C-v prefix is that I tend to forget it if I
revisit Babel say after a week's time. The reason is that I simply
couldn't contrive a convenient menemonic that would make me recollect
C-v. So jumping to the babel guard line and issuing the needed command
is a good fall back option. Not nit picking here :-).

Jambunathan K.


___
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


[Orgmode] Re: [BABEL] Speed keys

2010-09-04 Thread ggggJambunathan K

 Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for
 Babel blocks?
 

Eric Hi Jambunathan, That sounds like a good idea.  I suppose
Eric initially the speed keys should just mirror the babel key map?

Exactly. 

As long as the cursor is on a #+begin_src (and/or #+end_src), one need
not bother about typing C-c C-v. So a keypress 'n' would do what C-c C-v
n would do.

More importantly emerging new sequences like, C-c C-v C-x TAB could be
composed as

1. Push a mark (C-SPC) [Optional]

2. Move to babel guard line using user preferred method [See my other
   post on the list]

3. C-x TAB

One of the problems with C-c C-v prefix is that I tend to forget it if I
revisit Babel say after a week's time. (Not nitpicking here!). The
reason is that I simply couldn't contrive a convenient menemonic that
would make me recollect C-v. So jumping to the babel guard line and
issuing the needed command is a good fall back option.

Jambunathan K.


___
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


Re: [Orgmode] Re: [BABEL] Speed keys

2010-09-04 Thread Carsten Dominik
On Sat, Sep 4, 2010 at 10:13 PM, Jambunathan K
kjambunat...@gmail.com wrote:

     Is it possible Speed Keys (Refer Org Manual - Sec. 15.3) for
     Babel blocks?
    

    Eric Hi Jambunathan, That sounds like a good idea.  I suppose
    Eric initially the speed keys should just mirror the babel key map?

 Exactly.

 As long as the cursor is on a #+begin_src (and/or #+end_src), one need
 not bother about typing C-c C-v. So a keypress 'n' would do what C-c C-v
 n would do.

 More importantly emerging new sequences like, C-c C-v C-x TAB could be
 composed as

 1. Push a mark (C-SPC) [Optional]

 2. Move to babel guard line using user preferred method [See my other
   post on the list]

 3. C-x TAB

 One of the problems with C-c C-v prefix is that I tend to forget it if I
 revisit Babel say after a week's time. (Not nitpicking here!). The
 reason is that I simply couldn't contrive a convenient menemonic that
 would make me recollect C-v.


visit   (do something with the code snippets)
vault   (structures (arcs) in the tower of babel)
voodoo  (org-babel is dark magic)
vocabulary  (the words of the common language in the world of babel)
verb(Org-babel defines code and value objects in a buffer.  The
commands are the verbs which get the objects into action)
veins   (processing tubes in the babel fish)




vision  (make it visible)
vitalize(bring dead code to life)
value   (like evaluate source code)
voice   (express meaning in any language)
valve   (open the valve to get results from source code or that
connects different snippets)
vortex  (stir it all up!)
von Neumann (get that computing machine going)
vaseline(lubricate that machine)
vaccinate   (get it used to foreign influences)
vector  (directed action)
Vegas   (let turn the wheels)
veil   (pull it down to unveil the beauty of the women of Babel)
velum   (the membrane around the cells of Babel)


:)

- Carsten



 So jumping to the babel guard line and
 issuing the needed command is a good fall back option.

 Jambunathan K.


 ___
 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