2013-10-29 66 views

回答

4

使用M-x keep-lines刪除與正則表達式不匹配的行。它也有一個別名M-x delete-non-matching-lines

+0

感謝您的回覆。但是如果我有多於一行的正則表達式呢? – dearvivekkumar

+1

'regex1 \ | regex2 \ | regex3' – tripleee

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 "\\|"))) 

(*)顯然匹配的正則表達式線已添加到緩衝區後續到突出顯示仍將受到影響。

此外,這將使用所有交互式高鎖定模式,所以如果你突出顯示了一些短語或任意正則表達式,那些行也將保留。 '行'正則表達式從^.*開始,以.*$結尾,所以如果你願意,你可以在自定義的mapconcat函數中測試。