emacs Bookmark Plus 代码浏览/导航

1. 内置命令

pop-global-mark, 一般绑定在C-x C-@ 或者 C-x C-SPC;

pop-tag-mark, M-*, 返回到调用M-.的地方;

C-u C-SPC,返回到前面mark的位置,最多16个,参考:Mark Ring


2. Bookmark plus

参考:http://emacswiki.org/emacs/BookmarkPlus#toc18

1) 浏览代码时,自动保留浏览历史位置,可以前后跳转

这个功能 automatic bookmarking 可以实现,此模式保存的是autonamed类型的mark;

bmkp-auto-idle-bookmark-mode:针对当前buffer的,打开automatic bookmarking 模式;

在当前文件跳转:C-x p <up>/<down>/n/p/C-n/C-p (bmkp-previous-bookmark-this-file/buffer-repeat

参考:Cycling in the current buffer

bmkp-global-idle-bookmark-mode:对所有文件打开这个模式;

打开上面的模式,然后,按照2)中的方法,选择类型为autonamed的navlist,可以全局前后跳转了;

相关设置:

bmkp-auto-idle-bookmark-mode-delay:设置延时多少秒自动设置bookmark,默认60s;

bmkp-auto-idle-bookmark-min-distance:设置两个bookmark之间最短距离,小于这个距离,不会自动设置第二个bookmark;默认1000字节;

bmkp-auto-light-when-set:高亮显示bookmark;


2) 代码导航浏览,比1)更可控的前后跳转 --> Bookmark Navigation List (navlist)

C-x p : :bmkp-choose-navlist-of-type,类型选择导航的标签集合,如:autonamed, dired等

C-x p B:bmkp-choose-navlist-from-bookmark-list, 按列表文件/Buffer选择导航的标签集合,如:*Bookmark List*等;

bmkp-next-bookmarkbmkp-previous-bookmark用于在navlist中前后跳转,到顶了会从头开始;全局的,不限于一个buffer中;

参考:Cycling, Navigation list

3)

C-x p f :bmkp-next-bookmark-repeat,  C-x p b:bmkp-previous-bookmark-repeat

4) *BookmarkList*

一个临时的列表,内容是当前正在使用的列表;

5)C-x p e :edit-bookmarks

在*BookmarkList*中列出当前存在的bookmark;


6) autonamed bookmarks

C-x p RET 在当前创建一个autonamed类型的bookmark;

------

7) 给bookmark加tag:

a) bmkp-add-tags RET,然后选择bookmark,可以用TAB来补全


b) RET,然后可以选择已有的tag,用TAB可以补全已有的tag,也可以直接输入新的tag,然后RET,然后可以继续输入第二个tag,如果部署如tag名,直接RET,完成tag标记;

8) 给文件加 tag:bmpk-tag-a-file

9) 列出所有tags:bmpk-list-all-tags

10) 编辑Bookmark

C-x p e打开*Bookmark List*,在其中可以对指定bookmark编辑,命令多是单个按键,如:r表示重命名,如果不在*Bookmark List*中需要加C-x p前缀快捷键序列,下面描诉相关编辑命令:

a) r:重命名,可以重新更改bookmark name和重新指定目标文件;

b) e:编辑bookmark所有信息,出现一个编辑buffer,C-c C-c结束编辑:

c) T e:出现一个*Edit Tags for Bookmark xxx* 编辑bookmark的tags;

    T +:添加一个标签

    T - :去掉一个标签

d) T r:重命名标签,影响所有Bookmark;

---------

11) 给bookmarking加mark,marked bookmarks

在*Bookmark List*中:

a) % m:通过正则表达式来mark,mark后,用'>'表示,如下图:

    

b) U:取消所有mark;

c) t:切换marked状态,作用于所有bookmark;

4. 不同类型的bookmark

1) autofile bookmark: bookmarks that have the same name as their target files. They give you the effect of using files themselves as bookmarks.用于给文件加mark,而不在乎在文件中的什么位置。

C-x p c a , bmkp-bookmark-a-file :添加autofile类型的标签;该命令用到了ffap(find-file-at-point),第一次运行可能需要先M-x ffap,加载该ffap模块;

C-x j a, bmkp-autofile-jump:跳转到autofile类型的标签;

参考:http://www.emacswiki.org/emacs/BookmarkPlus#toc34

2) bookmark-file bookmark


3) autonamed bookmark

bmkp-toggle-autonamed-bookmark-set/delete: 设置/删除bookmark;


5. Bookmark-file

用于保存bookmarks。当前的所有Bookmarks,默认情况下处于*Bookmark List* buffer中,这个缓存默认对应于一个默认的bookmark-file文件~/.emacs.tmp,这个文件可以通过选项bookmark-default-file来更改;如果在运行中需要使用另外一个bookmark-file,可以通过命令:bmkp-empty-file创建一个空的bookmark-file,然后可以通过bmkp-switch-bookmark-file切换到那个bookmark-file中;保存当前的bookmarks到bookmark-file可以用bookmark-save


分清三个层次的概念:

1)当前的bookmarks:逻辑上的

2)*Bookmarks List* buffer:内存中的

3) Bookmark-file:磁盘上的

这三个概念基础是当前的bookmarks,*Bookmarks List* buffer保存的就是当前的bookmarks,C-x p e可以查看这个buffer,这个buffer对应的是一个磁盘文件bookmark-file;


下面罗列并比较相关的命令:

C-x p 0,bmkp-empty-file:(新建)创建一个空的bookmark-file;

bmkp-switch-bookmark-file:(打开)把当前的bookmarks替换为另一个bookmarks中的文件;

bookmark-save:(保存)保存当前的Bookmarks到bookmark-file;、

bookmark-write:(另存);

C-x p L,bmkp-switch-bookmark-file-create:如果文件不存在,等于bmkp-empty-file + bmkp-switch-bookmark-file;如果存在等于bmkp-switch-bookmark-file

C-x p l,bookmark-load:(添加)导入一个bookmark-file中的bookmarks到当前的bookmarks中;


Bookmark-file Bookmark

用于表示一个指向bookmark-file的Bookmark,跳转到这种bookmark相当于切换到了指定的bookmark-fle;

C-x p x, bmkp-set-bookmark-file-bookmark:创建 bookmark-file;



*. Bookmark+ 快捷键

C+x p C-h 打开快捷键列表:

Global Bindings Starting With C-x p:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值