这就是动态作用域。。。。你如果嫌麻烦,就直接将这个配置写到 README 里面吧,省的折腾
我又测试了一下,好像并没有添加空格,我先把这条删掉吧,以后有问题再说
These configurations are enabled only by loading. You should provide minor-mode or setup function
你可以添加一个 setup 函数: 类似 https://github.com/tumashu/ox-latex-chinese/blob/master/ox-latex-chinese.el
现在就剩下一个问题了,就是怎样写一个 minor mode 把我的 advice 添加进去
oxlc/toggle-ox-latex-chinese
多谢,那我只要写一个类似的函数,并不需要 minor-mode 了对吗?
差不多就是这个意思
还有一个问题,如果我改用 around advice 的话,像 org-edit-special
这种 interactive funciton 应该怎样做才能不影响它的功能呢? 下面这样行吗?
(funcall-interactivly #'orig-func args)
advice 函数体内要不要包含 (interactive)
语句?
还有这个 &rest args
参数在 funcall
里要怎样处理?
好吧,写完发现又问了一堆问题。 ping @tumashu
我倒是没有注意这些东西,你逐个试试吧,应该都可以吧
好的,我试试
interactive 的问题已经基本搞定了。 但是还有一点问题需要请教你:我想把这个 feature 做成 buffer-local 形式,应该怎样做比较合适?
感觉还是做成 minor-mode 的形式会比较 nice 吧? 但是怎样处理这个buffer-local advice 呢?
最简单的方式就是使用一个 buffer-local 变量来记录状态, 然后在代码里面根据这个变量来激活或者取消激活 feature
能不能举一个简单的例子?谢谢!我知道了,你的 ox-chinese 里好像有类似的
但是这样貌似不行,因为定义的 Advice 仍然是全局的,比如你在这个buffer 开启了,在另外一个buffer 也就开启了,不管变量的取值是什么
也许你把他做成 minor-mode 后,就是 buffer-local 了,如果做成 minor-mode,你就不需要 advice了,直接新创建一个命令, 覆盖快捷键不就完了?
这个建议不错,我想想
这个更容易维护,比较 advice-add 是没有办法的办法
好的,我试试按这种办法来实现
我原来用 advice 的初衷就是让用户可以不用自定义快捷键,现在看来鱼与熊掌不可兼得啊
这样的话我估计如果用到 spacemacs 中,用户还得专门去为它定义快捷键,这个有违我的本意啊。而且覆盖快捷键这种我总觉得不太 nice 啊。
用 minor-mode 覆盖快捷键,就是 minor-mode 的初衷,很 nice 的事情
用户要不要设置快捷键,是用户的事情,你不让用户设置快捷键就是你的事情