我被困在这个问题上。我有一个包含近 10k 行的文件。其中一些应该被删除,我可以从它们的内容中得到提示,例如,如果它们包含某种模式“xyz”,也许它们必须被删除。所以,我的想法是:
* 只选择那些包含我列表中每个模式的行
* 手动检查它们并更改实际要删除的行,在它们前面加上“--”(或类似
的)* ...最后,删除所有以“--”开头的行。
实际上删除所有未保留的行(TIL),还有keep-lines
其他方法可以做我需要的吗?提前致谢。
问问题
105 次
4 回答
4
一种想法是使用 Mx 发生来选择可能的候选者。然后,在Occur缓冲区中使用“e”进入“Occur Edit Mode”。在这种模式下,Occur 缓冲区中的编辑会反映到原始缓冲区中。所以也许你可以完全删除那里的行。
于 2013-09-26T17:27:02.420 回答
1
听起来你可以用query-replace-regexp
.
M-C-%
(或M-x query-replace-regexp
)- 输入
^.*xyz.*$
您的搜索词并将替换词留空(按回车键) - 依次检查每个匹配的行,点击
space
删除或n
离开。确保从缓冲区的开头开始捕获所有内容。
于 2013-09-26T18:33:51.503 回答
1
您可以获得隐藏线并使用M-x hine-lines-not-matching
. 由于它仍然是同一个缓冲区(只是显示不同),您可以根据需要编辑可见行。
于 2013-09-27T16:59:45.440 回答
1
你不妨试试M-x all
。就像M-x occur
缓冲区更改传播到原始缓冲区一样。 all
可以从 GNU ELPA 安装(即通过M-x list-packages
)。
于 2013-09-26T17:38:24.123 回答