'Emacs对python-mode函数的defadvice'

2024-06-16 12:55:03 发布

您现在位置:Python中文网/ 问答频道 /正文

在python模式下,有一个名为py execute region的函数,它将突出显示的代码区域发送到python缓冲区进行计算。求值后,光标在Python缓冲区中,但我希望它保留在脚本缓冲区中,以便可以继续生成更多代码。我写了一个简单的建议函数:

(defadvice py-execute-region                                                
   (after py-execute-region-other-window activate)                          
   """ After execution, return cursor to script buffer """                  
   (other-window 1)                                                         
) 

但这根本没用。我尝试过其他变体,比如使用'around'而不是'after';将一个变量设置为脚本缓冲区名称,然后弹出缓冲区到该缓冲区等等。没有成功!我想知道这其中的机制对某人来说是否显而易见。。。谢谢!在


Tags: 函数代码py脚本区域execute模式window
3条回答

你那里的东西对我很好。它应该自动激活,所以不需要单独激活。但是,您确实需要取消激活并重新激活通知才能使更改生效:

1)定义和激活建议

2)它做不到你想要的,所以改变建议

3)停用:(ad deactivate'py execute region)

4)重新激活:(ad activate'py execute region)

第4步应该使用您在第2步中所做的更改。或者,您可以在步骤2中更改代码,然后在步骤4中重新计算代码(假设设置了activate标志)。在

在这种情况下,解决方案似乎是

^{1}$

使用around advice将函数包装到 save-window-excursion,这将恢复上一个窗口 命令完成后的配置。在

^{1}$

但是请记住,如果Python缓冲区尚未显示, 命令完成后,它仍将被隐藏。为了弥补这一点, 您可以在 结束:

^{pr2}$

另外,确保不要在elisp中使用"""triple quotes"""。我不 你觉得他们有用。在

相关问题 更多 >