我试图用ctags索引我的测试,以便我可以使用CtrlP vim插件轻松跳转。测试是在咖啡脚本中。这就是我在〜/ .ctags配置中找到的描述块。
--regex-coffee=/^[ \t]*(describe+[ \t]+\"(.+?)\")+[ ,]+*->.*$/\1/t,test/
它找到了描述块ok,这就是ctags文件的样子
User_resource_spec.coffee tests/e2e/User_resource_spec.coffee 1;" F
assert tests/e2e/User_resource_spec.coffee /^assert = require("assert")$/;" v
describe "Create User" tests/e2e/User_resource_spec.coffee /^describe "Create User", ->$/;" t
describe "Users" tests/e2e/User_resource_spec.coffee /^ describe "Users", ->$/;" t
should tests/e2e/User_resource_spec.coffee /^should = require("should")$/;" v
我遇到的问题是当我做的时候
:tag describe "Create User"
它说找不到标签。所有其他标签都正常工作。如果我编辑标签文件并更改
describe "Create User"
到
describe
然后它再次起作用。我的猜测是因为空格和引号而无效。
奇怪的是,当我放置句号和下划线而不是空格并摆脱引号时,它仍然不起作用。因为在我仍然无法跳转到那个标签。然而,带有下划线和句号的其他标签工作正常。
我无法将标签更改为“描述”,因为我想区分测试。
如何使用ctags处理空格和引号。或者如果不可能那样做,那么在vim中跳转到特定的mocha测试的最佳解决方案。
答案 0 :(得分:1)
你必须逃避引号:
:tag describe \"Create Users\"
键入的内容很多,为什么不简单地执行以下操作?
:tag des<Tab>
它会列出describe \"Create Users\"
和describe \"Users\"
,还会显示:tag describe "Create Users"
无效的原因(非转义引号)。
请注意,Vim默认使用:tag
和朋友的全字搜索;你可以使用正则表达式搜索来使过程更具确定性:
:tag /Crea<Tab>