您当前的位置:首页 > 计算机 > 软件应用 > 开发工具(IDE)

Emacs 的书签功能介绍

时间:12-14来源:作者:点击数:

emacs 的书签用于记录你在文件中的阅读位置。它有点类似寄存器,跟寄存器一样,因为它也能记录位置位置。但同寄存器有两点不一样:

  1. 它有比较长的名字
  2. 当 emacs 关闭的时候,它会自动持久化到磁盘。

设置一个书签

当我们阅读一个很长的文档,没能一口气读完时。我们希望记住当前文档的最后阅读的位置,以便下次再用 emacs 阅读的时候能快速地定位到。那么,我们设置一个书签,通过 bookmark-set 对应快捷键为 C-x r m

列出保存的书签

bookmark-bmenu-list 对应快捷键为 C-x r l ,它将打开一个 Bookmark List 的 buffer 同时列出所有保存的书签。

书签列表 Bookmark List

在 Bookmark List 这个 buffer 里,有以下快捷键可以使用:

  • a 显示当前书签的标注信息;
  • A 在另一个buffer中显示所有书签的所有标注信息;
  • d 标记书签,以便用来删除 (x – 执行删除);
  • e 编辑当前书签的标注信息;
  • m 标记书签,以便用于进一步显示和其他操作 (v – 访问这个书签);
  • o 选中当前书签,并显示在另一个 window 中;
  • C-o 在另一个 window 中切换到当前这个书签;
  • r 重命名当前书签;
  • w 将当前书签的位置显示在 minibuffer 里。

跳转到一个书签

使用 bookmark-jump 函数,可以跳转到一个特定的书签,它绑定的快捷键为 C-x r b 。

如果你的 emacs 中安装了 helm(link:https://github.com/emacs-helm/helm) 这个插件,也可以使用 helm-bookmarks 这个命令来快速查找书签,并跳转到书签位置。

helm-bookmarks

通过 helm-bookmarks 命令来查找并跳转书签如下图:

修改默认排序

书签查找和跳转的时候,默认的书签排序是按字母排序的。如果想将最近访问的书签放在最前面,将下面代码添加到你的 emacs 配置文件中。

#+NAME: 修改默认排序
#+BEGIN_SRC emacs-lisp
(defadvice bookmark-jump (after bookmark-jump activate)
  (let ((latest (bookmark-get-bookmark bookmark)))
    (setq bookmark-alist (delq latest bookmark-alist))
    (add-to-list 'bookmark-alist latest)))
#+END_SRC

删除一个书签

删除一个书签对应的命令为 bookmark-delete 。

保存书签

最新版本 emacs(老版本的书签保存在 ~/.emacs.bmk ),

在退出的时候会自动保存书签。如果想手动保存书签的话,可以采用 bookmark-save 这个函数命令。默认的情况,emacs会将书签保存在 bookmark-default-file 变量对应的文件中。在我的机器中,对应的文件如下:

#+NAME: 书签文件路径
#+BEGIN_SRC emacs-lisp
ELISP> bookmark-default-file
"/Users/aborn/.emacs.d/.cache/bookmarks"
ELISP>
#+END_SRC

其他设置

有一个变量 bookmark-save-flag 。如果这个变量的值为一个数值,它表示修改(或新增)多少次书签后,emacs会自动保存书签到磁盘。当这个变量的值被设置为1时,每次对 bookmark 的改动,emacs就会自动保存内容到磁盘相应位置(这样可以防止 emacs 突然 crash 时 bookmark 的丢失)。

如果这个值设置为 nil,表示 emacs 不会主动保存 bookmark,除非用户手动调用 M-x bookmark-save 。

bookmark+

bookmark+(link:https://www.emacswiki.org/emacs/bookmark+.el) 是对 bookmark 的一个扩展的包。它有更多的功能:

  1. 原始的 bookmark 只能对文件位置记录,bookmark+ 对孤立的 buffer(没有关联文件的 buffer)也能保存书签;
  2. 支持对书签进行打 tag;
  3. 对文档的某个区域保存为书签,而不仅仅是某个位置;
  4. 记录了每个书签的访问次数,及最后一次的访问时间,可以基于它们排序;
  5. 多个书签可以有相同的名字;
  6. 可以对函数、变量等加书签。

更多功能请参考:https://www.emacswiki.org/emacs/BookmarkPlus#Bookmark%2B

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐