gpt4 book ai didi

emacs - 用区域上调用函数的结果替换区域

转载 作者:行者123 更新时间:2023-12-04 00:09:03 24 4
gpt4 key购买 nike

我将如何编写一个交互式函数,该函数接受一个函数并用在该区域上调用该函数的结果替换当前选定的区域。

我看到这个答案:
https://stackoverflow.com/a/6539916/625365

但那是每行调用一次函数,而不是将区域作为参数给它,而且看起来代码很多。

最佳答案

我认为你可以在 filter-buffer-substring 周围做一些诡计,但这似乎是一个晦涩的功能,至少对我来说是这样。另一方面,直接在 Emacs Lisp 中这样做似乎并不复杂:

(defun apply-function-to-region (fn)   
(interactive "XFunction to apply to region: ")
(save-excursion
(let* ((beg (region-beginning))
(end (region-end))
(resulting-text
(funcall
fn
(buffer-substring-no-properties beg end))))
(kill-region beg end)
(insert resulting-text))))

然后,您可以使用接受和生成文本的函数(例如 capitalize ),并将区域大写。该函数将要求应用一个函数。最后,删除的文本保存在kill ring中。

关于emacs - 用区域上调用函数的结果替换区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14201740/

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