티스토리 뷰
지난 번에 올린 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 이벤트가 발생할 때마다, 즉 파일을 저장하려는 시도가 있을 때마다 그 직전에 버퍼 끝의 빈 줄을 삭제하고 파일에 저장하게 된다. 물론 이 효과는 저장이 끝난 이후에 그대로 남아있기 때문에 저장하고나면 버퍼 끝의 빈 줄들이 제거되어 있는 것을 볼 수 있다.
'CRISPR 전까진 Vim이었어' 카테고리의 다른 글
vim help를 풀 윈도우로 열기 (0) | 2016.10.14 |
---|---|
vim 저장 시 trailing space 를 자동으로 제거하기 (0) | 2016.10.13 |
- Total
- Today
- Yesterday
- iterable
- 파이썬
- 단어 빈도수
- ipython-notebook
- globals()
- 변경가능
- leapYear
- short_circuit
- 복수기준정렬
- python list
- mutability
- locals()
- 파이썬노트북
- 파일입출력
- 정렬기준
- 리스트
- Lambda
- sorted
- 이중리스트를 사용하지 않기
- 우분투
- 튜플언패킹
- 정렬키
- 표준입력
- 사전
- jupyter-notebook
- 함수형
- Python
- 리눅스
- 반복자
- dict
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |