Chinaunix

标题: 【插件】史上最强编辑器通用ctags插件OpenCTags使用指南v1.2--开发者必备 [打印本页]

作者: HonestQiao    时间: 2011-11-16 22:42
标题: 【插件】史上最强编辑器通用ctags插件OpenCTags使用指南v1.2--开发者必备
本帖最后由 HonestQiao 于 2012-03-24 23:15 编辑

【插件】史上最强编辑器通用ctags插件OpenCTags使用指南v1.2--开发者必备

  1. Changes Log:


  2. v1.2.0 2011-12-4
  3.     支持Java编写的可以设置用户配置的编辑工具
  4.     增加当前文件类查找Tags功能
  5.     增加设置当前目录参数
  6.     完善多种主流轻量级编辑器的配置

  7. v1.1.0 2011-11-26
  8.     完善提示窗口的显示样式
  9.     编辑器配置使用Json格式配置文件,方便定制到自己喜欢的编辑器,主流编辑器一网打尽

  10. v1.0.4 2011-11-21
  11.     支持提示窗口拖动,按住鼠标右键,即可拖拖拖【上一版本为鼠标左键】
  12.     增加回车键功能,按下可以会自动打开对应的文件并定位到对应的位置
  13.     修复TAB键功能,按下可以实现AutoComplete/自动完成功能
  14.     修复空格键功能,按下定位到当前选中文件的功能
  15.     修复左键选择功能和双击定位到当前选中文件的功能

  16. v1.0.3 2011-11-19
  17.     系统托盘图标支持鼠标右键,可以显示About和Exit正常退出
  18.     支持提示窗口拖动,按住鼠标左键,即可拖拖拖
  19.     支持窗口位置记忆,只要OpenCTags不退出,窗口位置将保持
  20.     默认tags文件修改为.tags,并支持自定义tags文件名,具体操作请看readme
  21.     帮助文档完善,ctags索引js配置增加

  22. v1.0.2 2011-11-17
  23.     在v1.0.1基础上,完善IPC调用模式支持超长路径,首次调用后,将作为IPC服务运行,使得性能得到重大提升,且支持定位浏览历史;
  24.   中文文档增加历史定位前后跳转查看功能。
  25.   弹出的提示窗口中,可以输入自己想要的关键字,进行快速查找。

  26. v1.0.1 2011-11-16
  27.     在OpenCTags.1.0.0基础上,开发单次调用模式,使得超长路径可以正常使用;


  28. v1.0.0 2009
  29.     Romeo JunCU开发了OpenCTags,让我们拥有史上最强编辑器插件OpenCTags
复制代码
首先:
    感谢Romeo JunCU曾经的卓绝工作,是他开发了OpenCTags最初版本,HonestQiao在此基础上进一步开发完善,让我们拥有史上最强插件,让我们的编辑插上了翅膀。

然后:
  这为啥是一个好东西呢?
  编写代码或者阅读他人代码时,想要快速查看函数的原型,或者要定位到函数或者类定义的地方,你会怎么做?
  主流的IDE(庞大)都会支持此类快速跳转,使用vim的牛人(膜拜)也会加上插件来支持。
  今天EditPlus/UltraEdit也能支持了,你也可以快速定位,在代码中来回跳转,效率倍增。
  可以定位的类型,包括但不限于:(主流语言均支持,C、C++、PHP、JAVA、Python、Ruby.......)
  1. 用define定义的宏或者常量
  2. 枚举型变量的值
  3. 函数的定义、原型和声明
  4. 名字空间(namespace)
  5. 类型定义(typedefs)
  6. 变量(包括定义和声明)
  7. 类(class)、结构(struct)、枚举类型(enum)和联合(union)
  8. 类、结构和联合中成员变量或函数
  9. 函数,类,结构体
复制代码
  有兴趣可以继续了解强大的ctags





使用:【以下为EditPlus配置,UltraEdit配置,请查看压缩包内说明文件】
    1. 将OpenCTags解压后的所有文件,拷贝到 编辑器安装目录\User Tools\OpenCTags\下;也可以拷贝到其他目录,但是要对应修改以下的配置;

    2. 在编辑器的 工具(Tools)菜单=>配置用户工具(Config User Tools)中,添加工具(Add Tool)并进行如下设置:
        a.【假设快捷键为Ctrl+1】
            菜单名称:CTags Build
            命令:......\编辑器安装目录\User Tools\OpenCTags\ctags.exe   (请根据实际路径设置)
            参数: -f "openctags.tags" -R *
            初始目录:$(FileDir)
            动作:捕捉输出
            输出模板:默认
            保存:无

        b.【假设快捷键为Ctrl+2】
            菜单名称:OpenCTags定位
            命令:......\编辑器安装目录\User Tools\OpenCTags\OpenCTags.exe   (请根据实际路径设置)
            参数: -t "openctags.tags" -word "$(CurWord)" -editor editplus -sel "$(CurSel)" -file "$(FilePath)" -line $(CurLine)
            初始目录:$(FileDir)
            动作:退出时关闭窗口
            输出模板:默认
            保存:无

        c.【假设快捷键为Ctrl+3】
            菜单名称:OpenCTags向前查找
            命令:......\编辑器安装目录\User Tools\OpenCTags\OpenCTags.exe   (请根据实际路径设置)
            参数:-t "openctags.tags" -word "$(CurWord)" -editor editplus -sel "$(CurSel)" -file "$(FilePath)" -line $(CurLine) -action p
            初始目录:$(FileDir)
            动作:退出时关闭窗口
            输出模板:默认
            保存:无

        d.【假设快捷键为Ctrl+4】
            菜单名称:OpenCTags向后查找
            命令:......\编辑器安装目录\User Tools\OpenCTags\OpenCTags.exe   (请根据实际路径设置)
            参数:-t "openctags.tags" -word "$(CurWord)" -editor editplus -sel "$(CurSel)" -file "$(FilePath)" -line $(CurLine) -action n
            初始目录:$(FileDir)
            动作:退出时关闭窗口
            输出模板:默认
            保存:无

    3. 使用方法:
        a. 到项目的根目录,打开一个文件,然后按快捷键Ctrl+1(或者点击菜单执行“CTags Build”),等待建立ctags完成,在根目录会生成tags文件,注意在svn/git/hg/cvs等中设置忽略该文件
        b. 打开项目内任意文件,选中需要查看的关键字(类名或者函数方法名或者任意玩意),,然后按快捷键Ctrl+2(或者点击菜单执行“OpenCTags”),将会打开OpenCTags提示窗口,提示对应的tags信息
        c. 提示窗口中,会给出匹配的名称,原型缩写,以及所在的文件相对路径,鼠标移动上去,会显示完整的原型提示,双击,会自动打开对应的文件并定位到对应的位置
        d. 提示窗口中,左则的图标代表不同的类型,包括但不限于:类、方法/函数、常量定义、变量等等
        e. 进过多次跳转后,可以按快捷键Ctrl+3、Ctrl+4,来回快速跳转,方便异常
        f. 按下鼠标右键,提示窗口可以随意拖动,只要OpenCTags服务不退出,窗口位置可以自动保持
        g. 提示窗口输入栏,可以任意改变,输入你喜欢的关键字(类名或者函数方法名或者任意玩意)可以实时搜索
        h. 按TAB,会将当前选中的tag自动输入到编辑器(AutoComplete/自动完成),按空格键或者回车会自动打开对应的文件并定位到对应的位置




附加:
  0. ctags是个什么东东?你out了,快点上网查吧。

    1. 该插件,来自于sf的OpenCTags,我只是经过简单完善和给予中文说明后提供;再次感谢Romeo JunCU的卓绝工作。
   
    2. 如果是editplus2,请使用-editor editplus2
   
    3. 编辑器的快捷键列表可以看菜单=》帮助=》键盘映射,或者菜单=》工具=》参数设置=》快捷键=>类型:工具=》用户工具1~20进行设置
   
    4. 欢迎推广,欢迎传播至少一人,好东西要一起分享嘛!

    5. 如有问题和建议,请致信honestqiao@gmail.com,谢谢

    6. 在线讨论,请访问:http://bbs.chinaunix.net/thread-3619603-1-1.html
   
    7. 欢迎访问史上最强PHP中文手册--PHP手册中文翻译补完计划 --http://code.google.com/p/phpdoc-zh/

    8. 待补充




问题:

  Q: Could not find install dir for editor ...?
  A: 找不到 编辑器的安装路径,绿色版本的一般会出现该问题;
   编辑“tools\EditPlus安装路径.reg”,将其中的EditPlus路径修改为你自己的,然后保存,然后双击导入注册表即可。
   或者打开regedit,在HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install,设置Path字符串属性,值为 编辑器安装路径,不存在项或者目录就建立新的。
   如果是EditPlus2,记得修改为EditPlus 2。

  Q: 双击无法打开文件?
  A: 请打开“tools\Microsoft Visual Studio Spy++.exe”,点搜索菜单,点查找窗口,然后点那个瞄准器,拖到 编辑器的编辑代码的那个位置(需要预先打开一个文件),然后告诉我,Spy++的“窗口搜索”的类那个地方显示的信息,例如我的是“AfxFrameOrView90su”,你的呢?


  Q: 修改或者增加新的代码后,匹配不到怎么办?
  A: 此时,因为代码发生了变化,所以需要及时再来一次:CTags Build

  Q: 索引JS文件出错,CTags Build时提示:ctags: Warning: ignoring null tag in .............js
  A: js文件内有特殊结构,不在CTags默认定义列表中;请将“tools\.ctags”拷贝到%HOMEDRIVE%%HOMEPATH%(Win+R,输入回车即可打开)目录下,然后重新Build
问题:

AkelPad.png (67.57 KB, 下载次数: 403)

AkelPad.png

Crimson Editor.png (72.75 KB, 下载次数: 392)

Crimson Editor.png

EditPlus.png (105.26 KB, 下载次数: 405)

EditPlus.png

EmEditor.png (57.83 KB, 下载次数: 397)

EmEditor.png

KomodoEdit.png (45.1 KB, 下载次数: 402)

KomodoEdit.png

Notepad .png (60.82 KB, 下载次数: 388)

Notepad  .png

PhpStorm.png (49.14 KB, 下载次数: 394)

PhpStorm.png

Programmer's Notepad.png (100.47 KB, 下载次数: 394)

Programmer's Notepad.png

PSPad.png (72.24 KB, 下载次数: 383)

PSPad.png

TextPad.png (54.58 KB, 下载次数: 395)

TextPad.png

UEStudio.png (86.2 KB, 下载次数: 390)

UEStudio.png

UltraEdit.png (92.56 KB, 下载次数: 371)

UltraEdit.png

OpenCTags.v1.2.0.tar.gz

905.75 KB, 下载次数: 1871


作者: unicac    时间: 2011-11-16 23:04
mark一下,乔姐辛苦了。
作者: X0YO    时间: 2011-11-16 23:18
大妈辛苦了
作者: 浪子雄心    时间: 2011-11-17 06:33
我靠 ,此时发帖排在了第三楼

支持大妈 , 推广之
作者: jialong520    时间: 2011-11-17 08:58
UEstudio 可以用吗
作者: jialong520    时间: 2011-11-17 09:11
UEstudio 可以用吗
作者: 菜鸟爵爷    时间: 2011-11-17 09:50
我来顶乔大姐
作者: xinglu1983    时间: 2011-11-17 10:18
支持!editplus入门时的代码利器!
作者: nsnake    时间: 2011-11-17 13:50
提示: 该帖被管理员或版主屏蔽
作者: lreng    时间: 2011-11-17 15:08
有什么用。
作者: CFC4N    时间: 2011-11-18 13:34
试用了一下,效果不是很理想,遇到JS的话,就中断了。
作者: HonestQiao    时间: 2011-11-18 17:14
试用了一下,效果不是很理想,遇到JS的话,就中断了。
CFC4N 发表于 2011-11-18 13:34



设置:
1. 打开命令行,输入: cd %HOMEDRIVE%%HOMEPATH% (一般在 Cocuments and Settings登录用户名 目录下 )
2. 在该目录下建立一个文件名为 .ctags
3. 在该文件里面输入:

  1. --langdef=js
  2. --langmap=js:.js
  3. --regex-js=/["']?(this\.)?([A-Za-z0-9_$]+)["']?((\.prototype)?(\.[A-Za-z0-9_$]+))?[ \t]*[:=][ \t]*function/\2\5/f,function/
  4. --regex-js=/function[ \t]+([A-Za-z0-9_$]+)/\1/f,function/
复制代码
在重建一次,看看结果如何?
作者: cxsoho    时间: 2011-11-24 11:05
为什么定位和查找,一闪而过,那个窗口出不来呢?
作者: qloog    时间: 2011-11-24 12:40
看起来很强大!!!
作者: HonestQiao    时间: 2011-11-26 22:00
为什么定位和查找,一闪而过,那个窗口出不来呢?
cxsoho 发表于 2011-11-24 11:05



设置不正确,请下载最新版本。
作者: lxvison    时间: 2011-11-26 22:43
测试了下,看php代码,很好用,呵呵,在linux下一直是vim配合ctags看代码的,现在终于win下也有了,可以用editplus小巧的编辑器方便的看代码了。thnx!~
作者: 邂逅米莱    时间: 2011-11-26 23:25
嘿嘿,先占个位置慢慢看
作者: HonestQiao    时间: 2011-11-27 16:14
本帖最后由 HonestQiao 于 2011-11-27 16:36 编辑

完美支持Komodo Edit,配制方法如下:

OpenCTags.ini的editors部分,加入如下编辑器配置:

  1. ["Komodo Edit", "komodo.exe", "Scintilla",   "E:\\Program Files (x86)\\Code\\ActiveState\\Komodo Edit\\",  "-l __LINENUMBER__ \"__PATH____FILENAME__\""]
复制代码
请注意将Komodo Edit的安装路径修改为你自己的。

打开Komodo Edit,点Views菜单中的Tabs & Sidebars子菜单中的Toolbox打开Toolbox面板(默认在右则),在Toolbox面板按鼠标右键Add一个New Command,进行如下设置:(请注意修改为你自己的路径)
Command设置:
Command: OpenCTags定位

Command: "E:\Program Files\EditPlus\User Tools\OpenCTags\OpenCTags.exe" -t "openctags.tags" -word "%w" -editor "Komodo Edit" -sel "%s" -file "%f" -line %L
[  ] Pass selection as input
[  ] Insert output

Advanced Options
Start in: %D
Run in : No colsole ( GUI Application )

Key Binding设置:
New Key Sequence:按下快捷键,再点Add即可设置


然后选中一个函数或者一个单词(必须),然后双击Toolbox面板的“OpenCTags定位”或者按刚才设置的快捷键,即可开始OpenCTags之旅了。

然后,可以参考“readme.OpenCTags通用说明.txt”,来设置其他几个命令。
作者: HonestQiao    时间: 2011-11-27 16:50
主流编辑器用户工具设置:

  1. UltraEdit/UEStudio:
  2. 添加方式:“高级”菜单=》工具栏配置
  3. 调用命令:"E:\Program Files\EditPlus\User Tools\OpenCTags\OpenCTags.exe" -t openctags.tags -editor UltraEdit -sel "%sel%" -file "%f" -line %line%
  4. 当前目录:%p

  5. EditPlus:
  6. 添加方式:“工具/Tools”菜单=》配置用户工具
  7. 调用命令:E:\Program Files\EditPlus\User Tools\OpenCTags\OpenCTags.exe
  8. 调用参数:-t openctags.tags -word "$(CurWord)" -editor editplus3 -sel "$(CurSel)" -file "$(FilePath)" -line $(CurLine)
  9. 当前目录:$(FileDir)

  10. EmEditor:
  11. 添加方式:“工具/Tools”菜单=》外部工具=》自定义工具
  12. 调用命令:E:\Program Files\EditPlus\User Tools\OpenCTags\OpenCTags.exe
  13. 调用参数:-t "openctags.tags" -word "$(WordText)" -editor EmEditor -sel "$(SelText)" -file "$(FilenameEx)" -line $(CurLine)
  14. 当前目录:$(Dir)

  15. Programmer's Notepad:
  16. 添加方式:“工具/Tools”菜单=》Options=》Tools=》Global Tools
  17. 调用命令:E:\Program Files\EditPlus\User Tools\OpenCTags\OpenCTags.exe
  18. 调用参数:-t "openctags.tags" -word "%w" -editor "Programmer's Notepad" -sel "" -file "%d" -line %l
  19. 当前目录:%d

  20. Komodo Edit:
  21. 添加方式:“View”菜单=》Tabs& Sidebars =》Toolbox,Toolbox面板=》鼠标右键=》Add=》New Command
  22. 调用命令:"E:\Program Files\EditPlus\User Tools\OpenCTags\OpenCTags.exe" -t "openctags.tags" -word "%w" -editor "Komodo Edit" -sel "%s" -file "%f" -line %L
  23. 当前目录:%D
复制代码
对应工具设置中,除了CTags Build选择为Console/DOS程序并捕捉输出外,其他的请全部设置为GUI/Windows程序并不捕获输出,请参考“readme.OpenCTags通用说明.txt”
作者: bkkkd    时间: 2011-11-28 15:30
请ctags与http://ctags.sourceforge.net/有什么区别吗?
作者: HonestQiao    时间: 2011-11-29 01:10
请ctags与有什么区别吗?
bkkkd 发表于 2011-11-28 15:30



    使用的就是这个,不过针对php的规则做了完善的。
作者: HonestQiao    时间: 2011-12-01 00:07
TextPad、PSPad、AkelPad、PhpStorm

均已提供支持,下一个版本将提供更完善的演示性配置
作者: hbeimf    时间: 2011-12-01 09:58

作者: weigu888    时间: 2011-12-03 14:53
谢谢分享,。。
作者: meetrice    时间: 2011-12-04 14:51
在Editplus3里,使用Tab自动完成时,会报错:
DDE data request failed: reentrancy problem.
但仍然可以自动完成选中的单词。
作者: ltqk    时间: 2011-12-05 09:22
一定要支持,这么好的东西
作者: smarteng    时间: 2011-12-08 09:14


多数功能都很不错,就是这个显示定位了,双击这个打不开~~
这个应该怎么设置?
作者: HonestQiao    时间: 2011-12-08 21:49
多数功能都很不错,就是这个显示定位了,双击这个打不开~~
这个应该怎么设置?
smarteng 发表于 2011-12-08 09:14



    编辑器是否正确对应,对应编辑器的编辑器界面类名称是否对应?
作者: zhs227    时间: 2011-12-10 17:56
请教一下,工具目录或者是编辑器目录不支持中文吗?我的路径什么的都配置的没有问题了,但是执行的时候弹出提示:
---------------------------
Error
---------------------------
1 :Could not find install dir for editor uedit
---------------------------
确定   
---------------------------

我确定工具目录配置是正确的,只是openCtags和UltraEdit的路径里面都有中文。
作者: HonestQiao    时间: 2011-12-13 00:19
请教一下,工具目录或者是编辑器目录不支持中文吗?我的路径什么的都配置的没有问题了,但是执行的时候弹出 ...
zhs227 发表于 2011-12-10 17:56



经过实际测试,将编辑器的目录,修改为中文,并在OpenCTags.ini之中,作对应的配置。
然后,按照以往方式调用,一切均正常。
作者: HonestQiao    时间: 2011-12-13 00:19
请教一下,工具目录或者是编辑器目录不支持中文吗?我的路径什么的都配置的没有问题了,但是执行的时候弹出 ...
zhs227 发表于 2011-12-10 17:56



    请问你在OpenCTags.ini之中,配置了uedit了吗?
作者: China-Unix-123    时间: 2011-12-13 09:53
打开文件进行写入时错误
        操作成功完成
作者: 0307wgj    时间: 2011-12-19 10:21
哇,好强大~~~
作者: kee212    时间: 2011-12-19 17:05
不明真相
只用dreamweaver的飘过
作者: alexru    时间: 2011-12-21 21:01
textMate可以用不?
作者: zwong    时间: 2012-02-10 13:19
唤不出窗口
作者: yakczh    时间: 2012-02-16 19:51
是不是每個打開的php文件,都需要build一下,不然新出現的單詞就匹配不到?
作者: yuhuimoon    时间: 2012-02-27 12:07
太好了,终于找到了
作者: freespray    时间: 2012-02-27 14:40
ecitplus v3.31怎么一用定位的,就报错呢
作者: freespray    时间: 2012-02-27 14:50
加载定位到当前文件的
作者: unix_fans_xxx    时间: 2012-03-05 15:04
不错啊,谢谢乔
~~支持你~!!!!
有空的话, 请继续保持 更新
作者: xyjkenji    时间: 2012-03-18 23:58
谢谢。。。
作者: handylee    时间: 2012-07-11 10:56
一闪而过啊~~
作者: buhuiwang    时间: 2012-07-23 10:11
这东西真的不错 :wink:
作者: ulovko    时间: 2012-07-28 10:10
感谢分享 赞! ^_^
作者: hand4ever    时间: 2012-08-09 13:51
好东西,推荐了同事使用了
作者: smileqs    时间: 2012-10-07 11:49
请问多tag文件怎么处理?比如单独生成的系统INCLUDE的tag文件.谢谢.
作者: sickcat2004    时间: 2012-10-09 09:59
lol真给力啊
作者: feichideche    时间: 2012-12-14 19:09
谢谢分享,很想试试跳转的功能
作者: fender0107401    时间: 2012-12-16 09:16

作者: freefish1988    时间: 2013-08-16 11:14
配置成功了,非常好用,php手册也非常好用。多谢楼主
作者: see7di    时间: 2013-08-24 20:13
人好,文章更好,謝謝了
作者: enhao_wu    时间: 2013-11-20 09:12
我用的是UltraEdit 安装路径是D:\Program Files\IDM Computer Solutions\UltraEdit 在定位时提示如附件,不知道如何解决,跪求!

无标题.png (199.09 KB, 下载次数: 208)

出错图片

出错图片

作者: tuzwu    时间: 2013-11-21 09:22
请问楼主,如何设置弹出来的框的宽高呢?现在弹出来的框太小,总是要拉动一下才能看完全.

感谢楼主开发了这么好用的插件,顶.
作者: 漂浮的木头    时间: 2013-11-23 19:44
定、。。。。。。。。。。。。。。。。。。
作者: HonestQiao    时间: 2013-12-05 10:27
回复 53# enhao_wu


    检查下配置是否正确,提示这个的,多半是配置无法正确解析。
作者: HonestQiao    时间: 2013-12-05 10:29
回复 54# tuzwu


    当时急,没有做的很完善,有时间我会继续完善的。我先在完全是用BSD/KDE作为日常平台,所以需要找机会完善。
作者: Hxd7172    时间: 2014-02-07 22:32
楼主,您好!
根据设置,一直报如下错误
Not Know Editor
OpenCtags.ini配置如下
{
    "editors" :
    [
        ["EditPlus 3", "EDITPLUS.EXE", "AfxFrameOrView90su", "D:\\Program Files\\EditPlus 3\\",                "-e \"__PATH____FILENAME__\" -cursor __LINENUMBER__:1 "]
        
    ]
}
麻烦指点下
作者: duoduoyu    时间: 2015-04-28 11:20
win7下,不能用。
作者: MrWhite    时间: 2016-04-10 13:02
我的可以出现函数提示,但是点函数的时候, 会不跳转,是为什么路径错误的原因吗
作者: wenda3000    时间: 2017-06-18 23:28
download 下载附件
作者: mini92    时间: 2018-01-03 00:56
不知道楼主还有没更新 ,我严格按照操作设置的 怎么都跳转不了 Win7 64位系统





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2