请教emacs 如何使用bookmark的功能?


#1

vim中有针对行的标记,然后跳转。
想必emacs也有,但是搜索不到相关操作。
请问该怎么操作呢?通用的也行,针对spacemacs的也行。


#2

用vim不知道m键?


#3

spacemacs的话,bookmark是 SPC f b,不过这个和标记还是有区别的吧,如果你用spacemacs 用的是evil,那标记和vim是一样的吧


#4

不是这种,有没有像这样的插件?


#5

原来这个不叫bookmark,难怪一直查不到
叫register
c-x r spc x 记录到x c-x r j x 跳到x


#6

emacs中自带bookmark的,你 M-x bookmark 一下就知道了,很好用。

bookmark-set, bookmark-jump, bookmark-delete… 绑定到合适的快捷键就可以了。

我用ivy, 所有用counsel-bookmark也很爽。保存到bookmark,配合懒猫的snails可以快速打开文件,并且默认记住光标位置的。


#7

是的,这是一种,还有一种是用mark-ring,keybindings简单很多。我用register不多,快捷键太复杂了。下面是我的notes,供参考:

;; mark rings to jump:
;;      - set mark :: "C-SPC C-SPC"
;;      - jump to previous mark :: "C-u C-SPC"  after it, just "C-SPC" to continue jumping
;;      - jump to mark saved in global-mark ring :: "C-x C-SPC"
;;      - exchange the cursor and the previous mark :: "C-x C-x"
;;      - use helm-all-mark-rings to show mark ring :: "C-c h SPC"
;; register to jump:
;;      - record the position of point in register [r] :: "C-x r SPC [r]"
;;      - jump to the position saved in register [r] :: "C-x r j [r]"
;;      - use helm-register to show the list :: "C-c h x"

Ivy/counsel的话,用counsel-mark-ring,和counsel-register(这个最近才加上的,如果你没有这个函数,升级下Ivy/counsel/swiper.


事实上,Emacs也有bookmark的概念,类似register,但和vim的bookmark一致的应该是position-register。如下:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Registers.html#Position-Registers

https://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html


#8

还可以用bm的包