0

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

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

:!mkdir C:\Users\USR\vimfiles\tagsVim (text editor)中使用命令创建文件夹后,为什么下面的命令不能正常工作:

:!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是存在的。

4

1 回答 1

1

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

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

于 2013-09-28T18:51:13.987 回答