Function: org-delete-char
org-delete-char is an interactive and byte-compiled function defined
in org.el.gz.
Signature
(org-delete-char N)
Documentation
Like delete-char, but insert whitespace at field end in tables.
When deleting characters, in tables this function will insert whitespace in front of the next "|" separator, to keep the table aligned. The table will still be marked for re-alignment if the field did fill the entire column, because, in this case the deletion might narrow the column.
This function has :before advice: org-fold-check-before-invisible-edit-maybe.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-delete-char (N)
"Like `delete-char', but insert whitespace at field end in tables.
When deleting characters, in tables this function will insert whitespace in
front of the next \"|\" separator, to keep the table aligned. The table will
still be marked for re-alignment if the field did fill the entire column,
because, in this case the deletion might narrow the column."
(interactive "p")
(save-match-data
(cond
((or (/= N 1)
(eq (char-after) ?|)
(save-excursion (skip-chars-backward " \t") (bolp))
(not (org-at-table-p)))
(delete-char N)
(when org-auto-align-tags (org-fix-tags-on-the-fly)))
((looking-at ".\\(.*?\\)|")
(let* ((update? org-table-may-need-update)
(noalign (looking-at-p ".*? |")))
(delete-char 1)
(org-table-with-shrunk-field
(save-excursion
;; Last space is `org-table-separator-space', so insert
;; a regular one before it instead.
(goto-char (- (match-end 0) 2))
(insert " ")))
;; If there were two spaces at the end, this field does not
;; determine the width of the column.
(when noalign (setq org-table-may-need-update update?))))
(t
(delete-char N)))))