gpt4 book ai didi

python - 在 Emacs 中复制和粘贴 Python 函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:52 24 4
gpt4 key购买 nike

我有一个程序看起来像(这是一个愚蠢的例子来说明我的观点,它做什么不是很重要)

count = 0

def average(search_term):
average = 0
page = 0
current = download(search_term, page)
while current:
def add_up(downloaded):
results = downloaded.body.get_results()
count += len(results)
return sum(result.score for result in results)
total = average*count
total += add_up(current)
average = total/count
print('Average so far: {:2f}'.format(average))
page += 1
current = download(search_term, page)

如果我将光标放在第 8-11 行的任何一行上并按下组合键,我希望 Emacs 复制或终止 add_up 函数,然后我想将光标移动到第 2 行然后按一个组合键并将函数粘贴到那里,并根据粘贴的上下文使用正确的缩进级别。

这可能吗?如果可能,我该怎么做?

最佳答案

使用 python-mode.el py-kill-defyank 就可以完成这项工作。但是,有一些限制。 py-kill-def 必须从有问题的 def 内部调用。所以需要先从11号线往上走。插入后缩进也会带来一些问题:由于缩进是语法,有时 Emacs 不知道需要哪个缩进。在下面的示例中,add_up 中的第一个缩进为 4 和 8 个缩进可能是不想要的 - 但这是合法的代码。在 add_up 的正文中缩进第一行后,py-indent-and-forward 应该方便剩下的。

def average(search_term):
average = 0
def add_up(downloaded):
results = downloaded.body.get_results()
count += len(results)
return sum(result.score for result in results)
page = 0
current = download(search_term, page)
while current:

total = average*count
total += add_up(current)
average = total/count
print('Average so far: {:2f}'.format(average))
page += 1
current = download(search_term, page)

关于python - 在 Emacs 中复制和粘贴 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com