blog.stackframe.dev

Vim 기본 설정 로드하지 않기 (자동 들여쓰기 해제)

나는 들여쓰기를 탭으로 하는 취향이고 tabstop=4로 탭 크기를 스페이스바 4칸으로 보이게 설정한다. 문제는 이 상태에서 Vim 자동 들여쓰기를 켜면 탭 2개를 넣어버린다. shiftwidth=4를 설정하지 않으면 이런 현상이 발생하는데, 예전에는 이걸 모르고 그냥 자동 들여쓰기를 끄고 직접 일일이 넣었고 오히려 자동 들여쓰기가 불편한 지경에 이르렀다. 이런 이유로 내가 리눅스 설치하고 맨 먼저 하는 작업이 Vim 설정에서 자동 들여쓰기를 꺼버리는 것이 되었다.

Vim은 설정 파일 로드 순서가 조금 특이하다. /etc/vimrc를 로드한 후에 defaults.vim이란 기본 설정을 로드한다. 보통 다른 프로그램들은 시스템 기본 설정보다 /etc/ 디렉토리에 들어있는 설정이 더 우선순위를 가지는데, Vim은 /etc/vimrc를 맨 먼저 로드하기에 이걸 수정을 하더라도 시스템 기본 설정을 덮어쓸 수 없다. 대신 사용자의 홈 디렉토리에 .vimrc 파일이 존재하거나 /etc/vimrcskip_defaults_vim=1이 설정된다면 defaults.vim을 로드하지 않는다. 정확히는 skip_defaults_vim 변수가 설정되면 defaults.vim 처리를 중단한다. 아래는 defaults.vim 설정의 일부이다:

" Bail out if something that ran earlier, e.g. a system wide vimrc, does not
" want Vim to use these default values.
if exists('skip_defaults_vim')
  finish
endif

그래서 보통 배포판에서 /etc/vimrc 파일에 이 설정과 설명을 주석으로 넣어둔다. 아래는 Arch Linux의 /etc/vimrc 일부이다:

" do not load defaults if ~/.vimrc is missing
"let skip_defaults_vim=1

이 설정을 주석해제하면 자동 들여쓰기도 사라지고 소스코드의 알록달록한 하이라이트도 기본 폰트 색상으로 되어있을 것이다. 구문 강조를 다시 활성화하려면 아래의 코드를 추가하면 된다:

syntax on

추가로 왼쪽에 라인 번호를 보고싶다면 set nu를 추가하자.

댓글