我想改变一个小模式的行为取决于主模式。 现在我写的就像跟随。
(defun foo (input)
(if (or
(eql major-mode 'foo-mode)
(eql major-mode 'foo1-mode)
(eql major-mode 'foo2-mode))
(myfunc-one input)
(myfunc-two input)))
我工作,但我不想写3次类似的条件陈述。 我怎样才能更有效地写它?
答案 0 :(得分:5)
(defun foo (input)
(if (memql major-mode '(foo-mode foo1-mode foo2-mode))
(myfunc-one input)
(myfunc-two input)))
答案 1 :(得分:2)
您通常不希望直接测试major-mode
。相反,您想使用(derived-mode-p 'foo1-mode 'foo2-mode 'foo3-mode)
。