vi 에디터는 Unix와 Linux 환경에서 가장 기본적인 텍스트 편집기 중 하나이며, vim (vi improved)는 이를 확장하여 더욱 강력한 기능을 제공하는 에디터이다. 이 두 에디터는 "모드 기반" 동작으로 유명하며, 파일 편집과 시스템 관리에 필수적인 도구이다.
vi 에디터
- vi (Visual Editor)는 Unix 시스템에서 기본적으로 제공되는 텍스트 편집기이다.
- GUI가 없는 환경에서도 작동하며, 키보드만으로 모든 작업을 수행할 수 있다.
- 경량화된 구조로, 단순히 텍스트 편집뿐만 아니라 시스템 설정 파일 수정 등 다양한 작업에 유용하다.
주요 특징
- 모드 기반 동작:
vi는 명령을 실행하거나 텍스트를 입력하는 모드 기반 구조를 가진다.
- 경량성:
최소한의 리소스를 사용하며, 네트워크나 서버 관리에서 주로 사용된다.
- 보편성:
대부분의 Unix/Linux 배포판에서 기본적으로 설치되어 있다.
vim (vi improved)
- vim은 vi를 기반으로 추가적인 기능(문법 강조, 플러그인, 여러 버퍼 등)을 제공하는 개선된 에디터이다.
- vi와 완전히 호환되며, 최신 기능을 원하는 경우 vim을 사용하는 것이 일반적이다.
vim의 추가적인 기능
- 문법 강조: 프로그래밍 언어에 따른 구문 강조 표시.
- 다중 버퍼: 여러 파일을 동시에 열고 작업.
- 검색과 치환: 정규식을 활용한 강력한 검색/치환 기능.
- 플러그인 지원: 사용자 정의 기능 추가 가능.
모드 기반 구조
vi와 vim은 모드 기반 텍스트 편집기로 작동한다. 각각의 모드는 특정 작업에 맞게 설계되어 있으며, 이를 이해하는 것이 핵심이다.
주요 모드
일반 모드 (Normal Mode)
- vi 또는 vim을 실행하면 기본적으로 진입하는 모드이다.
- 명령어 입력(예: 이동, 삭제, 복사 등)이 가능하며, 텍스트 입력은 불가능하다.
- 일반 모드에서는 특정 키 입력을 통해 다른 모드로 전환한다.
입력 모드 (Insert Mode)
- 텍스트를 입력할 수 있는 모드이다.
- 일반 모드에서
i, a, o 등의 키를 눌러 입력 모드로 전환한다.
- 입력 모드 종료:
Esc 키를 눌러 다시 일반 모드로 돌아간다.
명령 모드 (Command-Line Mode)
- 파일 저장, 종료, 검색 등 명령을 수행하는 모드이다.
- 일반 모드에서
: 키를 누르면 명령 모드로 전환된다.
:w
:q
:wq
:q!
비주얼 모드 (Visual Mode)
- 텍스트를 선택(블록 지정)하여 작업할 때 사용하는 모드이다.
- 일반 모드에서
v키를 눌러 진입한다.
- 선택한 텍스트에 대해 복사(
y), 삭제(d), 들여쓰기(>) 등의 작업을 수행할 수 있다.
기본 명령어
vi와 vim의 주요 명령어는 효율적인 작업을 위해 설계되었다. 가장 자주 사용하는 명령어들을 모드별로 정리한다.
일반 모드에서 사용하는 주요 명령어
커서 이동
h: 왼쪽으로 이동
j: 아래로 이동
k: 위로 이동
l: 오른쪽으로 이동
w: 다음 단어로 이동
b: 이전 단어로 이동
삭제 및 복사
x: 현재 커서 위치의 문자 삭제
dd: 현재 줄 삭제
d$: 커서부터 줄 끝까지 삭제
yy: 현재 줄 복사
p: 복사한 내용을 붙여넣기
편집
i: 현재 커서 앞에서 입력 모드로 전환
a: 현재 커서 뒤에서 입력 모드로 전환
o: 커서 아래에 새 줄 삽입 후 입력 모드
취소/복구
u: 이전 작업 취소 (undo)
Ctrl + r: 취소된 작업 복구 (redo)
명령 모드에서 사용하는 주요 명령어
파일 저장
:w
파일 저장 후 종료
:wq
저장하지 않고 종료
:q!
문자열 검색
/search_term
n
vim에서의 고급 기능
vim은 vi보다 강력한 고급 기능을 제공한다. 주요 기능은 다음과 같다:
문법 강조(Syntax Highlighting)
- 프로그래밍 코드의 가독성을 높여주는 기능이다.
활성화
:syntax on
다중 버퍼(Buffer)
파일 열기
:e filename
버퍼 목록 보기
:ls
버퍼 간 전환
:b buffer_number
플러그인 및 설정
- vim은
.vimrc 설정 파일을 통해 사용자 정의가 가능하다.
- 플러그인을 설치하여 추가 기능 제공(예: 자동완성, 파일 탐색기 등).
정리
- vi 에디터는 Unix/Linux 시스템의 기본 텍스트 편집기이며, 경량성과 보편성이 강점이다.
- vim은 vi를 확장하여 다양한 편의 기능(문법 강조, 다중 버퍼, 플러그인)을 제공하는 강력한 에디터이다.
- 모드 기반 동작(일반 모드, 입력 모드, 명령 모드 등)을 이해하면 vi/vim을 효율적으로 사용할 수 있다.
- 서버 관리, 프로그래밍, 설정 파일 편집 등에서 vi와 vim은 필수 도구로, 숙련되면 생산성이 크게 향상된다.