set sts=4

Tags:

‘스페이스 vs 탭문자’는 코딩 시의 주요 다툼거리입니다. 심지어 Tabs versus Spaces: An Eternal Holy War와 같은 글마저도 있죠.

어쨌든 저는 탭보다는 스페이스를 선호하는 입장인데, 그 이유는 탭문자를 넣고 작성한 파일을 cat 으로 보거나 하면 다 깨져서 보인다는 문제죠. 마찬가지로 vi로 본다고 해도 탭크기가 정확히 안맞으면 파일이 제대로 안보이죠.

이런 문제를 해결하는 방법이
set ts=4
set expandtab
입니다.

ts=4라는건 탭크기를 4로한다는 의미이고 expandtab은 탭 문자를 공백으로 바꾼다는 의미입니다. 즉 탭을 쳐도, 실제로는 스페이스가 들어가죠.

또 이외에도
set sw=4
도 있어야하는데, 이건 Y 키를 눌러서 block mode로 전환하고 커서키 이동해서 영역 설정한뒤에 > 또는 < 키를 눌러서 인덴트를 조정할때 얼마나 들여쓰고 내쓰는지를 설정하는 크기입니다. 이렇게 설정하고 살면 한가지 불편한게, 탭으로 공백을 넣고나서 backspace 를 칠때입니다. 예를들어서 ABCD 라는 입력은, ____ABCD 로 바뀌죠. (여기서 _는 스페이스를 의미함) 그러면 문제가 뭐냐면, A에다가 커서를 놓고 백스페이스를 누를경우 ___ABCD와 같이 공백이 1칸 줄어든단 것입니다. 정말 귀찮죠. 사실 탭의 가장 큰 장점은 탭쳐서 인덴트하고 백스페이스 한번 누르면 이전 탭 위치로 한번에 가준다는 것이거든요. 이를 해결하기 위한 방법을 어쩌다 알게되었는데, set sts=4가 그것입니다. 이 설정은 탭으로 넣은 인덴트는 백스페이스 한번으로 줄어들게 해줍니다. 예를들어 앞서의 ABCD 입력은 ____ABCD로 바뀌게되는데, A밑에서 커서를 놓고 백스페이스를 치면 ABCD 와 같이 4개의 스페이스가 한번에 사라집니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *