Function: delimit-columns-region

delimit-columns-region is an autoloaded, interactive and byte-compiled function defined in delim-col.el.gz.

Signature

(delimit-columns-region START END)

Documentation

Prettify all columns in a text region.

START and END delimit the text region.

If you have, for example, the following columns:

       a b c d
       aaaa bb ccc ddddd

Depending on your settings (see below), you then obtain the following result:

       [ a , b , c , d ]
       [ aaaa, bb , ccc , ddddd ]

See the delimit-columns-str-before, delimit-columns-str-after, delimit-columns-str-separator, delimit-columns-before, delimit-columns-after, delimit-columns-separator, delimit-columns-format(var)/delimit-columns-format(fun) and delimit-columns-extra variables for customization of the look.

Probably introduced at or before Emacs version 21.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/delim-col.el.gz
;;;###autoload
(defun delimit-columns-region (start end)
  "Prettify all columns in a text region.

START and END delimit the text region.

If you have, for example, the following columns:

       a       b       c       d
       aaaa    bb      ccc     ddddd

Depending on your settings (see below), you then obtain the
following result:

       [ a   , b  , c      , d     ]
       [ aaaa, bb , ccc    , ddddd ]

See the `delimit-columns-str-before',
`delimit-columns-str-after', `delimit-columns-str-separator',
`delimit-columns-before', `delimit-columns-after',
`delimit-columns-separator', `delimit-columns-format' and
`delimit-columns-extra' variables for customization of the
look."
  (interactive "*r")
  (if rectangle-mark-mode
      ;; Delegate to delimit-columns-rectangle when called with a
      ;; rectangular region.
      (delimit-columns-rectangle start end)
    (let ((delimit-columns-str-before
           (delimit-columns-str delimit-columns-str-before))
          (delimit-columns-str-separator
           (delimit-columns-str delimit-columns-str-separator))
          (delimit-columns-str-after
           (delimit-columns-str delimit-columns-str-after))
          (delimit-columns-before
           (delimit-columns-str delimit-columns-before))
          (delimit-columns-after
           (delimit-columns-str delimit-columns-after))
          (delimit-columns-start
           (if (natnump delimit-columns-start)
               delimit-columns-start
             0))
          (delimit-columns-end
           (if (integerp delimit-columns-end)
               delimit-columns-end
             1000000))
          (delimit-columns-limit (make-marker))
          (the-end (copy-marker end))
          delimit-columns-max)
      (when (<= delimit-columns-start delimit-columns-end)
        (save-excursion
          (goto-char start)
          (beginning-of-line)
          ;; get maximum length for each column
          (and delimit-columns-format
               (save-excursion
                 (while (< (point) the-end)
                   (delimit-columns-rectangle-max
                    (prog1
                        (point)
                      (end-of-line)))
                   (forward-char 1))))
          ;; prettify columns
          (while (< (point) the-end)
            (delimit-columns-rectangle-line
             (prog1
                 (point)
               (end-of-line)))
            (forward-char 1))
          ;; nullify markers
          (set-marker delimit-columns-limit nil)
          (set-marker the-end nil))))))