Function: org-table-edit-field

org-table-edit-field is an autoloaded, interactive and byte-compiled function defined in org-table.el.gz.

Signature

(org-table-edit-field ARG)

Documentation

Edit table field in a different window.

This is mainly useful for fields that contain hidden parts.

When called with a C-u (universal-argument) prefix, just make the full field visible so that it can be edited in place.

When called with a C-u (universal-argument) C-u (universal-argument) prefix, toggle org-table-follow-field-mode(var)/org-table-follow-field-mode(fun).

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-table.el.gz
;;;###autoload
(defun org-table-edit-field (arg)
  "Edit table field in a different window.
This is mainly useful for fields that contain hidden parts.

When called with a `\\[universal-argument]' prefix, just make the full field
visible so that it can be edited in place.

When called with a `\\[universal-argument] \\[universal-argument]' prefix, \
toggle `org-table-follow-field-mode'."
  (interactive "P")
  (unless (org-at-table-p) (user-error "Not at a table"))
  (cond
   ((equal arg '(16))
    (org-table-follow-field-mode (if org-table-follow-field-mode -1 1)))
   (arg
    (let ((b (save-excursion (skip-chars-backward "^|") (point)))
	  (e (save-excursion (skip-chars-forward "^|\r\n") (point))))
      (remove-text-properties b e '(invisible t intangible t))
      (if font-lock-mode
	  (font-lock-fontify-block))))
   (t
    (let ((pos (point-marker))
	  (coord
	   (if (eq org-table-use-standard-references t)
	       (concat (org-number-to-letters (org-table-current-column))
		       (number-to-string (org-table-current-dline)))
	     (concat "@" (number-to-string (org-table-current-dline))
		     "$" (number-to-string (org-table-current-column)))))
	  (field (org-table-get-field))
	  (cw (current-window-configuration))
	  p)
      (goto-char pos)
      (switch-to-buffer-other-window "*Org Table Edit Field*")
      (when (and (local-variable-p 'org-field-marker)
		 (markerp org-field-marker))
	(move-marker org-field-marker nil))
      (erase-buffer)
      (insert "#\n# Edit field " coord " and finish with C-c C-c\n#\n")
      (let ((org-inhibit-startup t)) (org-mode))
      (auto-fill-mode -1)
      (setq truncate-lines nil)
      (setq word-wrap t)
      (goto-char (setq p (point-max)))
      (insert (org-trim field))
      (remove-text-properties p (point-max) '(invisible t intangible t))
      (goto-char p)
      (setq-local org-finish-function 'org-table-finish-edit-field)
      (setq-local org-window-configuration cw)
      (setq-local org-field-marker pos)
      (message "Edit and finish with C-c C-c")))))