如何为 Ctags 无法处理的 MSVC 文件夹的所有头文件生成C++标签文件?

How to generate a tags file for all C++ header files of the MSVC folder that couldn't be process by Ctags?

本文关键字:文件 标签 C++ 文件夹 Ctags MSVC 处理      更新时间:2023-10-16

如果 Exuberant Ctags 无法在包含的文件夹中处理,如何为Microsoft Visual C++的所有C++头文件生成标签文件?

例如,Microsoft Visual C++ 的头文件的包含文件夹路径为:"C:\Program Files\Microsoft Visual Studio 11.0\VC\include">

  1. 如何为包含文件夹中的所有C++文件生成标签文件?
  2. 以及如何为包含文件夹中的所有C++文件生成以及在其子目录上?

我已经尝试了命令:

:!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:UsersUSRvimfilestagsmsvc C:Program FilesMicrosoft Visual Studio 11.0VCinclude

和命令:

:!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:UsersUSRvimfilestagsmsvc C:Program FilesMicrosoft Visual Studio 11.0VCinclude

但这些只是创建一个标记文件"msvc">,而不标记 \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 //

但是我很确定,如果正在进行的文件夹位于 Windows 用户的$HOME上,例如在路径"C:\Users\USR">下,则前面的 2 个命令将起作用。

我很确定这与你尝试处理的文件夹路径中的空格有关。 尝试在它周围加上双引号,即 :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:UsersUSRvimfilestagsmsvc "C:Program FilesMicrosoft Visual Studio 11.0VCinclude" . 使用反斜杠转义空格不起作用,因为 Windows 将其用作路径分隔符。