编程中经常用到跳转,多个文件及位置的记录可以用Emacs中的书签,单个文件中的临时注册和快速跳转有以下两个方法。
方法一:
使用 Mark ring
C-space / C-@ 在设置mark的状态, 设置的mark会保存在每个buffer中的mark ring中,默认16个.
C-u C-<SPC> 切换至ring中的上一个mark
将该变量设置为(set-mark-command-repeat-pop) non-nil,就可以使用C-space切换
以下配置可以使mark 带有颜色,只是。。。。。。这颜色有点丑,没空深究,有好的颜色方案的大神联系我一下,摆脱。
(defface visible-mark-active ;; put this before (require 'visible-mark)
'((((type tty) (class mono)))
(t (:background "magenta"))) "")
(require 'visible-mark)
(global-visible-mark-mode 1)
(setq visible-mark-max 3) ;;;最多显示3个mark
(setq visible-mark-faces `(visible-mark-face1 visible-mark-face2))
方法二:
使用 Emacs 的注册位置功能:
注册一个或几个位置:
C-x r <SPC> r
Record the position of point and the current buffer in register r (point-to-register).
跳转至注册的位置:
C-x r j r
Jump to the position and buffer saved in register r (jump-to-register).
注册机制的文档
https://www.emacswiki.org/emacs/Registers
常用命令
C-x r s R Copy the region into register R
C-x r r R Copy the region-rectangle into register R
C-x r SPC R Save the position of point (and the name of the current buffer) into register R
C-x r f R Copy the frame configuration into register R
C-x r w R Copy the window configuration into register R