注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

(power up)

道可道,非常道。

 
 
 

日志

 
 
 
 

建立自己的Emacs模式  

2012-06-28 20:56:23|  分类: Emacs |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
早就对Emacs的神力所吸引,只有你想不到的。

我是做PHP开发的,感觉现在的php-mode不是很好用,于是便想建立自己的php-mode。下面就动手吧,我也是初学者,边学边做吧,也为打发下班无聊的时候,电影看多了也没什么用。

首先就是要定义好主模式,用到的方法是 define-derived-mode (可以用C-h f来查看函数文档)。定义模式的时候不用加单引号,还要一个父模式,代码如下:

(define-derived-mode php-mode
c-mode "PHP"
"Major mode for PHP. \\{php-mode-map}"
(set-php-mode-highlight)
(run-hooks 'php-mode-hook))

"PHP" 这个字符串将会显示在状态栏的主模式的位置,然后是一段注释,下面就是要做的一些事情,设置高亮啊,等等...,最后如果想提供hook功能,一定要加上(run-hooks 'php-mode-hook)这个表达式,如果加上了这个表达式,一定要先定义这个php-mode-hook

(defcustom php-mode-hook nil
"List of functions to be executed on entry to `php-mode."
:type 'hook
:group 'php)

这里用到了group,每一个主模式都要有一个group,而且必须只有一个(不是很理解),所以还要定义一个组:

(defgroup php nil
"Silly walks in the PHP language."
:group 'languages
:version "0.1"
:link '(emacs-commentary-link "php"))

以上三段代码要反过来写。好了,现在可以用这个主模式了。

然后当然就是关联想对应的文件了,用到add-to-list 'auto-mode-alist 这个东西

(add-to-list 'auto-mode-alist
(cons "\\.php[s345]?\\|\\.phtml\\|\\.inc"
'php-mode))

相信大家看得明白,不用多解释。

关联要想对应的文件,然后就是高亮了,高亮比较麻烦,要理解face的东西,我了解的也不多。像font-lock-keyword-face这个东西就是关键词,定义哪些词作为关键词高亮,因为每一种词语高亮的颜色都不一样(当然你可以定义成一样的)

(font-lock-add-keywords
'php-mode
(("\\<\\(global\\|global\\|try\\|catch\\)\\>" . font-lock-keyword-face)))



先写到这里,有空尽快完善......


  评论这张
 
阅读(313)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017