【发布时间】: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