Function: set-goal-column
set-goal-column is an interactive and byte-compiled function defined
in simple.el.gz.
Signature
(set-goal-column ARG)
Documentation
Set the current horizontal position as a goal for C-n (next-line) and C-p (previous-line).
Those commands will move to this position in the line moved to
rather than trying to keep the same horizontal position.
With a non-nil argument ARG, clears out the goal column
so that C-n (next-line) and C-p (previous-line) resume vertical motion.
The goal column is stored in the variable goal-column.
This is a buffer-local setting.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/simple.el.gz
(defun set-goal-column (arg)
"Set the current horizontal position as a goal for \\[next-line] and \\[previous-line].
Those commands will move to this position in the line moved to
rather than trying to keep the same horizontal position.
With a non-nil argument ARG, clears out the goal column
so that \\[next-line] and \\[previous-line] resume vertical motion.
The goal column is stored in the variable `goal-column'.
This is a buffer-local setting."
(interactive "P")
(if arg
(progn
(setq goal-column nil)
(message "No goal column"))
(setq goal-column (current-column))
;; The older method below can be erroneous if `set-goal-column' is bound
;; to a sequence containing %
;;(message (substitute-command-keys
;;"Goal column %d (use \\[set-goal-column] with an arg to unset it)")
;;goal-column)
(message "%s"
(concat
(format "Goal column %d " goal-column)
(substitute-command-keys
"(use \\[set-goal-column] with an arg to unset it)")))
)
nil)