让Sublime Text支持Cakephp(ctp)视图文件

11

我正在尝试使Sublime Text 3与Cake的ctp (view)文件一起使用。语法高亮功能可以正常使用,但我无法使用HTML自动完成功能。

如果我打开一个.html文件,则可以获得标签和属性的自动完成(除了属性“style”,它不能自动完成CSS样式)。

但是,如果我使用.ctp文件,则根本无法使用自动完成功能。我已经尝试将视图->语法设置更改为PHP和HTML,但没有任何结果……我甚至尝试使用"使用当前扩展名打开所有文件"选项,但也没有用。

我已经尝试使用不同的插件(ApplySyntax、cakephp插件等),但都没有成功。

另外,我还注意到对于javascript代码,对于“短”标记和函数,如果我将光标放在开头的标记或 { 上,则自动突出显示关闭标记或 }。然而,如果中间有很多行代码(相同的语言),则不会发生高亮...

非常感谢有关这些问题的任何帮助!我真的希望喜欢并使用Sublime!


这个链接可能会对你有所帮助:http://www.sublimetext.com/forum/viewtopic.php?f=3&t=6932 - Kai
你能给我们非Cake用户指出一个用于测试的.ctp文件示例吗?我猜测答案是什么(它涉及到一些Sublime内部的黑客技巧),但我想先进行测试。在Github上发布一个要点应该就可以了。 - MattDMo
@MattDMo 感谢您的评论,.ctp 文件与 HTML 文件完全相同,它可以包含 HTML 和 PHP 代码(后者当然在 <?php ... ?> 之间)。它没有自定义标签或任何其他类似的东西,只有纯HTML和PHP。 - Albert
@Albert 好的,谢谢。你在常规的 .php 文件中是否可以使用自动完成功能,无论是使用 PHP 还是 HTML 语法?我的意思是,你能否将你的 .ctp 文件重命名为 .php 并使 HTML 自动完成功能再次工作? - MattDMo
@MattDMo 如果我将文件重命名为.php,HTML自动完成仍然无法工作,而PHP自动完成可以工作(它也适用于.ctp扩展名)。 - Albert
显示剩余2条评论
2个回答

61

现在无需插件!

在最新版的SublimeText 3(至少)中,您可以打开CTP文件,然后:

查看 -> 语法 -> 打开当前所有扩展名为 -> PHP

然后关闭您打开的文件,当您重新打开它们时,它们将以您选择的扩展名所对应的语言进行高亮显示。


3
一个完美时机的回答:就在昨天,Sublime Text 更新了,似乎已经覆盖了这个设置。 "将所有当前扩展名打开" 在语法下拉菜单的顶部。 - Vael Victus
1
太喜欢了。每次打开.ctp文件时,我都会执行Ctrl + Shift + P > 设置语法:PhP - Sweet Chilly Philly
@Sweet Chilly Philly - 很高兴听到答案对某人有所帮助! :) - Dave

8

只需在sublime-text中安装ApplySyntax插件即可。

ApplySyntax可以通过多种方式安装:

  • Through Package Control http://wbond.net/sublime_packages/package_control

    Open Package Control Select 'Install Package' Find and select 'ApplySyntax'

  • By cloning this repository in Packages

    cd into your Packages folder
    git clone git://github.com/facelessuser/ApplySyntax.git .
    
  • By downloading the files and placing them in a directory under Packages, such as ApplySyntax or User

    If you don't put the files in Packages/User (you can, but probably shouldn't), make sure they live in Packages/ApplySyntax. If you download and extract a compressed archive from GitHub, the directory will be facelessuser-ApplySyntax. Remove facelessuser-.

安装步骤:https://github.com/facelessuser/ApplySyntax/blob/master/readme.md

注意:我已经安装了它,现在*.ctp文件以正确的语法高亮显示。

更新:

在Sublime Text 3中,您不必使用插件,您可以使用以下解决方案:https://dev59.com/m18e5IYBdhLWcg3wFnLm#35297789


我需要在设置文件的PHP中添加另一个ctp条目。但是另一种解决方案看起来更好(不需要插件)适用于最新版本,也许应该更新为已接受的解决方案。 - msanjay
这个已经不需要了,请查看其他答案。 - Dave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接