这是我的 .emacs 的摘录
案例 1:使用下面的配置,perl-completion 模式可以完美运行。
;;-------------------------------------------------------
;; -*-- CPerl mode
;;-------------------------------------------------------
(defalias 'perl-mode 'cperl-mode)
(add-to-list 'auto-mode-alist '("\\.[apP][Llm]$" . cperl-mode))
(add-to-list 'auto-mode-alist '("\\.al$" . cperl-mode))
(add-to-list 'auto-mode-alist '("\\.t$" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(defun my-cperl-hook-func()
(add-to-list 'load-path "~/.emacs.d/elpa/perl-completion-20090527.2336")
(require 'perl-completion)
(perl-completion-mode t)
;; (make-local-variable 'compile-command)
;; (setq compile-command
;; (concat "perl " (buffer-file-name)))
;; (cperl-define-key "\C-c\C-c" 'compile)
)
(add-hook 'cperl-mode-hook 'my-cperl-hook-func)
CASE 2:使用下面的配置,在 cperl-mode 下 Cc Cc 将成功启动 perl 编译。
;;-------------------------------------------------------
;; -*-- CPerl mode
;;-------------------------------------------------------
(defalias 'perl-mode 'cperl-mode)
(add-to-list 'auto-mode-alist '("\\.[apP][Llm]$" . cperl-mode))
(add-to-list 'auto-mode-alist '("\\.al$" . cperl-mode))
(add-to-list 'auto-mode-alist '("\\.t$" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(defun my-cperl-hook-func()
;; (add-to-list 'load-path "~/.emacs.d/elpa/perl-completion-20090527.2336")
;; (require 'perl-completion)
;; (perl-completion-mode t)
(make-local-variable 'compile-command)
(setq compile-command
(concat "perl " (buffer-file-name)))
(cperl-define-key "\C-c\C-c" 'compile)
)
(add-hook 'cperl-mode-hook 'my-cperl-hook-func)
案例3:但是,下面的代码通过取消注释钩子函数(my-cperl-hook-func)中的所有行来启用perl-completion和Cc Cc来启动perl编译,它只是以那个perl-结束完成可以正常工作,而 Cc Cc 根本不起作用(emacs 说 Cc Cc 未定义。)
如何使这两个操作在 cperl-mode-hook 中有效?
;;-------------------------------------------------------
;; -*-- CPerl mode
;;-------------------------------------------------------
(defalias 'perl-mode 'cperl-mode)
(add-to-list 'auto-mode-alist '("\\.[apP][Llm]$" . cperl-mode))
(add-to-list 'auto-mode-alist '("\\.al$" . cperl-mode))
(add-to-list 'auto-mode-alist '("\\.t$" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(defun my-cperl-hook-func()
(add-to-list 'load-path "~/.emacs.d/elpa/perl-completion-20090527.2336")
(require 'perl-completion)
(perl-completion-mode t)
(make-local-variable 'compile-command)
(setq compile-command
(concat "perl " (buffer-file-name)))
(cperl-define-key "\C-c\C-c" 'compile)
)
(add-hook 'cperl-mode-hook 'my-cperl-hook-func)