当我处理Django模板时,如何禁用flymake?
Flymake非常适合编辑python文件,但实际上却给我带来了django模板的问题。例如,以下模板不会引发任何错误,但语法突出显示不适用于模板标记:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{% block title %}Page title{% endblock %}</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
{% block content %}
<p>… Your HTML content here …</p>
{% endblock %}
</body>
</html>
但是,以下模板中包含了用于flymake错误的font-lock:
{% extends base.html %}
{% block content %}
<h1>Welcome!</h1>
{% endblock %}
用鼠标悬停错误显示flymake抱怨“文字不允许”。
我已经按照this related question中的每个解决方案进行了操作,但是没有一个解决方案禁用了用于html缓冲区的flymake。我甚至尝试将所有模板文件重命名为.djhtml
而不是.html
,但重新访问文件后,flymake仍处于活动状态。我确实更改了自动模式列表以将django-html-mode
应用于.djhtml
个文件,因此可能存在问题。
更新:我发现切换到html-mode
没有这个问题,因为我已经实现了前面提到的解决方案。但是,如果我切换到nxml-mode
或django-html-mode
(我想要使用的),flymake会再次启动并告诉我它是:
Using schema /usr/local/Cellar/emacs/HEAD/share/emacs/24.0.93/etc/schema/xhtml.rnc
雪豹Emacs24碳。
GNU Emacs 24.0.93.1 (i386-apple-darwin10.8.0, NS apple-appkit-1038.36) of 2012-02-21 on hook
答案 0 :(得分:0)
django wiki列出了使用emacs的几个选项,但没有提供关于每种模式的特定优势和弱点的大量指导。
我目前使用的解决方法是使用django-html-mumamo-mode
代替django-mode
。这是我在使用django设置emacs的过程中想到的。
请记住,随着这些包的开发,其中一些观察结果可能会发生变化。
Looks promising,但文档不完整,模板中的语法突出显示对我不起作用。这就是我真正追求的,但其他人可能会喜欢其他功能。
这与nXhtml捆绑在一起。没有包含任何代码段,但可以在Google中找到代码段,或者使用yasnippet imported from a Textmate bundle找到代码段。说到这个模式conflicts with the yasnippet-bundle通过ELPA提供,所以请务必遵循开发主干以避免restart emacs everytime you trigger a snippet。顺便说一句,语法高亮很棒,你可能会喜欢nXhtml中的通用Web开发功能。
语法高亮和跳转到标签,包括一些片段;但是,django-mode doesn't play nice with flymake,我认为是因为它来自nxml-mode
。 django-mode
不再处于开发阶段,nxml-mode
也不再是我可以收集的内容。 django-html-mumamo-mode
没有遇到这个flymake问题,因为nXhtml包含了对flymake开箱即用的非常好的支持。