我想让 $(美元符号)指示一个 php 变量在 ST2 中显示为它自己的颜色(#ff0000)。我一直在编辑自定义配色方案文件,但似乎无法为这个符号获得特殊颜色。
最佳答案
答案前的重要附录
下面的解释假设一个人正在用 JSON 编写语法定义,然后使用 PackageDev 插件构建 Plist xml 文件(如下面链接的非官方 sublime 文档中所述)。 ST2从后面的文件中读取语法解析指令。
====
我向您报告的是我第一次涉足该领域的经历,因此我在接下来的一两点上可能有误。
除非你的语法解析器定义了$由于拥有自己的范围选择器,您将无法通过配色方案文件为该单独的标志设置颜色。您可能已经知道,您可以通过选择元素并按 option+command+p(非 macs 上的 alt+super+p)来检查元素的范围选择器:它会在状态栏中报告信息。
我刚刚检查了自己软件上的php语法解析器,$的范围没有区别及其前缀的字符串。因此,假设您的设置与我自己的一样,您将需要编写自己的语法定义。这可以在现有的 php 语法文件中完成,或者(当然是更安全的选择)在您将用作主要编辑文件的新定义文档中完成。
您可以在非官方的 sublime text 文档中找到涵盖编写您自己的语法定义的基本步骤的教程。事实上,其中一个标题为“Fine Tuning Matches”的部分解释了如何使用“捕获”来定义范围选择器,尤其是对于带有前缀的娃娃符号。您可以引用文档以了解有关创建语法定义文件的细节以及所有其他内容,但是,为了巩固我自己对过程的理解并使答案在这里很容易获得,我将尽力解释 JSON选择器的确定。
这是您需要使用的正则表达式模式:
{ "match": "\\$([A-Za-z][A-Za-z0-9_]+)",
"name": "keyword.syntaxTypeAbbreviation",
"captures": {
"1": { "name": "moreSpecific.selectorName.syntaxTypeAbbreviation " }
},
"comment": "Variables like $PARAM1, $TM_SELECTION..."
}
以上含义分析:
"match"给出标识要选择的字符串模式的正则表达式.除非我弄错了,否则它会显示“任何以 '$' 开头的字符串([后跟一个大写或小写字母] 和 [至少一个附加字母或数字] 加上任何附加字符)”。 (Sublime Text 使用 oniguruma regex specifications 。)
"name"提供在配色方案文档中选择范围所依据的字符串。在方案 xml 中,这对应于 <key>name</key> <string>specific.selector.syntaxTypeAbbreviation</string> .
"captures" (这是您目标的关键要素)指定模式的子集,该子集将被赋予自己的、更具体的范围选择器。括在括号中的每组正则表达式术语占据一个位置,整数( "1" ,此处)指定要“捕获”的位置。当然,在我们的例子中,只有一个可捕获组。
"name"和以前一样,但作为以前名称的亚种,"comment"为您提供对定义的重要性发表评论的选项。
最后,需要注意的是,第一个 范围选择器将设置整个字符串的颜色,而第二个 覆盖其前身以提供不同的颜色以下字母和数字。也就是说,第一个选择器会让你给 $ 上色。第二个是附加字符串的颜色。
因此我们可以这样翻译模式:
"Any string beginning with '$' ([followed by one uppercase or lowercase letter] and [at least one additional letter or numeral] plus any additional characters) is to be named NAME, except for the part which is enclosed in the first set of parenthesis, which is to be named OTHERNAME instead.
我希望这个解释对您阅读的帮助至少是对我编写的帮助的一半。另外,我很感谢大家纠正我确实犯过的任何错误。
问候,
洗澡
关于php - 在 Sublime Text 2 中编辑 php 的配色方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9737478/
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
我有一个应用程序正在从Ruby迁移到JRuby(由于需要通过Java提供更好的Web服务安全支持)。我使用的gem之一是daemons创建后台作业。问题在于它使用fork+exec来创建后台进程,但这对JRuby来说是禁忌。那么-是否有用于创建后台作业的替代gem/wrapper?我目前的想法是只从shell脚本调用rake并让rake任务永远运行......提前致谢,克里斯。更新我们目前正在使用几个与Java线程相关的包装器,即https://github.com/jmettraux/rufus-scheduler和https://github.com/philostler/acts
我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
尝试使用bundleopen命令打开gem源代码,accordingtoofficialdocumentationandinstruction.因此,我在.profile中导出编辑器:exportBUNDLER_EDITOR=viexportEDITOR=vi并尝试打开例如rails使用控制台的源代码:bundleopenrails出现错误CouldnotlocaleGemfile[ruby-2.1.1][~/]$:rails-vRails4.0.3[ruby-2.1.1][~/]$:bundle-vBundlerversion1.5.3[ruby-2.1.1][~/]$:bundle
我有一个存储JSON数据的列。当它处于编辑状态时,我不知道如何显示它。serialize:value,JSON=f.fields_for:valuedo|ff|.form-group=ff.label:short=ff.text_field:short,class:'form-control'.form-group=ff.label:long=ff.text_field:long,class:'form-control' 最佳答案 代替=f.fields_for:valuedo|ff|请使用以下代码:=f.fields_for:va
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我想知道是否有人知道Ruby的rubyzip替代品,它可以处理各种格式,特别是zip/rar/7z?我知道libarchive,但它对我的目的来说并不完整(它是一个很好的gem)。(澄清一下,libarchive-对我不起作用-因为
我爱Sanitize.这是一个了不起的实用程序。我遇到的唯一问题是,它需要永远准备一个开发环境,因为它使用Nokogiri,这对编译时间来说是一种痛苦。是否有任何程序可以在不使用Nokogiri的情况下执行Sanitize的操作(如果没有别的,只是温和地执行它的操作)?这将以指数方式提供帮助! 最佳答案 Rails有自己的SanitizeHelper。根据http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html,它将Thissanitizehe
我正在使用Rails4并遇到以下错误。RoutingErrorNoroutematches[POST]"/logs/1/meals/13/edit我正在使用:meal传递模型对象的form_for,并且编辑页面正确呈现。但是,Rails似乎并没有检查膳食对象是否已经保存,因此它一直尝试将表单发送到#create操作并尝试发出POST请求,而不是将表单发送到更新操作并进行当我点击提交时一个PUT请求。我如何让form_for识别我正在尝试更新现有对象并且需要PUT而不是POST?其他一切正常,我已经运行了所有迁移。我是Rails的新手,几乎一整天都在尝试自己解决这个问题。请帮忙!请注意,