From 6a590738b1886a83d32f4a2f9c7e6d3e65568252 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 19 Aug 2017 23:39:22 +0200 Subject: [PATCH] Remove `org-enable-table-editor' * doc/org.texi (Built-in table editor): Document removal. * lisp/org-table.el (orgtbl-optimized): (org-table-auto-blank-field): Ignore removed variable. --- doc/org.texi | 16 ++++++------ etc/ORG-NEWS | 5 ++++ lisp/org-table.el | 11 ++++---- lisp/org.el | 64 +++++++++++------------------------------------ 4 files changed, 32 insertions(+), 64 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index c8bcc809e..a9b835101 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -2106,16 +2106,14 @@ create the above table, you would only type fields. Even faster would be to type @code{|Name|Phone|Age} followed by @kbd{C-c @key{RET}}. -@vindex org-enable-table-editor @vindex org-table-auto-blank-field -When typing text into a field, Org treats @key{DEL}, -@key{Backspace}, and all character keys in a special way, so that -inserting and deleting avoids shifting other fields. Also, when -typing @emph{immediately after the cursor was moved into a new field -with @kbd{@key{TAB}}, @kbd{S-@key{TAB}} or @kbd{@key{RET}}}, the -field is automatically made blank. If this behavior is too -unpredictable for you, configure the options -@code{org-enable-table-editor} and @code{org-table-auto-blank-field}. +When typing text into a field, Org treats @key{DEL}, @key{Backspace}, and all +character keys in a special way, so that inserting and deleting avoids +shifting other fields. Also, when typing @emph{immediately after the cursor +was moved into a new field with @kbd{@key{TAB}}, @kbd{S-@key{TAB}} or +@kbd{@key{RET}}}, the field is automatically made blank. If this behavior is +too unpredictable for you, configure the option +@code{org-table-auto-blank-field}. @table @kbd @tsubheading{Creation and conversion} diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index cdf06fc56..b6f0efe78 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -394,6 +394,11 @@ Use ~org-gnus-prefer-web-links~ instead. One can provide new ~:sitemap-format-entry~ property for a function equivalent to the removed format string. +*** ~org-enable-table-editor~ is removed. + +Setting it to a ~nil~ value broke some other features (e.g., speed +keys). + *** ~org-texinfo-def-table-markup~ is obsolete Use ~org-texinfo-table-default-markup~ instead. diff --git a/lisp/org-table.el b/lisp/org-table.el index 307a3f0e8..bd396e35f 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -81,17 +81,17 @@ are not run.") (defvar org-table-TBLFM-begin-regexp "^[ \t]*|.*\n[ \t]*#\\+TBLFM: ") -(defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) +(defcustom orgtbl-optimized t "Non-nil means use the optimized table editor version for `orgtbl-mode'. + In the optimized version, the table editor takes over all simple keys that normally just insert a character. In tables, the characters are inserted in a way to minimize disturbing the table structure (i.e. in overwrite mode for empty fields). Outside tables, the correct binding of the keys is restored. -The default for this option is t if the optimized version is also used in -Org mode. See the variable `org-enable-table-editor' for details. Changing -this variable requires a restart of Emacs to become effective." +Changing this variable requires a restart of Emacs to become +effective." :group 'org-table :type 'boolean) @@ -208,8 +208,7 @@ removal/insertion." (defcustom org-table-auto-blank-field t "Non-nil means automatically blank table field when starting to type into it. This only happens when typing immediately after a field motion -command (TAB, S-TAB or RET). -Only relevant when `org-enable-table-editor' is equal to `optimized'." +command (TAB, S-TAB or RET)." :group 'org-table-editing :type 'boolean) diff --git a/lisp/org.el b/lisp/org.el index 980bbdd74..e57c5c4fd 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -1734,37 +1734,6 @@ This also applied for speedbar access." :tag "Org Table" :group 'org) -(defcustom org-enable-table-editor 'optimized - "Non-nil means lines starting with \"|\" are handled by the table editor. -When nil, such lines will be treated like ordinary lines. - -When equal to the symbol `optimized', the table editor will be optimized to -do the following: -- Automatic overwrite mode in front of whitespace in table fields. - This makes the structure of the table stay in tact as long as the edited - field does not exceed the column width. -- Minimize the number of realigns. Normally, the table is aligned each time - TAB or RET are pressed to move to another field. With optimization this - happens only if changes to a field might have changed the column width. -Optimization requires replacing the functions `self-insert-command', -`delete-char', and `backward-delete-char' in Org buffers, with a -slight (in fact: unnoticeable) speed impact for normal typing. Org is very -good at guessing when a re-align will be necessary, but you can always -force one with `\\[org-ctrl-c-ctrl-c]'. - -If you would like to use the optimized version in Org mode, but the -un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'. - -This variable can be used to turn on and off the table editor during a session, -but in order to toggle optimization, a restart is required. - -See also the variable `org-table-auto-blank-field'." - :group 'org-table - :type '(choice - (const :tag "off" nil) - (const :tag "on" t) - (const :tag "on, optimized" optimized))) - (defcustom org-self-insert-cluster-for-undo nil "Non-nil means cluster self-insert commands for undo when possible. If this is set, then, like in the Emacs command loop, 20 consecutive @@ -19442,6 +19411,14 @@ boundaries." ;;;; Key bindings +(defun org-remap (map &rest commands) + "In MAP, remap the functions given in COMMANDS. +COMMANDS is a list of alternating OLDDEF NEWDEF command names." + (let (new old) + (while commands + (setq old (pop commands) new (pop commands)) + (org-defkey map (vector 'remap old) new)))) + ;; Outline functions from `outline-mode-prefix-map' ;; that can be remapped in Org: (define-key org-mode-map [remap outline-mark-subtree] 'org-mark-subtree) @@ -19494,6 +19471,7 @@ boundaries." (org-defkey org-mode-map [(tab)] 'org-cycle) (org-defkey org-mode-map [(control tab)] 'org-force-cycle-archived) (org-defkey org-mode-map "\M-\t" #'pcomplete) + ;; The following line is necessary under Suse GNU/Linux (org-defkey org-mode-map [S-iso-lefttab] 'org-shifttab) (org-defkey org-mode-map [(shift tab)] 'org-shifttab) @@ -19566,8 +19544,13 @@ boundaries." (org-defkey org-mode-map [?\e (shift down)] 'org-shiftmetadown)) ;; All the other keys +(org-remap org-mode-map + 'self-insert-command 'org-self-insert-command + 'delete-char 'org-delete-char + 'delete-backward-char 'org-delete-backward-char) +(org-defkey org-mode-map "|" 'org-force-self-insert) -(org-defkey org-mode-map "\C-c\C-a" 'outline-show-all) ; in case allout messed up. +(org-defkey org-mode-map "\C-c\C-a" 'outline-show-all) ; in case allout messed up. (org-defkey org-mode-map "\C-c\C-r" 'org-reveal) (if (boundp 'narrow-map) (org-defkey narrow-map "s" 'org-narrow-to-subtree) @@ -20060,14 +20043,6 @@ because, in this case the deletion might narrow the column." (put 'org-self-insert-command 'pabbrev-expand-after-command t) (put 'orgtbl-self-insert-command 'pabbrev-expand-after-command t) -(defun org-remap (map &rest commands) - "In MAP, remap the functions given in COMMANDS. -COMMANDS is a list of alternating OLDDEF NEWDEF command names." - (let (new old) - (while commands - (setq old (pop commands) new (pop commands)) - (org-defkey map (vector 'remap old) new)))) - (defun org-transpose-words () "Transpose words for Org. This uses the `org-mode-transpose-word-syntax-table' syntax @@ -20078,15 +20053,6 @@ word constituents." (call-interactively 'transpose-words))) (org-remap org-mode-map 'transpose-words 'org-transpose-words) -(when (eq org-enable-table-editor 'optimized) - ;; If the user wants maximum table support, we need to hijack - ;; some standard editing functions - (org-remap org-mode-map - 'self-insert-command 'org-self-insert-command - 'delete-char 'org-delete-char - 'delete-backward-char 'org-delete-backward-char) - (org-defkey org-mode-map "|" 'org-force-self-insert)) - (defvar org-ctrl-c-ctrl-c-hook nil "Hook for functions attaching themselves to `C-c C-c'.