gpt4 book ai didi

emacs - 用 Emacs 批量替换文本文件中的一堆字符串

转载 作者:行者123 更新时间:2023-12-04 12:13:53 28 4
gpt4 key购买 nike

要将文本文件中所有出现的 'foo' 替换为其他字符串,常用的 Emacs 命令是 M-x replace-string .

晚了,我不得不在我的文本文件中替换几个这样的字符串。正在做M-x replace-string对于每一个我想替换的表达都是很累的。是否有任何 Emacs 命令可以用它们的替代品“批量替换”一堆字符串?

这可能看起来像,
M-x batch-replace-strings RET foo1, foo2, foo3, RET bar1, bar2, bar3 RET其中 RET 代表按回车键。

所以现在 foo1 已经被 bar1 取代,foo2 被 bar2 取代,foo3 被 bar3 取代。

最佳答案

此代码执行您想要的操作,逐对提示输入字符串对:

(defun batch-replace-strings (replacement-alist)
"Prompt user for pairs of strings to search/replace, then do so in the current buffer"
(interactive (list (batch-replace-strings-prompt)))
(dolist (pair replacement-alist)
(save-excursion
(replace-string (car pair) (cdr pair)))))

(defun batch-replace-strings-prompt ()
"prompt for string pairs and return as an association list"
(let (from-string
ret-alist)
(while (not (string-equal "" (setq from-string (read-string "String to search (RET to stop): "))))
(setq ret-alist
(cons (cons from-string (read-string (format "Replace %s with: " from-string)))
ret-alist)))
ret-alist))

关于emacs - 用 Emacs 批量替换文本文件中的一堆字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682079/

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