NLP/AI/Statistics

vim에서 tab이 공백으로 처리되는 경우 본문

Computer Setting/Linux & Vim

vim에서 tab이 공백으로 처리되는 경우

Danbi Cho 2021. 10. 19. 17:11

vim에서 간혹 아래와 같은 에러가 발생한다.

이 TabError는 보통 tab과 공백을 혼동해서 사용했을 때 발생하는 에러이다.

 

하지만 분명 tab으로만 사용했는데도 이런 에러가 발생할 때가 있다.

 

이는 분명 tab을 사용했지만 알고보니 이 tab이 공백으로 처리되는 경우였다.

 

tab을 사용한 후 화살표 조작 키보드를 사용하여 옆으로 움직여보면 8개의 공백처럼 처리되어 있었다.

 

이는 tab을 공백으로 처리하겠다는 명령어에 의해 작동된다. 

 

$ vim .vimrc

터미널에서 위와 같은 코드를 작업하면 vim 설정을 볼 수 있다.

 

기존의 vimrc는 아래와 같이 작성되어 있었다.

 

여기에서 문제는 바로 "set expandtab"

 

이 부분이 tab을 공백으로 처리하겠다는 명령이기 때문에 tab을 공백으로 처리했던 것이다.

 

해당 부분을 삭제하고 아래와 같이 해당 파일을 실행시키면 된다.

 

$ source .vimrc

 

tab을 공백으로 처리하지 않도록 설정하여 문제를 해결하였다.


이외에도 다음과 같은 설정 방법들이 있다.

 

> retab

: 현재 있는 tab들을 공백으로 전환 (사실 위의 문제를 이 코드로 해결할 수도 있다.)

 

> set shiftwidth = 8

: >와  < 방향키로 tab 전환을 변경 (전환 기준을 공백 8개로 취급한다.)

 

> set tabstop = 8

: 공백 8개를 한 번의 들여쓰기로 취급 (즉, 공백 8개가 tab 한번과 동일한 역할을 한다.)

 

> set expandtab

: tab을 공백으로 처리

(위의 문제에서는 tab을 공백으로 처리하지 않기 위해 이 부분을 삭제하였다.)

Comments