Put the following in your .emacs to MakeMarkVisible at all times.
;; Author: Patrick Gundlach ;; nice mark - shows mark as a highlighted 'cursor' so user 'always' ;; sees where the mark is. Especially nice for killing a region. (defvar pg-mark-overlay nil "Overlay to show the position where the mark is") (make-variable-buffer-local 'pg-mark-overlay) (put 'pg-mark-mark 'face 'secondary-selection) (defvar pg-mark-old-position nil "The position the mark was at. To be able to compare with the current position") (defun pg-show-mark () "Display an overlay where the mark is at. Should be hooked into activate-mark-hook" (unless pg-mark-overlay (setq pg-mark-overlay (make-overlay 0 0)) (overlay-put pg-mark-overlay 'category 'pg-mark-mark)) (let ((here (mark t))) (when here (move-overlay pg-mark-overlay here (1+ here))))) (defadvice exchange-point-and-mark (after pg-mark-exchange-point-and-mark) "Show visual marker" (pg-show-mark)) (ad-activate 'exchange-point-and-mark) (add-hook 'activate-mark-hook 'pg-show-mark)
Interesting alternative to
‘C-x C-x’ (
‘exchange-point-and-mark’) to see the mark.
Might be even more interesting to show all of the marks (or the N most recent) on the mark ring, not just the (current) mark - perhaps in rainbow colors from recent (red) to old (blue).
And, instead of seeing marks all the time, I’d like to have a binding that shows marks only temporarily - e.g. until some easy event, like a mouse-button release (that is, display marks only while pressed).
BTW, when the mark is at the end of a line, the buffer is highlighted from the line end to the right window edge – looks like a minor bug. – DrewAdams
See also VisibleMark for such sort of things.
I wrote some elisp that displays the points in the mark ring. It’s modeled after Occur. The line number for each point in the mark-ring is displayed as well as the contents of that line. Pressing RET on the line will take you to the point from the mark-ring. The function is called ‘show-marks’ and is available at http://therowes.net/~greg/code/emacs/emacs.d/mark.el