`

在emacs下配置php-mode实现库函数自动补全

 
阅读更多
原文地址:http://blog.sina.com.cn/s/blog_632254bc01018abb.html






php-mode是emacs用于编辑php源代码的模式,继承了c-mode的所有特性,遵循PEAR的编码标准,搜索php的手册,代码补全,类浏览。这里介绍如何修改php-mode.el文件,配置.emacs文件实现php库函数的自动补全功能。
    一、安装:
    fedora的emaacs22版本自带的php-mode是1.4版本的,可以从http://php-mode.sourceforge.net/下载最新版:1.5。下载后解压到某个位置,进入emacs,使用M-x byte-compile-file命令编译php-mode.el源文件。然后将php-mode.elc拷贝到/usr/share/emacs/site-lisp目录,

    二、.emacs文件配置如下:
    ;;加载php-mode
    (add-to-list 'load-path "/usr/share/emacs/site-lisp")
    (require 'php-mode)
    ;;根据文件扩展名自动php-mode
    (add-to-list 'auto-mode-alist '("\\.php[34]?\\'\\|\\.phtml\\'" . php-mode))
     ;;开发项目时,php源文件使用其他扩展名
    (add-to-list 'auto-mode-alist '("\\.module\\'" . php-mode))
    (add-to-list 'auto-mode-alist '("\\.inc\\'" . php-mode))
    ;;自动补全设置,方法一
    (setq php-manual-path "/usr/share/doc/php-manual/en/html/")
    ;;自动补全设置,方法二
    ;;使用方法一,在每次补全时都要搜诉php-manual-path目录,速度比较慢,可以使用方法二
    ;;首先设置变量php-completion代替php-manual-path
    (setq php-completion-file "~/.emacs.d/php/php-completion-file")
    ;;然后在sehll终端生成php-completion-file
    ;; $ cd /usr/share/doc/php-manual/en/html
    ;; $ ls -1 function*.html \
    ;;  | sed -e 's/^function\.\([-a-zA-Z_0-9]*\)\.html/\1/' \
    ;;  | tr - _ \
    ;;  > ~/.emacs.d/php/php-completion-file
    ;; 注:执行这步之前你必须安装php-manual-en软件包:yum install php-manual-en
    ;;设置emacs在console方式的自动补全的功能键为F9,如果使用emacs 的窗口方式则不必设置这个。
    ;;因为php-model只设置了在窗口方式下的功能键M-tab。
    (global-set-key [(f9)] 'php-complete-function)
   
    三、修改php-mode.el文件
    php-mode设置的自动补全的功能键是M-tab,这有两个问题:1、M可以用ALT或者ESC输入,如果按ALT+tab就与系统设置的窗口切换键相同;2、即使用ESC取代ALT,也不会自动补全,提示“No tags table loaded; try M-x visit-tags-table”,这似乎是c-mode的自动补全功能键。所以必须修改这个功能键,这通过修改php-mode.el文件实现。打开php-mode.el文件,找到这里:
    (define-key php-mode-map                                                                           
       [(meta tab)]                                                                                  
       'php-complete-function)
    修改为:
    (define-key php-mode-map                                                                           
       [(control tab)]                                                                                  
       'php-complete-function)
    保存,重新编译,复制php-mode.elc文件到/usr/share/emacs/site-lisp目录。
    如果不修改php-mode.el文件,也可以使用php-mode的自动补全功能,但必须使用菜单而不是快捷功能键了,因为无法输入M-tab,而使用菜单的话无疑太慢了。经修改后,在emacs的console方式可以用F9调用补全功能,在emacs的窗口方式则可以同时使用F9和C-tab。

转自:http://home.lupaworld.com/home-space-uid-28556-do-blog-id-121806.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics