탭과 스페이스같은 공백문자는 보통 눈에 보이지 않기에 norm error의 원인이 되고는 한다.

vim에서 공백문자를 보이게 하기 위해서는 .vimrc에 다음과 같이 설정하면 된다.

set list

혹은 일시적으로만 이용하려면 vim 노말 모드에서 :set list를 입력해도 된다. :set list !로 켜고 끌 수도 있다.

별다른 설정을 하지 않았다면 탭문자가 ^I 와 같이 표시될 것이다. 이래서는 간격도 잘 안맞고 모양도 안예쁘다..고 생각했다.

list 모드에서 각각의 공백문자가 어떻게 표시될지 설정하는 옵션이 listchars이다. (vim에서 :help listchars 참고)

여러가지 옵션이 있지만 그 중 eol (end of line), tab, trail (줄 끝에 달린 스페이스)을 설정해 사용하고 있다.

set listchars=eol:$,tab:\\|.,trail:-

(pipe문자의경우 backslash가 필요해서 넣어주었다)

eol 문자는 $로, trail은 -로, 그리고 tab은 |... 같은 식으로 보이게 된다.

부연하자면 tab:xy[z] 에서 x는 탭을 나타낼 첫 문자, y는 폭에 맞춰 채워질 문자. z (없어도 됨)는 탭의 끝을 나타낼 문자이다.

tab:>- 는 >, >-, >—- 등으로 보이게 되고,

tab:>-<는 >, ><, >-<, >—< 등으로 2번째 문자인 -가 폭에 맞춰 채워지게 된다.