假设我在Emacs中打开了一个文件,并使用C-y在文件末尾粘贴新内容。
我想处理一个案例,其中emacs删除所有我希望使用M-x highlight-lines-matching-regexp
行的行。
答案 0 :(得分:4)
使用M-x keep-lines
删除与正则表达式不匹配的行。它还有一个别名M-x delete-non-matching-lines
。
答案 1 :(得分:0)
Barmar的回答可能已经足够了(并且Emacs copy matching lines可能也很有意义),但这里有一个函数(或多或少*)你所问的:
(defun my-keep-highlighted-lines ()
"`keep-lines' matching any interactively-provided highlight regexps."
(interactive)
(require 'hi-lock)
(keep-lines
(mapconcat 'car hi-lock-interactive-patterns "\\|")))
(*)显然,与正在添加到缓冲区后续的正则表达式相匹配的行仍然会受到影响。
此外,这将使用所有交互式高阻模式,因此如果您突出显示某些短语或任意正则表达式,那么这些行也将保留。 'line'正则表达式以^.*
开头,以.*$
结尾,因此如果您愿意,可以在自定义mapconcat函数中测试它。