【问题标题】:Generate a tags file for all C++ files in specific directory except on its subdirectories为特定目录中的所有 C++ 文件生成标签文件,但其子目录除外
【发布时间】:2013-10-04 18:42:11
【问题描述】:

当您在 Windows 上的 \Downloads 文件夹中解压 Exuberant Ctags 的 "ctags58.zip" 存档,然后添加此文件命令到你的 vimrc 文件:

let $PATH .= ';C:\Users\USR\Downloads\ctags58'

Vim (文本编辑器)中使用:!mkdir C:\Users\USR\vimfiles\tags命令创建文件夹后,为什么下面的命令不能正常工作:

:!ctags --recurse=no --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:\Users\USR\vimfiles\tags\cpp C:\Users\USR\Projects\PROJ\include

还有:

:!ctags --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:\Users\USR\vimfiles\tags\cpp C:\Users\USR\Projects\PROJ\include

这些命令只是生成一个标签文件,没有标记 \include 目录中的任何文件。这是他们的完整来源:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME  Exuberant Ctags //
!_TAG_PROGRAM_URL   http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.8 //

我想要的是为 \include 目录中的所有 C++ 文件生成一个标签文件,除了 \include 子目录。下面的命令正在运行,但它正在处理所有子目录:

:!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:\Users\USR\vimfiles\tags\cpp C:\Users\USR\Projects\PROJ\include

注意C:\Users\USR\Projects\PROJ\include这个路径是存在的。

【问题讨论】:

  • 您的意思是要包含顶级include 目录中的所有文件,包括子目录,但不包含其他目录中也称为include 的任何文件(例如“include\something\include \file.txt")?或者您根本不想包含任何子目录?
  • @GavinSmith 包括顶级“\include”目录中的所有文件,但不包括其子目录中的所有文件。
  • 尝试忽略 -R 或将其替换为 --recurse=no
  • 我看到你第一次这样做了,但是你已经运行了两个 ctags 命令,我们看不到错误消息来自哪一个。您可以尝试一次运行一个命令吗?
  • 也许你应该在目录名称的末尾加上“*”,即C:\Program\ Files\PROG\LANG\include\*

标签: c++ windows shell vim command-line


【解决方案1】:

ctags 的--exclude 选项可用于排除名称与模式匹配或在文件中列出的文件。

如果您根本不想查看任何子目录,请不要使用-R (--recurse) 选项。然后你必须列出要处理的文件(而不是包含它们的目录)。使用通配符很容易做到这一点:例如,处理当前目录中的所有文件,ctags *。如果您只想包含具有特定文件扩展名的文件,则应使用适当的通配符模式;例如,*.cc*.cxx 用于 C++ 文件。看起来你没有这样做,只是命名包含文件的目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 2014-09-03
    • 1970-01-01
    相关资源
    最近更新 更多