设为首页 收藏本站
查看: 585|回复: 0

[经验分享] 【转载】在emacs下配置php-mode实现库函数自动补全

[复制链接]

尚未签到

发表于 2017-4-6 08:38:19 | 显示全部楼层 |阅读模式
原文地址: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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-360795-1-1.html 上篇帖子: PHP中用PDO操作数据库时出现ERROR:could not find driver的问题 下篇帖子: 在emacs下配置php-mode实现库函数自动补全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表