Emacs24.4开始有了一个新的命令:delete-duplicate-lines

M-x delete-duplicate-lines会删除选中region中的重复行. 举个例子,假设选中的region为:

             test 
             dup  
             dup  
             one  
12345678910  two  
             one  
             three
             one  
             test 
             five

则,在执行M-x delete-duplicate-lines后,region的内容变为:

        test 
        dup  
123456  one  
        two  
        three
        five

默认情况下若存在多个重复行,则从上到下第一次出现的行会保留下来. 若想保留的是最后一次出现的行,则使用C-u M-x delete-duplicate-lines.  这样的话,region会变为:

        dup  
        two  
123456  three
        one  
        test 
        five

注意到:与UNIX的uniq命令不同的是,在判断重复行时,并不要求重复行是相互毗邻的,若要实现类似uniq的效果,可以使用C-u C-u M-x delete-duplicate-lines.

若要保留重复的空白行,则需要使用C-u C-u C-u M-x delete-duplicate-lines