본문 바로가기
Development Tip/Dev Env

vim환경에서 공백(White Space) 제거하기

by 도비야 산책가자 2020. 8. 31.

서론

사람들과 협업을 하다보면 Code Review를 하게된다.

회사 및 팀마다 정책은 다르지만 대부분의 팀에서 white Space를 비선호하며 제거를 권유한다.

아래는 CodeReview를 위한 웹 환경에서 확인한 공백이다.

 

Code Review에서 확인 가능한 white space 

본인의 경우에는 Windows 환경에서 Visual Code를 사용하고 있으며, Linux 기반의 회사 서버에서 할당해준 계정을 Windows 네트워크 위치추가 및 터미널 접속을 통해 사용/접근하고 있다.

 

대학원 시절 CodeReivew라고는 교수님 및 동료들과 Algorithm base에서 토론을 하는 것이 일반적이였고, White Space에 대해 고민해 본 적 조차 없다.

이번에 해당 문제를 해결하기 위해 서칭한 결과 tool을 설치 사용해야하는 불편함이 있거나, vim setting의 경우 tab / space bar와 같은 모든 공백을 없애는 command가 있는 경우도 있어서 이번에 사용했던 command 및 방법을 정리하여 차 후 환경 설정할때 참고하려 한다. 꽤 찾는 것도 귀찮은 일이기 때문에 누군가의 검색 시간을 줄여 줄 수 있다면 더욱 좋겠다.

 

vim 환경에서 git diff로 실제 동작 확인을 해 본 것이니, 다른이들도 문제 없이 사용 가능 할 것이다. 또한 vi에서도 적용 가능할 것으로 보인다. 항상 포스팅은 퇴근 후 및 주말이나 집에서 노는 시간을 활용하기에 sub pc나 가상환경에서 확인하기 불편하니 본인 환경에서 확인 해보길 바란다.

 

본론

vim 환경에서 ESC를 눌러 명령 모드로 왔을때, 아래 command를 통해 뒤따르는 후행 공백을 삭제한다.
해당 방법은 매번 저장 전 아래 command를 입력해야 한다는 귀찮음이 존재한다.

:%s/\s\+$//e

 

아래는 후행하는 white space들에 대해 자동으로 제거하도록 auto command를 등록하는 방법이다.

유저가 :w 명령을 줄때마다 vim은 저장전 모든 후행하는 공백을 제거한다.

autocmd BufWritePre * %s/\s\+$//e

위 방법의 경우 모든 후행 공백을 삭제하기 때문에, 공백을 임의로 넣어 추적하고자 하거나 본인이 필요한 경우에 대해 삭제해버리기 때문에 auto적용보다는 매번 손수 적용하는 방법이 선호 될 수 있다.

 

결론

본인의 경우 본론의 매번 command 입력방식을 통해 의미 없는 white space를 삭제하거나 때에 따라,
git diff를 통해 확인 후 삭제하거나 CodeReview 단계에서 삭제 후 publish하기도 한다. 본론의 command를 통해 본인에게 맞는 방법을 적용 및 사용하길 권장한다.

 

아래는 참고 및 더 디테일한 정보가 있기 때문에 해당 포스팅이 불만족스러운 이들은 원본의 디테일한 내용을 읽으며 setting하길 바란다.

 

참고

https://vim.fandom.com/wiki/Remove_unwanted_spaces

 

'Development Tip > Dev Env' 카테고리의 다른 글

Visual Studio Code에서 White Space 제거하기  (0) 2023.05.14