搞定emacs的make-header
时间:2006-04-30 来源:xueyan
原来使用的header.el似乎有问题,每次执行到(require 'header)的时候都会出错,今晚上想到网上找找解决方法,无意中发现header2.el,没想到header2.el竟然能用.哈哈....
(require 'header2)
(defvar j4ck-header-project-name "XXXXXX")
(defun j4ck-c-mode-config-header ()
"this is my mode config header"
(interactive)
(make-local-variable 'user-full-name)
(make-local-variable 'user-mail-address)
(setq user-full-name "ShuJie Liu (j4ckl1u)")
(setq user-mail-address "[email protected]")
(setq make-header-hooks '(header-mode-line
header-blank
;;header-rcs
;;header-AFS
j4ck-header-file-name
j4ck-header-project-name
j4ck-header-file-description
header-creation-date
;;header-rcs
header-author
j4ck-header-author-email
;;header-modification-author
;;header-modification-date
;;header-update-count
header-blank
header-copyright
header-blank
;;header-status
;; Re-enable the following lines if you wish
header-blank
;;header-history
;;header-purpose
;;header-toc
header-blank
j4ck-header-end-comment
))
(setq file-header-update-alist nil)
(progn
(register-file-header-action "[ \t]Update Count[ \t]*: "
'update-write-count)
(register-file-header-action "[ \t]Last Modified By[ \t]*: "
'update-last-modifier)
(register-file-header-action "[ \t]Last Modified On[ \t]*: "
'update-last-modified-date)
(register-file-header-action " File : *\\(.*\\) *$" 'j4ck-update-file-name)
))
(defun j4ck-header-file-name ()
"Places the buffer's file name and leaves room for a description."
(insert header-prefix-string "File : " (buffer-name) "\n")
(setq return-to (1- (point))))
(defun j4ck-header-project-name ()
(insert header-prefix-string "Program/Library : " j4ck-header-project-name "\n"))
(defun j4ck-header-file-description()
(insert header-prefix-string "Description : \n"))
(defun j4ck-header-author-email ()
(insert header-prefix-string "Mail : " user-mail-address "\n"))
(defun j4ck-header-end-comment ()
(if comment-end
(insert comment-end "\n")))
(defun j4ck-update-file-name ()
(beginning-of-line)
;; verify that we are looking at a file name for this mode
(if (looking-at
(concat (regexp-quote (header-prefix-string)) "File : *\\(.*\\) *$"))
(progn
(goto-char (match-beginning 1))
(delete-region (match-beginning 1) (match-end 1))
(insert (file-name-nondirectory (buffer-file-name)) )
)))
(j4ck-c-mode-config-header)
参考:http://ann77.stu.cdut.edu.cn/
(require 'header2)
(defvar j4ck-header-project-name "XXXXXX")
(defun j4ck-c-mode-config-header ()
"this is my mode config header"
(interactive)
(make-local-variable 'user-full-name)
(make-local-variable 'user-mail-address)
(setq user-full-name "ShuJie Liu (j4ckl1u)")
(setq user-mail-address "[email protected]")
(setq make-header-hooks '(header-mode-line
header-blank
;;header-rcs
;;header-AFS
j4ck-header-file-name
j4ck-header-project-name
j4ck-header-file-description
header-creation-date
;;header-rcs
header-author
j4ck-header-author-email
;;header-modification-author
;;header-modification-date
;;header-update-count
header-blank
header-copyright
header-blank
;;header-status
;; Re-enable the following lines if you wish
header-blank
;;header-history
;;header-purpose
;;header-toc
header-blank
j4ck-header-end-comment
))
(setq file-header-update-alist nil)
(progn
(register-file-header-action "[ \t]Update Count[ \t]*: "
'update-write-count)
(register-file-header-action "[ \t]Last Modified By[ \t]*: "
'update-last-modifier)
(register-file-header-action "[ \t]Last Modified On[ \t]*: "
'update-last-modified-date)
(register-file-header-action " File : *\\(.*\\) *$" 'j4ck-update-file-name)
))
(defun j4ck-header-file-name ()
"Places the buffer's file name and leaves room for a description."
(insert header-prefix-string "File : " (buffer-name) "\n")
(setq return-to (1- (point))))
(defun j4ck-header-project-name ()
(insert header-prefix-string "Program/Library : " j4ck-header-project-name "\n"))
(defun j4ck-header-file-description()
(insert header-prefix-string "Description : \n"))
(defun j4ck-header-author-email ()
(insert header-prefix-string "Mail : " user-mail-address "\n"))
(defun j4ck-header-end-comment ()
(if comment-end
(insert comment-end "\n")))
(defun j4ck-update-file-name ()
(beginning-of-line)
;; verify that we are looking at a file name for this mode
(if (looking-at
(concat (regexp-quote (header-prefix-string)) "File : *\\(.*\\) *$"))
(progn
(goto-char (match-beginning 1))
(delete-region (match-beginning 1) (match-end 1))
(insert (file-name-nondirectory (buffer-file-name)) )
)))
(j4ck-c-mode-config-header)
参考:http://ann77.stu.cdut.edu.cn/
相关阅读 更多 +