Scite 标签

lua-users home
wiki

在大型项目中导航是很常见的需求,而 ctags 是一个非常有效的工具。一个流行的 ctags 版本是 Darren Hiebert 开发的 Exuberant Ctags [1],它支持相当多的不同语言。目前有几个脚本,因此有几种方法可以提供 SciteTags 功能。

基于 readtags 的基本版本

以下 SciteTags 库是一组小脚本,用于驱动提供的 readtags 程序。请参阅 Files:wiki_insecure/editors/SciTE/ctags.lua

扩展版本

这些是扩展的实验版本,仅与 SciteExtMan 一起使用。请注意,这些脚本不需要 readtags,并且在慢速机器上速度要快得多。

这是 SciteExtMan 的原始版本: <=> Files:wiki_insecure/editors/SciTE/ctagsx.lua

这是一个替代版本,它修复了标签文件中存在空格的一些问题…… <=> Files:wiki_insecure/editors/SciTE/ctagsx_alt.lua

另一个替代版本,它动态搜索并使用相对于打开文件 $FileDir 路径的最近的 tags 文件。此版本不需要在 SciTE 的属性文件中指定 ctags.path.cxx,并且它也能够处理非 Exuberant ctags <=> Files:wiki_insecure/editors/SciTE/ctagsdx.lua

用法示例

获取 ctags 工具

http://home.mweb.co.za/sd/sdonovan/SciTE/ctags.zip 包含一个预编译的 ctags Win32 版本。确保 ctags.exe 和 readtags.exe 都在您的路径中,并像往常一样加载 ctags.lua。(在 *nix 系统下,请注意通常有一个名为 'ctags' 的程序,它不是 Exuberant!)尽管如此,ctagsdx.lua 现在已经能够处理 ctags,无论是 Exuberant 还是非 Exuberant。

设置 SciTE

将以下内容放入您的属性文件中,除非您正在使用扩展版本 ctagsx.luactagsx_alt。所有与 SciteExtMan 一起工作的扩展版本都不需要属性文件。

ctags.path.cxx=<full path to tags file>

command.name.14.*=Find Tag
command.14.*=find_ctag $(CurrentWord)
command.subsystem.14.*=3
command.mode.14.*=savebefore:no
command.shortcut.14.*=Ctrl+.

command.name.15.*=Go to mark
command.15.*=goto_mark
command.subsystem.15.*=3
command.mode.15.*=savebefore:no
command.shortcut.15.*=Alt+.

command.name.16.*=Set Mark
command.16.*=set_mark
command.subsystem.16.*=3
command.mode.16.*=savebefore:no
command.shortcut.16.*=Ctrl+'

command.name.17.*=Select from Mark
command.17.*=select_mark
command.subsystem.17.*=3
command.mode.17.*=savebefore:no
command.shortcut.17.*=Ctrl+/


#ctags.exe --recurse --totals=yes --languages=c,c++ --verbose "d:\*" "c:\*"
command.name.18.*=rebuildTags
command.18.*=$(SciteDefaultHome)/ctags --recurse --totals=yes --languages=c,c++ "C:\Dokumente und Einstellungen\lars\Desktop\linux-2.6.15.7\*"
command.subsystem.18.*=0
command.mode.18.*=savebefore:no

生成标签文件

例如,如果您想浏览 SciTE 源代码,那么要构建一个标签数据库,您将执行以下命令:
e:\scite> ctags src\*.cxx src\*.h win32\*.cxx win32\*.h
然后将 ctags.path.cxx 设置为 e:\scite\tags

查找标签(适用于所有版本)

基本操作是 Find Tag(查找标签),或 Ctrl+.,它作用于光标下的单词。这会设置一个标记,以便您可以使用 Go to Mark(转到标记),或 Alt+. 立即返回到原始位置。(我在 GTK 1.2 版本中遇到过设置此类快捷方式的困难,所以请自行尝试。无论如何,您的手指会找到其他更舒适的快捷方式)。

另外,Ctrl+' 会 Set Mark(设置标记),而 Ctrl+/ 会选择光标和标记位置之间的文本。

对于基本脚本,因为它需要运行 readtags,您会在 Windows 下看到一个讨厌的闪烁黑框。一个不需要修补 SciTE 的快速解决方案是 SciteOther 库;如果 SciteTags 在通常位置可用,它会自动尝试加载它。所有扩展版本 ctagsx.lua, ctagsx_alt.lua 都不会出现此问题,但您必须将脚本文件放入您的 scite_lua 目录。

扩展功能(适用于扩展版本)

这些功能仅适用于 ctagsx.lua, ctagsx_alt.lua。当搜索发现多个匹配的标签时,所有匹配的多个标签将显示在一个下拉列表中供选择。还有一个 Alt+C 击键功能,允许按名称查找标签。Alt+C 后跟 't' 允许按输入的完全相同的名称查找标签。Alt+C 后跟 'f' 允许使用正则表达式查找标签名称。
RecentChanges · preferences
编辑 · 历史
最后编辑于 2007 年 5 月 11 日,上午 11:12 GMT (差异)