【问题标题】:Only use 2 mode in Emacs with web-mode仅在 Emacs 中使用 2 模式和 web 模式
【发布时间】:2014-02-24 11:17:20
【问题描述】:

我在 Emacs 中使用 web 模式,一切都很好,除了在 Rails 中编辑 .js.erb 文件时。

因为.js.erb 文件中只有 2 种模式:jsruby,而 web-mode 只能识别 <scipt type="javascript"></scipt> 中的 javascipt 代码。

我对emacs和web-mode不是很熟悉,也许有办法配置。

【问题讨论】:

    标签: emacs


    【解决方案1】:

    您可以通过修改变量web-mode-content-type 来更改活动缓冲区的“默认”模式,例如来自M-:

    (setq web-mode-content-type "javascript")
    

    可以通过文件名(或模式)指定默认模式,方法是在配置中的某处修改 web-mode-content-types alist,例如

    (eval-after-load "web-mode"
      '(add-to-list 'web-mode-content-types '("javascript" . "\\.js\\.erb\\'")))
    

    【讨论】:

    • 您需要. 中的"\\.js" 吗?
    • @nymo,好眼力!我最初忽略了它,但后来我做了一点挖掘,它在 Rails 中是 looks like .js.erb is a common file extensions,尽管这个问题使它看起来像 js.erb 是一个完整的文件名。我相应地更新了,但如果我错了,请告诉我。
    • 我认为你是对的,其目的是覆盖带有 .js.erb 扩展名的文件......如果是这样,那么 OP,忽略我的第一条评论。
    • 对不起,它不起作用。添加第二个 sn -p 并重新启动 emacs 后,它看起来只使用了js-mode 并且 ruby​​ 代码没有突出显示。
    • @Eorza,hrm,你是对的。这与web-mode.js 文件提供的行为相同。我还没有找到任何其他有希望的选择。
    【解决方案2】:

    web-mode 的作者已经修复了这个问题,所以只需更新您的网络模式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 2013-03-08
      • 1970-01-01
      相关资源
      最近更新 更多