Vim 환경 설정

Vim 환경 설정 세 가지 방법

지금 작성 중인 파일에서만 적용할 설정은 ex모드(명령 모드에서 ‘:’을 누른 모드)에서 입력하고 엔터를 치기만 하면 된다.

본인만 사용할 설정을 영구 저장하려면 사용자 홈 디렉터리에 .vimrc 라는 파일을 만들고 여기에 설정 명령을 저장하면 된다.

모든 사용자에게 적용되는 설정을 하려면 /etc/vim/vimrc 파일에 설정 명령을 저장하면 된다.

 

환경 설정 방법

set 명령

환경 설정 해제 방법

set no명령

도움말 보기

ex모드에서 help 명령

도움말에서 단축 이름과 설명을 볼 수 있다. 설정, 해제에 어떤 단어를 쓰는지 바로 알 수 있다.

 

개인적으로 유용한 설정들

홈 디렉터리에 만든 .vimrc 파일에 모든 설정을 넣어도 상관없지만 몇 가지 설정은 /etc/vim/vimrc 파일에 주석만 지우면 되므로 이렇게 했다.

/etc/vim/vimrc 파일을 보면 구문 하이라이트 기능은 Vim 버전 5부터 지원하고 기본적으로 활성화되어있다.

그대로 내버려두자. 참고로 주석은 큰따옴표이다.

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
 syntax on
endif

그리고 전에 열었던 파일이라면 마지막 수정 위치(의 맨 앞)에서 시작할 수 있게 해주는 설정은 주석을 지워 활성화한다.

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

또 다른 파일로 작업을 변경할 때 자동 저장하거나, 마우스로 커서 위치를 바꿀 수 있게 하거나, 짝이 되는 괄호를 강조하거나 하는 설정들이 아래에 있다.

그런데 의문점이 하나 있는데 짝이 되는 괄호를 알려주는 설정인 set showmatch는 비활성화인데도 적용이 되고 있다.

어떤 설정이 이 기능까지 같이 해주는 걸까? 절대로 .vimrc에 넣어놓고 그런 건 아니다.

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd		" Show (partial) command in status line.
"set showmatch		" Show matching brackets.
"set ignorecase		" Do case insensitive matching
"set smartcase		" Do smart case matching
"set incsearch		" Incremental search
"set autowrite		" Automatically save before commands like :next and :make
"set hidden		" Hide buffers when they are abandoned
set mouse=a		" Enable mouse usage (all modes)

마우스로 커서를 이동할 수 있는 설정인 set mouse=a의 주석을 푼 상태이다.

이 외엔 .vimrc 파일에 넣은 설정들이다.

set number       "줄 번호 표시
set ruler        "현재 커서 위치 표시
set shiftwidth=4 "들여쓰기는 4칸
set tabstop=4    "기본 8칸이던 탭 크기를 4칸으로
set expandtab    "TAB을 SpaceBar로 넣음
set hlsearch     "검색 결과 강조(ex모드에서 /검색문자열)
set autoindent   "indent는 들여쓰기다
set smartindent  
set cindent      "C 프로그램용 들여쓰기
set paste        "붙여넣기 시 자동 들여쓰기
set fileencodings=utf8,euc-kr "파일 인코딩이 UTF-8인지, EUC-KR인지 판단해서 보여준다

여기서도 의문점이 있는데 TAB을 SpaceBar로 바꿔 넣는 expandtab 설정이 적용되지 않는다.

명령이 잘못된 게 아닌 게 구문 강조로 정상 작성 여부를 쉽게 알 수 있을뿐더러 지금 작성 중인 파일에만 적용되게 ex모드에서 직접 set expandtab을 하면 잘 적용되기 때문이다.

단축 명령인 set et로 저장해도 마찬가지이며 물론 작성 중인 파일에 set et 명령을 넣으면 잘 작동된다.

이유가 뭘까?

SW Level Up

mail@swlevelup.com

You may also like...

3 Responses

  1. TUNA 말해보세요:

    지나가다가
    paste 옵션을 사용하면, expandtab 는 무시됩니다.
    저도 해맸었습니다 🙂

  1. 2018-01-31

    […] Vim 환경 설정 포스트 중 일부이지만 따로 작성했습니다. […]

  2. 2020-05-01

    […] Vim 환경 설정 포스트 중 일부이지만 따로 작성했습니다. […]

답글 남기기

이메일 주소를 발행하지 않을 것입니다.