Org LaTeX Fragment Editor (Ver. 1.2)

这就是动态作用域。。。。你如果嫌麻烦,就直接将这个配置写到 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 里要怎样处理?

好吧,写完发现又问了一堆问题。 :joy: ping @tumashu

我倒是没有注意这些东西,你逐个试试吧,应该都可以吧

好的,我试试

@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 的初衷就是让用户可以不用自定义快捷键,现在看来鱼与熊掌不可兼得啊 :joy:

这样的话我估计如果用到 spacemacs 中,用户还得专门去为它定义快捷键,这个有违我的本意啊。而且覆盖快捷键这种我总觉得不太 nice 啊。

用 minor-mode 覆盖快捷键,就是 minor-mode 的初衷,很 nice 的事情

用户要不要设置快捷键,是用户的事情,你不让用户设置快捷键就是你的事情