2010-12-11 8 views
10
M-x flush-lines ^$ 

은 버퍼의 모든 빈 줄을 삭제합니다. 그러나 빈 줄을 추가로 삭제하고 싶습니다. n-1을 지우고 계속 지우려는 연속적인 빈 줄이있는 경우입니다.emacs에서 여분의 공백 행을 삭제합니다.

delete-blank-lines은 지점 아래의 빈 줄에 대한 작업을 수행하지만 전체 버퍼에서 작동하는 간단한 솔루션이 필요하다는 것을 알고 있습니다.

아이디어가 있습니까? 특히 첫 번째 예제에서 정규식^$를 수정하여 여분의 줄만 일치시킬 수 있습니까?

답변

18
C-x h M-x replace-regexp RET^C-q C-j C-q C-j + RET C-q C-j RET 

빈 줄과 빈 줄이 하나 이상이어야합니다.

+0

마찬가지로 'M-x replace-regexp RET^C-q C-j $ RET RET'을 할 수 있습니다. 이렇게하면 빈 줄 두 개가 하나의 빈 줄로 바뀝니다. –

4

나는 이것에 대한 기능을 내장 모르는,하지만 당신은 할 수 있습니다 :

MX 단일 라인 전용

(defun single-lines-only() 
    "replace multiple blank lines with a single one" 
    (interactive) 
    (goto-char (point-min)) 
    (while (re-search-forward "\\(^\\s-*$\\)\n" nil t) 
    (replace-match "\n") 
    (forward-char 1))) 
전체 버퍼를 표시하고이를 대체
5

C-x C-o (delete-blank-lines)은 정확히 동일합니다. 전체 버퍼에서 실행하려면 매크로 매직이 필요합니다.

+1

C-x C-o, C-x o는 다른 창을 호출합니다. – monotux

+0

사실, 서두에 응답을 입력했습니다. 감사. – eGlyph

관련 문제