vi(브이아이, /ˈvˈ/)는 Emacs와 함께 유닉스 환경에서 가장 많이 쓰이는 문서 편집기이다. 1976년에 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 만들었다. vi라는 이름은 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터(visual editor)라는 뜻에서 유래했다. 간결하면서도 강력한 기능으로 사용자가 많다.

vi
개발자빌 조이
발표일1976년(48년 전)(1976)
저장소
종류문서 편집기
라이선스BSD
웹사이트ex-vi.sourceforge.net/ 위키데이터에서 편집하기

현재는 오리지널 vi를 사용하는 경우는 거의 없고, 일반적으로 기능을 모방하여 만들어진 클론을 사용하고 있다. 이런 클론 중 많이 쓰이는 것은 기능이 다양한 것을 장점으로 내세우며 리눅스 배포판에 포함되는 Vim 및 그의 리팩터판인 Neovim, 그리고 BSD 라이선스로 제공되며 원본 vi의 동작과 호환성으로 정평이 나 있는 nvi, 독자적인 팬층을 확보한 elvis 등이 있다.

vi의 역사 편집

 
ADM3A 키보드 레이아웃

빌 조이캘리포니아 대학교 버클리에서 Lear-Siegler ADM3A 터미널에서 vi를 작성했다. 그런데 이 터미널의 키보드는 Esc 키가 현재 많이 사용되는 IBM 호환 키보드(IBM PC 키보드)의 Tab ↹ 키에 해당하는 위치에 있었기 때문에 이 키를 가지고 사용자들이 vi 에디터 모드 변경을 매우 효과적으로 할 수 있었다. 또한 Lear-Siegler ADM3A 터미널에는 화살표 키에 대응할 만한 키가 없었기 때문에 vi는 H, J, K, L 키(keys h,j,k,l)가 지금의 화살표 키를 대신해서 커서를 이동하게 만들어졌다.

조작법 편집

Vi는 명령모드(command mode)와 편집모드(insert mode)가 있으며 일단 프로그램을 시작하면 일반적으로 명령모드로 시작하게 된다. 이때 키보드에서 I 키를 누르게 되면 편집모드로 들어갈 수 있다. 편집모드에서 문서 내용을 추가, 삭제 등 편집 작업을 할 수 있다. 여기서 Esc 키를 눌러 편집모드를 빠져나와 다시 명령모드로 되돌아 올 수 있다. 따라서 vi에서는 편집모드에서만 내용을 넣거나 수정할 것을 권장한다. 명령모드에서 vi를 종료하기 위해서는 ZZ 또는 :키를 눌러 명령행:을 활성화한다. 여기서 q(저장 없이 종료) 또는 wq(저장하고 종료) 등을 사용할 수 있다.

종료 예 편집

  • 저장 후 종료
> :wq
  • 종료
> :q

Vi의 여러 가지 명령어 편집

vi 편집기는 입력, 명령, 비주얼 등의 모드가 있어 같은 키 입력이라도 현재 모드에 따라 다른 동작을 한다. 입력과 명령모드를 주로 왔다갔다 하면서 편집하게 된다. 입력모드에서는 말 그대로 입력하는 문자가 그대로 문서에 입력된다. 입력상태에서 Esc 키를 누르면 명령모드로 바뀌게 된다. 명령어 모드에서는 AltCtrl 키 등을 사용하지 않고도 키를 두드려서 커서의 움직임이나 복사하기, 종료 등의 기능을 수행할 수 있다. 예를 들면 J는 커서를 아래로, K는 위로 움직이게 하며, I는 입력상태로 들어가게 한다. 명령어 모드에서 V 키를 누른 후 Ctrl 방향키 등을 누르면 선택영역반전 기능이 순간 활성화되어 영역 선택을 설정할 수 있게 된다. vi 실행 초기의 모드는 명령모드이기 때문에 vi를 처음 사용하는 사용자들은 아무리 키를 눌러도 누른 키가 입력이 되지 않아 당황하는 경우가 많다.

기종별 다양한 Vi 편집

물론 Vi는 유닉스에서 발전하였고 조금 더 개량한 vi 복제품들이 나와서 그 명성을 이어가고 있다. 또한 다음과 같이 다양한 컴퓨터에 포팅되어 있다.

 
Vim

유닉스용 vi 복제품(clone) 편집

Vim은 "Vi IMproved"의 약자로 만든 이름이며 현재 vi보다 더 많이 사용되고 있다. 이 프로그램은 vi보다 더 다양한 기능(구문 강조 기능(또한 이 기능을 작성하는 기능), 마우스 지원, 그래픽 버전, 시각 모드, 수많은 새로운 편집 명령어들을 가지고 있다. 현재 대부분의 리눅스 시스템에서는 이 프로그램이 표준 모델로 들어가고 있다.

Mac용 vim 편집

vi에 대한 다양한 평가 및 vi의 영향력 편집

  • emacs 애용자들은 vi를 vicious interface라고 한다.
  • Snap.com 은 vi 인터페이스를 사용하는 인터넷 검색 엔진을 개발했다. visearch.com 웹페이지 Archived 2007년 2월 2일 - 웨이백 머신

같이 보기 편집

외부 링크 편집