티스토리 뷰

반응형

지난 번에 올린 trailing space 제거하기에 이어... 파일 끝의 빈줄을 남기고 저장하게 되는 경우가 많다. 특히 파일 맨 끝에서 타이핑하는 걸 별로 좋아하지 않아서 일단 엔터 몇 번 치고 시작하는 습관이 있다보니, 좀 심한 경우에는 파일 끝 빈줄만 수십줄이 되는 경우도 있어서... 이걸 자동으로 정리해주는 기능을 넣으려면 vimrc 에 다음 코드를 추가한다.

 

augroup TrailingSpace
  au! BufWritePre * silent! %s/\($\n\s*\)\+\%$// 
augroup END

 

파일 끝의 빈 줄을 찾기위한 정규식 패턴에 대한 해설은 다음과 같다.

 

\(               : 그룹 시작
  $\n\s*         : 문장 끝 뒤의 개행과 이어지는 공백문자들
        \)\+     : 그룹 끝, 해당 그룹의 반복
             \%$ : 파일의 끝
             

 


위 명령의 간단한 설명은 다음과 같다.

 

au 명령은 특정한 이벤트가 발생할 때 이벤트의 종류와 파일의 타입에 따라서 특정한 명령을 수행할 수 있도록 설정한다. au!로 사용되는 경우에는 같은 이벤트의 기존 설정 내용을 모두 제거하게 된다. 다른 설정에 영향을 주지 않도록 하려면 autocmd  설정 부분은 augroup 명령으로 블럭으로 감싸는 것이 좋다.

 

au 명령을 설정하는 문법은 다음과 같다.

 

1.  au

2.  이벤트. 여기서는 BufWritePre 가 쓰였는데, 말 그래도 '버퍼를 파일에 기록하기 전'이다.

3.   *  는 버퍼 이름의 패턴인데, 모든 파일에 대해서 이렇게 하겠다는 의미이다.

4.  이후에는 실행할 명령이다.

 

이 명령이 한 번 실행되고나면 BufWritePre 이벤트가 발생할 때마다, 즉 파일을 저장하려는 시도가 있을 때마다 그 직전에 버퍼 끝의 빈 줄을 삭제하고 파일에 저장하게 된다. 물론 이 효과는 저장이 끝난 이후에 그대로 남아있기 때문에 저장하고나면 버퍼 끝의 빈 줄들이 제거되어 있는 것을 볼 수 있다.

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함