自定义命令类似于命令 shell 批处理文件。它们允许 Source Insight 生成任何命令行驱动工具,并捕获其输出。自定义命令还可以执行 Windows 程序。
自定义命令可以执行,然后返回到 Source Insight。shell 自定义命令的输出可以捕获到文件中进行编辑,也可以粘贴到当前选择中。自定义命令存储为当前配置的一部分。
自定义命令可用于生成编译器、源代码控制程序和文件过滤器,例如“sort”。
编辑自定义命令的快捷方式是按住 Ctrl 键并选择命令。该命令的“自定义命令”对话框将出现。
Custom Command Dialog box
命令
显示当前选定命令的名称。此下拉列表包含所有定义的自定义命令的列表。
运行
这是调用自定义命令时要执行的命令行。运行文本框可以包含特殊元字符。请参阅:'运行' 字段格式。
目录
执行“运行”文本框中指定的脚本时使用的工作目录。Source Insight 在运行命令之前将当前工作目录设置为此位置。如果留空,Source Insight 会将当前工作目录设置为项目源目录。此字段也可以包含特殊元字符,就像“运行”字段一样。请参阅:“运行”字段格式。
命令行占位符
运行文本框和目录文本框都可以包含元字符,这些元字符会导致字符串中的以下项目被替换。
Character | Expands to | Example |
%f | full path name of the current file * | c:\myproj\file.c |
%r | path name of current file relative to the project source directory * | file.c |
%n | leaf name of the current file * | file.c |
%d | directory path of the current file | c:\myproj |
%h | directory path of current file without the drive letter | \myproj |
%b | leaf name of current file w/o extension * | file |
%e | extension of the current file | c |
%c | drive letter of the current file | c: |
%p | the current project name | c:\myproj\myproj |
%j | the source directory of the current project | c:\myproj |
%J | the data directory of the current project | C:\Documents and Settings\Jim Smith\Documents\Source Insight 4.0\Projects\Base |
%v | the drive letter of the current project's source directory | c: |
%o | leaf name of the project without path | myproj |
%l | the current line number | any number |
%w | first word in the selection, or the word under the cursor | any word |
%s | name of a temp file where the current selection is saved while the custom command runs. | d:\tmp\vt0004. |
%a | the current date | 05-12-02 |
%t | the current time | 08:23 |
%1 - %9 | user is prompted for arguments | any strings |
您还可以使用以下任一修饰字符为上述任何标有 * 的字符添加后缀。
Character | Expands to | Example |
%o | for all open files | %f%o |
%m | for all modified files | %f%m |
路径变量
您还可以在 Run 和 Dir 文本字段中使用路径变量。请参阅:预定义路径变量。
ShellExecute Commands 脚本执行命令
ShellExecute 允许您调用 Windows Shell 命令。
自定义命令支持“ShellExecute”函数,该函数允许您告诉 Windows shell 对指定文件执行操作。ShellExecute 的优点在于您不需要知道注册了哪个特定应用程序来处理特定类型的文件。有关技术背景信息,请参阅 Windows Shell API 文档中的“ShellExecute”函数。
要使用此功能,自定义命令中的运行字符串需要以“ShellExecute”开头。格式应为:
ShellExecute <verb> <filespec> <optional parameters>
例如,要浏览网站:
ShellExecute open http://www.somedomain.com
动词是一个单词,可以是以下之一:
- edit 打开文件的编辑器。
- explore 该函数探索指定的文件夹。
- open 该函数打开指定的文件。该文件可以是可执行文件或文档文件。它也可以是文件夹。
- print 该函数打印指定的文档文件。如果 filespec 不是文档文件,该函数将失败。
- properties 显示文件或文件夹的属性。
- find 启动在“开始”菜单上找到的“查找文件”应用程序。
- ""(空字符串)跳过此参数到 ShellExecute。
filespec 参数可以是任何有效路径。使用双引号将包含嵌入空格的复杂路径名括起来。您还可以使用元字符,例如 %f(表示当前文件)。它也可以是可执行文件的名称。
可选参数列表是 filespec 右侧的任何内容。它指定要传递给最终运行的应用程序的参数。格式由要调用的动词和运行的应用程序决定。您也可以在此处使用自定义命令元字符。
自定义命令的工作目录文本框在调用 ShellExecute 之前应用。但是,使用 ShellExecute 时无法捕获或解析输出。
ShellExecute Examples 脚本执行案例
这里有一些有用的例子,展示如何使用 ShellExecute。
Action | Custom Command Run String |
To browse to a web site: | ShellExecute open http://www.somewebsite.com |
To explore your Windows documents file folder: | ShellExecute explore "C:\Documents and Settings" |
To launch Internet Explorer: | ShellExecute "" iexplore |
To preview a file in Internet Explorer: | ShellExecute "" iexplore %f |
To search for files in the current project folder: | ShellExecute find %j |
浏览网站:
ShellExecute open http://www.somewebsite.com
浏览 Windows 文档文件夹:
ShellExecute explore "C:\Documents and Settings"
启动 Internet Explorer:
ShellExecute "" iexplore
在 Internet Explorer 中预览文件:
ShellExecute "" iexplore %f
在当前项目文件夹中搜索文件:
ShellExecute find %j
在后台运行自定义命令
当 Source Insight 生成自定义命令 shell 程序时,它实际上运行一个名为 Sihook4.exe 的程序。Sihook4.exe 反过来生成命令并执行输出捕获。您可以运行自定义命令,然后单击 Source Insight 窗口上的“返回”,以便在自定义命令在后台运行时继续使用 Source Insight 进行编辑。
创建编译和构建命令
您可以使用自定义命令从 Source Insight 启动编译器,并捕获输出并解析错误消息。然后,您可以使用“转到第一个链接”和“转到下一个链接”查看源文件中的每个错误。
要创建一个简单的编译命令
要使用 Microsoft ® C++ 编译器创建一个简单的编译命令:
1。选择“工具”>“自定义命令”。
2。在“名称”文本框中键入“编译文件”。
3。在“运行”文本框中,键入“cl %f”。这将在当前文件上调用编译器。您也可以在此处调用“make”程序或批处理文件。如果使用批处理文件,则必须先运行命令处理器。例如,“cmd /c mybatch.bat”。
4。打开“解析源链接”选项。默认解析模式设置为从编译器输出中解析编译器错误消息。
5.打开“首先保存文件”选项,以便在运行编译器之前保存文件。
6.单击“定义”按钮保存新命令。或者,您可以单击“菜单”或“键”按钮来定义新命令并运行“菜单分配”或“键盘分配”命令,这将允许您将命令放在菜单上或为其分配键。
“解析源链接”选项使 Source Insight 搜索编译器输出并为每个错误消息设置源链接。在这种情况下,“链接源”是编译器输出文件中的每个错误消息。每个链接的“链接目标”是每个错误消息中给出的文件和行号。
使用 Microsoft ® Developer Studio 构建项目
1.选择“工具”>“自定义命令”。
2.在“命令”下拉列表中选择“构建项目”命令。“构建项目”自定义命令是在安装 Source Insight 时预定义的。
3.在“运行”文本框中,键入以下内容:
C:\MsDevPath\msdev project.dsp /make /rebuild
其中,“MsDevPath”是 msdev.exe 程序的路径,“project.dsp”是 Developer Studio 项目的名称。
此行调用 msdev.exe 来重建给定的项目。
$$4.打开“解析源链接”选项。默认解析模式设置为解析来自编译器输出的编译器错误消息。
5.打开“首先保存文件”选项,以便在构建项目之前保存文件。
查看编译器错误
要查看包含错误的源代码行:
1.运行编译文件自定义命令,该命令的定义如上所述。
2.假设存在错误,则当编译器完成时,错误消息将显示在“编译文件”窗口中。Source Insight 将自动设置源链接并运行转到第一个链接命令。将选择并显示第一个错误消息和错误的源代码行。
3.使用转到下一个链接命令 (Shift+F9)。将选择“编译文件”窗口中的下一个错误消息,并显示该链接的目标,就像第一个错误一样。
4.继续使用转到下一个链接命令,直到访问了所有链接(错误消息)。如果没有更多链接,Source Insight 会发出哔声,并且状态栏中会出现“无链接”消息。