Make your own Emacs package

Make you own Emacs package. 创建自己的Emacs包。 在Elpa、MELPA上面有许多的包,可以做各种各样的事情,但有可能你找不到一个合适你的某个问题的包,这时候可以自己动手写一个package,分离到MEELPA。 其实写一个package是一个比较简单的事情,但是又比较麻烦,麻烦在于有很多的约定需要了解,下面我们来动手写一个简单的闹钟包,参考了alarm.el。恰好我的包也叫做alarm.el,如有疑问请提出。 准备 开发阶段使用package-insstall-file来安装并且测试包是否正确,这个命令可以安装单个文件something.el,也可以安装一个tar包,这里主要有两个文件,所以需要打成tar包安装。 目录结构 alarm-20170724.1502 |-alarm-pkg.el |-alarm.el |-alarm.wav 目录名的命名规则是name-version alarm-pkg.el 是给emacs的package提供信息的一个文件 alarm.el 程序主要内容在这个文件 alarm.wav 闹钟响的时候播放这个文件,还可以使用.au文件 alarm-pkg.el (define-package "alarm" "20170724.1502" "A package to alarm yourself at some time.") 这个文件比较简单,只是调用了define-package来定义你的包信息,此函数的签名如下: (defun define-package (_name-string _version-string &optional _docstring _requirements &rest _extra-properties) (error "Don't call me!")) 第一个参数是包名,第二个参数是版本号,第三个参数可以是一个长字符串提供说明文档 alarm.el 这个文件的约定比较多,先看一下这个文件的头部 ;;; alarm.el --- Alarm ;; Copyright (C) 2017, Emacs guys, all rights reserved. ;; Author: Kevim Jiang <wenlin1988@126.com> ;; Version: 20170724.1502 ;; Keywords: alarm ;; Maintainer: Kevin Jaing <wenlin1988@126.com> ;; Created: 2017-07-24 12:00:00 ;;; Commentary: ;; Set an alarm with `alarm-clock', and enter the time; ;; cancel the alarm with `alarm-clock-cancel' ;;; Code: 每一个段落以空白行隔开。第一行是文件名和一个简短的说明,而且开头以;;;三个分号注释。Commentary一段可以是长一些的说明文档,以及使用说明。最后是;;; Code:段,接下面就是真正的代码内容。可以使用checkdoc来检查头部的文档是否正确。还可以使用package-lint包的package-lint-current-buffer命令检查。 ...

July 24, 2017