在此留贴备忘,以便于下周学习。
哪位朋友若有资料,或简短说明介绍,也请给与帮助。
在此提前谢过!
在此留贴备忘,以便于下周学习。
哪位朋友若有资料,或简短说明介绍,也请给与帮助。
在此提前谢过!
东西也太多了点。大家都看了吗?还是,了解一部分,其他的只是查看?
随用随查呀,你说的face group 什么的都有
不怎么了解 Faces。
至于 Group 估计你指的是 (info "(elisp) Group Definitions")
,这是用来组织相关的 defcustom
选项的,随便看个例子就明白了,非常简单,完全可以需要用的时候(比如写新 Package 的时候)再了解:
(defgroup magit-status nil
"Inspect and manipulate Git repositories."
:link '(info-link "(magit)Status Buffer")
:group 'magit-modes)
(defcustom magit-status-mode-hook nil
"Hook run after entering Magit-Status mode."
:group 'magit-status
:type 'hook)
至于 Advice:
学习新的 advice-add
/advice-remove
就行了,不用学习旧的 defadvice
,(info "(elisp) Advising Functions")
中介绍的就是新的;
不用管 add-function
/ remove-function
,一般用 advice-add
/ advice-remove
就 OK 了;
Advice 的位置 :before
:around
等,只需(且一定)要搞清楚函数调用的方式即可,不必记忆参数表的写法,比如假设需要 Advice 这样一个函数:
(defun foo (a) a)
要用 :around
的话,手册 (info "(elisp) Advice combinators")
中提到的函数调用方式:
(lambda (&rest r) (apply FUNCTION OLDFUN r))
所以你的 Advice 函数的参数表可以是以下任何一种方式:
(old-fun a)
(old-fun &rest _)
(&rest r)
至于用哪一种,看你的喜好;
还可以了解下 Emacs 25.1 加入的 define-advice
,它结合了 defun
+ define-advice
。
face 字符的外观属性 类似结构体 group 自定义属性的 名字空间 advice 函数的附属修饰函数,或者叫副函数? 上面的 Elisp手册讲的明明白白,英语不好就没办法了,翻译确实不好翻译全靠理解
(defgroup magit-status nil
"Inspect and manipulate Git repositories."
:link '(info-link "(magit)Status Buffer")
:group 'magit-modes)
group的使用,比较简单。下面的理解不知是否正确。
group是全局和buffer之外的另一种作用域,也就是,group中定义的变量若与前两者重名则以group优先,但低于let中的优先级。:group是其重要的关键字,以便指定其所属的父group,最上层应该是xxx-mode。但看了一下代码,:link的作用没看明白,该值应该是存于该group符号对应的属性列表中,以供别的机能查看。
(defcustom magit-status-mode-hook nil
"Hook run after entering Magit-Status mode."
:group 'magit-status
:type 'hook)
defcustom 若指定了:group,则定义的变量的作用域属于该group,未指定的话,就属于当前运行中的buffer。至于:type也是存于该custom符号对应的属性列表中,便于其它机能查看。
我对其浅显的理解是,就是一个AOP(面向切面编程)。