ld-emacs/site-lisp/extensions-local/ld-goto-cursor-stack.el
2023-12-23 16:24:30 +08:00

40 lines
1.1 KiB
EmacsLisp

;; -*- coding: utf-8; -*-
;;; Require:
;;; Code:
(defvar ld-cursor-position-stack nil
"Cursor position stack.")
(defun ld-cursor-position-1-store ()
"Remember current position and setup."
(interactive)
(point-to-register 8)
(message "Have remember one position"))
(defun ld-cursor-position-1-jump ()
"Jump to latest position and setup."
(interactive)
(let ((tmp (point-marker)))
(jump-to-register 8)
(set-register 8 tmp))
(message "Have back to remember position"))
(defun ld-cursor-position-stack-push ()
"Push current point in stack."
(interactive)
(message "Location marked.")
(setq ld-cursor-position-stack (cons (list (current-buffer) (point)) ld-cursor-position-stack)))
(defun ld-cursor-position-stack-pop ()
"Pop point from stack."
(interactive)
(if (null ld-cursor-position-stack)
(message "Stack is empty.")
(switch-to-buffer (caar ld-cursor-position-stack))
(goto-char (cadar ld-cursor-position-stack))
(setq ld-cursor-position-stack (cdr ld-cursor-position-stack))))
(provide 'ld-goto-cursor-stack)
;;; ld-goto-cursor-stack.el ends here