emacs speedbar功能介绍
speedbar启动命令M-x speedbar,效果如下:
speedbar是一个frame,它会遮挡你工作中的buffer。鼠标左键点击,或者敲回车,都会自动跳转到相应的文件或者文件里的方法定义或者变量的定义。
函数speedbar-get-focus :在buffer和speedbar之间切换
Base Navigation
speedbar有很多mode,这些mode有通用的行为,菜单和钩子(hook),所以只要掌握了一个mode,其余的mode就很容易掌握。
所有mode都通用的键绑定:
- Q:退出speedbar,并杀死speedbar所在的frame
- q:退出speedbar,并隐藏speedbar所在的frame
- g:刷新speedbar里显示的内容,比如你在启动speedbar后,在文件夹里又添加了文件,这个文件不会自动显示在当前的speedbar里,按了g后,就会显示出来了。
- t:在从slowbar mode 切换到speedbar ,或者从speedbar 切换到slowbar mode。
- n/p:向上或者向下移动,并显示项目的摘要信息,如果项目是文件,就显示文件的权限所属,文件大小等。
- M-n/M-p:跳跃地(跨过已经展开的list)向上或者向下移动,并显示项目的摘要信息。
- C-x b :切换buffer。
- b:切换到Quick Buffers mode (显示打开了多少个buffer)
- f:Switch into File mode. (显示buffer所在目录下的所有相关文件,比如buffer里是.c文件,则显示这个.c文件所在目录下的所有.c .h .hpp. cpp等文件)。
- r:切回到上一个mode
- 回车/e:如果在file mode则,打开或者编辑这个文件;如果在buffer mode,则编辑这个buffer。
- +/=:展开list
- -:合上list
- 空格:展开/合上
File Mode
第一行是当前目录的全路径,可以鼠标点击某个文件夹,就会跳转。
1,如果是c/c++文件,当4.c文件有与之对应的最新4.o文件的话,4.c后面有下图的图标。
2,如果是c/c++文件,当用4.c文件生成4.o文件后,又修改了4.c文件话,4.c后面有下图的图标。
3,有些文件在speedbar里是没有被显示的。不显示的级别有个级别。
级别1:以点开头的文件
级别2:变量completion-ignored-extensions 里的文件。
变量completion-ignored-extensions的值:
(".o" "~" ".bin" ".lbin" ".so" ".a" ".ln" ".blg" ".bbl" ".elc" ".lof" ".glo" ".idx" ".lot" ".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/" ".fmt" ".tfm" ".class" ".fas" ".lib" ".mem" ".x86f" ".sparcf" ".dfsl" ".pfsl" ".d64fsl" ".p64fsl" ".lx64fsl" ".lx32fsl" ".dx64fsl" ".dx32fsl" ".fx64fsl" ".fx32fsl" ".sx64fsl" ".sx32fsl" ".wx64fsl" ".wx32fsl" ".fasl" ".ufsl" ".fsl" ".dxl" ".lo" ".la" ".gmo" ".mo" ".toc" ".aux" ".cp" ".fn" ".ky" ".pg" ".tp" ".vr" ".cps" ".fns" ".kys" ".pgs" ".tps" ".vrs" ".pyc" ".pyo")所有上面为后缀名的文件都属于级别2里不被speedbar显示的文件
4,file mode 里的键绑定
U:移动到上一级文件夹
I:显示项目的摘要信息,如果项目是文件,就显示文件的权限所属,文件大小等。
B:编译光标所在行的 Emacs Lisp 文件
L:加载当前光标所在行.elc文件所对应的源码文件,如果存在的话。
C:拷贝当前光标所在行的文件
R:重命名当前光标所在行的文件(也可以改变当前文件的存放路径)
D:删除当前光标所在行的文件
O:删除当前光标所在行的文件(4.c),所对应的4.o文件。
Buffer Mode
键绑定:
- k:杀死当前光标所在行的buffer
- r:重新加载前光标所在行的buffer所对应的文件到buffer
一些钩子(Hooks)
speedbar-visiting-file-hook :
Hooks run when speedbar visits a file in the selected frame.
speedbar-visiting-tag-hook :
Hooks run when speedbar visits a tag in the selected frame.
speedbar-load-hook :
Hooks run when speedbar is loaded.
speedbar-reconfigure-keymaps-hook :
当切换mode后,就会触发重新生成键位图;当生成键位图后,就会调用这个钩子。
speedbar-before-popup-hook :
在弹出speedbar前,调用这个钩子。
speedbar-before-delete-hook :
在删除或者隐藏speedbar的frame前,调用这个钩子。
speedbar-mode-hook :
speedbar启动后,调用这个钩子。
speedbar-timer-hook :
运行peedbar timer function 后,调用这个钩子。
speedbar-scanner-reset-hook :
Hook called whenever generic scanners are reset. Set this to implement your own scanning or rescan safe functions with state data.