반응형
이전 포스팅에서 개발 환경 간지나게 꾸미기의 일환으로 vi을 설정했었다. 다만 분량이 많아 결과물을 만들기 위한 것을 목표로 설명이 거의 없이 진행했는데 오늘은 vi가 무엇이고 이 편집기의 장점과 .vimrc 파일에 무엇을 쓰면 어떤 역할을 하는지 하나씩 살펴보자.
Vi 이란
Vi(Vi나 Vim이다 다 같은 거다)는 1970년대에 개발된 텍스트 편집기로, 오늘날에도 여전히 사랑받고 있다. 반 세기가 지났음에도 프로그래머들 사이에서 인기 있는 이유는 다음과 같다.
- Vi는 대부분의 Unix와 Unix 계열 시스템에서 사용할 수 있다. 가볍고 많은 리소스가 필요하지 않아 보통 서버에서 많이 선택된다.
- Vi는 모든 크기의 텍스트 파일을 편집할 수 있다. 다른 편집기가 편집할 수 없는 대용량 파일을 열고 편집할 수 있다.
- Vi에는 모드 기반 인터페이스가 있다. 편집 모드와 명령 모드의 두 가지 모드가 있는데 삽입 모드에서는 다른 편집기에서와 마찬가지로 텍스트를 입력할 수 있고 명령 모드에서 사용자는 파일을 이동하고, 키보드 단축키를 사용하여 삭제, 복사, 붙여넣기 등의 작업을 수행할 수 있다. 이러한 모드 기반 인터페이스는 마우스 기반 메뉴와 버튼에 의존하는 다른 편집기보다 vi을 훨씬 효율적으로 만든다.
- Vi에는 복잡한 편집 작업을 빠르고 효율적으로 수행할 수 있는 수많은 키보드 단축키가 있다. 익숙해지면 키보드 명령만 사용하여 빠른 속도로 파일을 편집할 수 있다.
- Vi는 커스텀이 용이하다. .vimrc 파일을 만들고 플러그인을 사용하여 편집기를 수정할 수 있습니다.
이처럼 vi는 많은 개발자와 시스템 관리자들이 선호하는 강력하고 효율적인 텍스트 에디터이다. 일부 다른 에디터보다 학습 곡선이 가파르지만 잘만 사용하면 이만큼 간지나는 에디터가 따로 없다.
.vimrc 설정
사람들이 .vimrc에서 자주 쓰는 설정을 하나씩 살펴보자.
- syntax on
코드의 문법에 색을 입혀준다. 코드의 가독성을 높여준다. - filetype indent plugin on
파일 유형별 들여쓰기 플러그인이 활성화된다. 이 옵션이 켜져 있으면 Vim은 편집 중인 파일의 형식에 따라 들여쓰기를 자동으로 해준다. 지원하는 형식은 터미널에ls /usr/share/vim/vim90/indent
을 쳐서 확인할 수 있다. (숫자는 다를 수 있으니 자신의vim90
을 직접 타이핑하지 말고 탭을 누르자.) - set title
편집기의 제목 표시줄에 파일 이름을 표시한다. - set ruler
편집기 하단 제목 표시줄에 현재 커서 위치를 표시한다. - set showmatch
커서가 괄호 위에 있을 때 일치하는 괄호를 강조 표시한다. - set t_Co=256
256색상을 지원하게 해준다. - set hlsearch
검색 시 일치하는 항목을 강조한다. - set smartcase
검색할 단어에 대문자가 없는 경우 대소문자를 구분하지 않고 검색한다. - set expandtab
탭이 공백으로 자동 전환된다. 파이썬을 사용할 때 유용하다. - set tabstop=4
탭의 너비를 네 칸으로 설정한다. - set shiftwidth=4
들여쓰기의 정도 별로 사용할 공백 수를 설정한다. - set softtabstop=4
탭을 누르거나 백스페이스를 사용해 탭을 지울 때 설정한 수만큼의 공백을 한 번에 처리한다. - set smarttab
expandtab 및 softtabstop이 shiftwidth와 다를 때 사용된다고 하는데 특별히 우리가 써먹을 일은 없을 것이다. - set autoindent
이전 줄의 들여쓰기만큼 자동으로 새 줄을 들여쓰기 한다. - set smartindent
편집 중인 코드의 구문과 일치하도록 들여쓰기를 자동으로 조절한다. - set laststatus=2
항상 화면 하단에 상태 표시줄을 보여준다. - set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F"\
상태 표시줄을 설정하는 것인데 하나씩 살펴보자.
참고로 현재 줄 번호, 버퍼의 총 줄 수, 현재 표시되는 버퍼의 백분율, 버퍼가 수정되었는지, 숨겨지는지, 수정되는지 여부가 표시된다.
- %<: 줄이 너무 길어 화면에 맞지 않으면 줄을 자름
- %l: 현재 줄 번호
- :%v: 버퍼의 총 라인 수
- [%P]: 현재 화면에 표시되는 버퍼의 퍼센트
- %=%: 상태 표시줄의 왼쪽과 오른쪽 섹션을 구분
- %a: 버퍼가 수정된 경우 별표를 표시
- %h: 버퍼가 창에 가려져 있으면 별표를 표시
- %m: 버퍼가 다른 Vim 세션에 의해 수정되는 경우 별표를 표시
- %r: 버퍼가 읽기 전용인 경우 별표를 표시
- %F: 편집 중인 파일의 이름
- set termguicolors
터미널에서 트루 컬러를 활성화한다.
이 외에도 편집하던 커서 위치를 기억하는 기능, 자동 완성 기능, 상태바를 컬러풀하게 만들어주는 기능 등 다양한 기능이 있다.
이 내용은 다음에 포스팅하도록 하겠다.
반응형
'코딩 환경 > Vim' 카테고리의 다른 글
[Vim] Vim, Vi 여러 줄 주석 처리/해제하기 (0) | 2023.03.13 |
---|---|
[Vim] Vim, Vi 단축키 모음 (Vim Shortcuts) (0) | 2023.03.10 |
[vim] vi, vim에서 자동 완성 기능 설정하기 (2) | 2023.02.21 |
[vim] vi, vim 이전 커서 위치 기억 (0) | 2023.02.20 |