Cygwin下的ctags


今天,在Cygwin 下试图用ctags 为项目的代码建立tags 给vim 用。
输入习惯的ctags -R 之后,却发现这样的错误

$ ctags -R
ctags: no input files specified.
        Try `ctags --help' for a complete list of options.

又尝试了一下ctags –recurse却得到这样的结果:

$ ctags --recurse
ctags: unrecognized option `--recurse'
        Try `ctags --help' for a complete list of options.

看了一下ctags 的版本:

$ ctags --version
ctags (standalone 21.4.22)
Copyright (C) 2007 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README

翻开ctags –help,察看-R 选项的解释:

-R, --no-regex
        Don't create tags from regexps for the following files.

这根本就不是以前一直使用的ctags 嘛…

上网搜了一下,原来Cygwin 中的ctags 包和xemacs-tags 包同时安装的话,在命令连接上会产生冲突,敲入ctags 直接给连到xemacs-tags 包提供的ctags 上去了。

输入cygcheck -c ctags xemacs-tags cygwin 后得到这样的显示:

$ cygcheck -c cygwin ctags xemacs-tags
Cygwin Package Information
Package              Version        Status
ctags                5.8-1          OK
cygwin               1.7.1-1        OK
xemacs-tags          21.4.22-1      OK

从版本号上可以看出,ctags –version 显示的版本和xemacs-tags 的版本相同。

解决办法就是,启动Cygwin 的setup.exe,将xemacs-tags Uninstall。同时为了保险起见,对ctags 进行Reinstall。
(这里要对Cygwin 的setup.exe 发点牢骚了。输入包关键词时动态检索是不错,但是前提是包检索速度很快的情况下才有意义。Cygwin 的包检索速度之慢是有名的,第一次接触的人都可能以为程序挂了。白白浪费了不少时间,用户体验很低下。)

安装完了之后,输入ctags –version,这次终于找回我要的ctags 了。

$ ctags --version
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Dec 11 2009, 11:42:40
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex, +internal-sort
Tagged on: ,

4 thoughts on “Cygwin下的ctags

  1. yummy

    这个都被博主研究出来了。我看了一下version不对就重新安装了ctags就OK了。

    佩服博主的研究精神。

  2. MrBear Post author

    呵呵,其实是我一开始偷懒,装Cygwin的时候选了全部安装。
    结果包就冲突了。
    其实也难怪,Cygwin的包选择界面反应实在是太慢了。

  3. lincoln

    楼主发现得很好阿,我今天也遇到同样的问题,赞一个

发表评论

电子邮件地址不会被公开。