如何在Emacs中为特定项目(Projectile)设置主题

时间:2013-10-23 08:21:12

标签: emacs elisp emacs24 projectile

是否有可能设置特定颜色主题或仅挂钩特定项目以运行自定义elisp?

因此,我想从特定项目(路径)打开文件时自动设置颜色主题或背景颜色?例如。我可以在不同的框架中处理多个项目,并立即知道我在哪里。可能这可以用.projectile文件写一下吗?

这里的框架我的意思是框架不仅仅是一个缓冲区。

2 个答案:

答案 0 :(得分:3)

你现在不能这样做但是这里有类似的东西正在进行讨论 Projectile issue list。但是,您可以使用.dir-locals.el文件来完成此操作。我猜测,一旦开发人员决定使用.projectile文件,将会为弹丸实施类似的东西。

dir-locals.el旨在为您可以签出文档的特定目录中的所有文件设置局部变量,或者为此blog post设置详细信息。它不是特别设计用于运行elisp代码(设置主题是一个负载主题函数调用我相信)有充分的理由。但是,您可以使用eval变量解决此问题,emacs将询问您是否运行代码。

((nil . ((eval . (load-theme 'molokai 
                         )
           ))))

或者你可以根据主要模式做一些比较漂亮的事情。

 ((nil . ((indent-tabs-mode . t)
          (tab-width . 4)
          (fill-column . 80)))
  ;; Warn about spaces used for indentation:
  (haskell-mode . ((eval . (highlight-regexp "^ *"))))
  (c-mode . ((c-file-style . "BSD")))
  (java-mode . ((c-file-style . "BSD")))
  ("src/imported"
   . ((nil . ((change-log-default-name . "ChangeLog.local"))))))

答案 1 :(得分:3)

最新的射弹(projectile-20140716.416)现在支持在项目切换后任意elisp挂钩,elisp如:

  (load-theme 'zenburn t)

利用钩子的示例脚本在这里:http://github.com/jfeltz/projectile-load-settings