On Thu, Sep 7, 2017 at 3:33 PM Marco Wahl wrote: > I think the bindings could coexist peacefully since > `org-table-toggle-column-width' makes sense only for the cursor located > in a table and `outline-show-children' makes most sense (AFAICS) when > called on a headline. > > Does this sound reasonable? > > Does anyone see clearly how to implement this? (I don't.) > I always wondered the same about other org-table-* bindings in org.el. This works: diff --git a/lisp/org.el b/lisp/org.el index a03d8c5a429..cba9b20482f 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -19632,7 +19632,12 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names." (org-defkey org-mode-map "\C-j" 'org-return-indent) (org-defkey org-mode-map "\C-c?" 'org-table-field-info) (org-defkey org-mode-map "\C-c " 'org-table-blank-field) -(org-defkey org-mode-map (kbd "C-c TAB") #'org-table-toggle-column-width) +(org-defkey org-mode-map (kbd "C-c TAB") + '(menu-item "toggle-column-width-when-in-table" nil + :filter (lambda (&optional _) + (if (org-at-table-p) + #'org-table-toggle-column-width + #'outline-show-children)))) (org-defkey org-mode-map "\C-c+" 'org-table-sum) (org-defkey org-mode-map "\C-c=" 'org-table-eval-formula) (org-defkey org-mode-map "\C-c'" 'org-edit-special) I actually do this for org-table-* bindings in my config: ;; Bind the "org-table-*" command ONLY when the point is in an Org table. ;; http://emacs.stackexchange.com/a/22457/115 (bind-keys :map org-mode-map :filter (org-at-table-p) ("C-c ?" . org-table-field-info) ("C-c SPC" . org-table-blank-field) ("C-c +" . org-table-sum) ("C-c =" . org-table-eval-formula) ("C-c `" . org-table-edit-field) ("C-#" . org-table-rotate-recalc-marks) ("C-c }" . org-table-toggle-coordinate-overlays) ("C-c {" . org-table-toggle-formula-debugger)) Inspiration: http://endlessparentheses.com/define-context-aware-keys-in-emacs.html -- Kaushal Modi