Heesung Yang
소스코드 내에(텍스트 파일) vim 옵션 설정하기
가끔 원격 서버에서 vim
으로 파일을 편집해야 할 때가 있다. 원격 서버는 개인용이 아니므로 보통 ~/.vimrc
설정이 없다. 이 경우 vim
으로 파일을 열어 tab키를 누르면 8칸씩 들여쓰기가 되고 tab 문자가 입력된다. 사람마다 호불호가 갈리지만 필자는 tab 대신 space 사용을 선호하며 들여쓰기 간격은 4칸을 선호한다.
이를 위해 서버마다 ~/.vimrc
를 설정할 수는 없는 노릇이니 대신 내가 생성한 파일마다 이런 설정값을 넣을 수 있다.
이를 modeline
기능이라고 하며 다음과 같이 동작한다.
-
파일의
시작
또는끝부분
5줄
을 읽어 들인다.-
5줄
은 설정 변경 가능하다. 그러나 바꿀 경우는 거의 없다. 아래는 10줄로 바꾸는 방법.:set modelines=10
-
-
읽어들인 내용에 아래 형식으로 된 문자열이 있을 경우, 해당
vim
옵션을 적용한다.
첫 번째 형식
[text]{white}{vi:|vim:|ex:}[white]{options}
[text]
: 아무 문자(들) 또는 없어도 ok- 편집하는 파일이 프로그램 소스코드인 경우 주석처리를 해야 컴파일 오류나 실행 오류가 발생하지 않으므로 주석 문자 입력을 위해 필요한 부분
{white}
: 공백 (Space or Tab){vi:|vim:|ex:}
:vi:
또는vim:
또는ex:
[white]
: 공백 있어도/없어도 ok{options}
: 적용하고자 하는 설정들, 공백 또는:
문자로 각 설정을 구분
Examples
-
example #1
#include <stdio.h> int main() { printf("hello vim!\n"); return 0; } // vim: ts=4:sw=4:expandtab
-
example #2
# vim: ts=4 sw=4 expandtab ai print("hello vim!")
두 번째 형식
vi
와의 호환을 위한 형식이기 때문에 거의 사용되지 않는다.
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
[text]
: 아무 문자(들) 또는 없어도 ok{white}
: 공백 (Space or Tab){vi:|vim:|Vim:|ex:}
:vi:
또는vim:
또는Vim:
또는ex:
[white]
: 공백 있어도/없어도 okse[t]
:set
또는se
입력 후 한칸 띄어쓰기.:Vim
으로 설정했을 경우set
으로 설정해야 함{options}
: 적용하고자 하는 설정들, 공백으로 각 설정을 구분:[text]
::
이후 아무 문자(들) 또는 없어도 ok
examples
/* vim: set ai tw=75: */
/* Vim: set ai tw=75: */
Reference:
:help modeline
Previous post
[명령어] git commitNext post
[Python] MS Word 파일 수정하기