如何在PyDev中使用函数快速环绕变量或表达式(重复编辑)?

时间:2015-06-05 09:29:27

标签: python eclipse refactoring pydev

我正在使用PyDev,但我不知道如何快速环绕一些变量或表达式。让我解释一下 - 我有这样的代码(约200条相似的行)。

a = some_func(b)

我想用功能进行一些转换来围绕b并且在其他行中重复200 - 所以首先想要标记选择而不是应用环绕声 - 只需点击一下/键就能在PyDev中完成(或比复制更快开始复制结束)。

a = some_func(some_surrounding_func(b))

或稍微复杂一点:

a = some_func(some_surrounding_func(b, 1))

通常情况下,我some_surrounding_func(之后b, 1)之后处理URL - 它非常低效且速度慢 - 我可以更快地完成它并在Eclipse PyDev中跳过这个非生产性任务吗?

1 个答案:

答案 0 :(得分:1)

嗯,这里有一些替代方案:

一个人会创建一个自定义脚本命令...虽然它需要一些准备工作(创建命令),但实际上这应该是非常简单的(并且知道你是否拥有某些内容确实很有用#&# 39; ll重复很多)。

我在以下网址为您创建了一个示例:

https://gist.github.com/fabioz/d398cfa30960285c869c

- 只需下载名为pyedit_xxx.py的文件,并将其中一个跟踪目录设置为“首选项”>中设置的脚本。 Pydev>脚本PyDev)。您可能想要配置ACTIVATION_STRING(它绑定到' x'在该示例中,这意味着它已被Ctrl + 2,x激活) - 您可以编辑它以更改环绕声的功能(以及你想要的任何其他结果) - 请注意你必须重新启动当前的PyDev编辑器才能使用脚本...更多细节见http://pydev.org/manual_articles_scripting.html

另一个选项(如果您正在使用带有LiClipse的PyDev - http://www.liclipse.com/)可以使用多个游标功能,在这种情况下非常方便:http://www.liclipse.com/multi_edition_video.html(即:选择您需要的所有内容然后编写之前和之后的部分,并将其同时应用于所有选定的位置 - 尽管这只有在所有出现位于同一文件中时才有效。)

另一种选择可能是使用实际宏插件(https://sourceforge.net/projects/practicalmacro/),您可以在其中录制宏并在之后播放。

另一种选择(如果您要替换可以使用单个正则表达式搜索的内容)将在正则表达式模式下进行文件搜索(Ctrl + H),然后替换所有将使用该组的之前找到的表达式(如果你进行正则表达式替换 - 请注意,只有在进行正则表达式搜索时才会激活它。)

I.e。:

假设您要搜索匹配' x'的所有名称,您要搜索正则表达式\ bx \ b,然后您可以替换某些内容作为my_func($ 0) - - 请注意,$ 0,$ 1等表示先前匹配的正则表达式的部分(因此,您甚至可以执行诸如反转其中的顺序之类的事情)。