缺省情况下,cscope 会调用 vi 编辑器。可以通过将首选编辑器分配给 EDITOR 环境变量并导出 EDITOR 来覆盖缺省设置,如步骤 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 命令才能显示和编辑该行。