Sun Studio 12:C 用户指南

8.2.9 编辑器的命令行语法

缺省情况下,cscope 调用 vi 编辑器。可以通过将首选编辑器分配给 EDITOR 环境变量并导出 EDITOR 来覆盖缺省设置,如8.2.1 步骤 1:设置环境中所述。但是,cscope 期望它使用的编辑器具有以下形式的命令行语法:


% editor +linenum filename

vi 一样。如果要使用的编辑器没有此命令行语法,则必须编写 cscope 和编辑器之间的接口。

假设您要使用 ed。由于 ed 不允许在命令行上指定行号,因此除非编写一个包含以下行的 shell 脚本,否则不能在 cscope 中使用它查看或编辑文件:


/usr/bin/ed $2

让我们将 shell 脚本命名为 myedit。现在将 EDITOR 的值设置为 shell 脚本并导出 EDITOR

在 Bourne shell 中,键入:


$ EDITOR=myedit; export EDITOR

在 C shell 中,键入:


% setenv EDITOR myedit

cscope 为您指定的列表项(比如说 main.c 中的第 17 行)调用编辑器时,它将用以下命令行调用 shell 脚本:


% myedit +17 main.c

myedit 然后丢弃行号 ($1) 并使用文件名 ($2) 正确调用 ed。当然,不会自动移至文件的第 17 行,必须执行相应的 ed 命令以显示和编辑该