【发布时间】:2013-06-25 13:47:18
【问题描述】:
多年来,我的 Windows C 标记/作用域解决方案几乎 有效。我可以构建文件列表,为 vim/gvim 导航构建标签(通过 Exuberant Ctags),构建 cscope.out,并在我通过单击 C 源文件启动的 gvim.exe 窗口中进行标记。
最后让我感到困惑的是,当我选择一个项目时,我似乎无法在 cmd.exe 中让 cscope 启动我的编辑器。我确保 gvim.exe 在我的 Path 环境变量中。我确保设置了 CSCOPE_EDITOR 环境变量(更多内容见下文)。但是当我从 cscope 中选择一个行项目时,编辑器不会启动。相反,我得到以下两个失败之一:
- 如果 CSCOPE_EDITOR 是 gvim.exe -f 或 "gvim.exe -f" 然后我看到打印在 cmd.exe 窗口的顶部,后跟行偏移和文件名(例如 "gvim.exe -f +72 myfile.c"),然后它会快速返回到 cscope,而不会弹出编辑器。
- 如果 CSCOPE_EDITOR 是 gvim.exe(没有 -f 选项),则启动 gvim.exe 进程(我在 Windows 任务管理器中的进程下看到它)但它永远不会出现在前台作为应用程序。此外,在我手动终止生成的 gvim.exe 进程之前,cmd.exe 中的 cscope 窗口变为空白且无响应。
供参考:
cscope -V 返回“cscope: version 15.8a”并从这个站点下载:http://code.google.com/p/cscope-win32/
我的 gvim.exe 版本是 7.3,最新版本来自 http://www.vim.org/
另外,我用“C”标记了这篇文章,因为虽然这不是 C 语言问题,但 cscope 和 ctags 主要用于 C 编程,因此我认为 C 标记是相关的。 (我想在有人出现并删除标签并说这不是 C 问题之前指出这一点,因为 C 程序员最有可能得到答案。)
【问题讨论】:
-
我试过了,但我没有看到 CSCOPE_EDITOR=gvim.exe 的问题
-
@mattn - 谢谢!那是一条有价值的信息。问题似乎与我的 _vimrc 中的某些内容有关。当我回到默认设置(很高兴我保存了它)时,gvim.exe 能够启动。但是,它保持焦点(cscope 窗口保持黑色,直到我退出 gvim)。你看到同样的行为吗?知道如何让 cscope 在后台启动 gvim 以便 cscope 可以继续吗?
-
你试过
CSCOPE_EDITOR=start gvim.exe吗? -
@mMontu - 好主意,但我只是尝试过,但没有成功。我认为 cscope(至少在 Windows 上)无法处理 CSCOPE_EDITOR 中的空间。 (也可能与我无法通过该环境变量将标志传递给我的编辑器的原因相同。)我尝试将其包装在单引号、双引号和反斜杠中以转义空格。这些都没有运气。
-
我这里没有 cscope,但最后一个猜测:你试过用多个反斜杠转义空格吗?