1

我被困在这个问题上。我有一个包含近 10k 行的文件。其中一些应该被删除,我可以从它们的内容中得到提示,例如,如果它们包含某种模式“xyz”,也许它们必须被删除。所以,我的想法是:
* 只选择那些包含我列表中每个模式的行
* 手动检查它们并更改实际要删除的行,在它们前面加上“--”(或类似
的)* ...最后,删除所有以“--”开头的行。
实际上删除所有未保留的行(TIL),还有keep-lines其他方法可以做我需要的吗?提前致谢。

4

4 回答 4

4

一种想法是使用 Mx 发生来选择可能的候选者。然后,在Occur缓冲区中使用“e”进入“Occur Edit Mode”。在这种模式下,Occur 缓冲区中的编辑会反映到原始缓冲区中。所以也许你可以完全删除那里的行。

于 2013-09-26T17:27:02.420 回答
1

听起来你可以用query-replace-regexp.

  1. M-C-%(或M-x query-replace-regexp
  2. 输入^.*xyz.*$您的搜索词并将替换词留空(按回车键)
  3. 依次检查每个匹配的行,点击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 回答