vi는 리눅스를 비롯한 유닉스 계열 운영체제에서 많이 사용되는 텍스트 파일 편집 프로그램입니다.

‘#which vi’ 이라 명령어를 입력하면 vim 프로그램의 위치를 나타냅니다.
보통 vi 편집기는 alias 되어 있어 vi 명령어만 입력하면 텍스트 파일을 열어 편집할 수 있습니다.
vi 은 3가지 상태 모드가 있습니다.

  1. 명령 상태
    명령어를 입력하는 상태입니다. 내용을 검색하거나 이동할 때 사용하는 명령어 입력 상태입니다.
  2. 입력 상태
    텍스트 파일의 내용을 입력할 수 있는 상태입니다. 텍스트 파일을 수정할 수 있는 상태입니다.
  3. ex 상태
    파일 관련 처리 명령에 사용되며 명령 상태에서 ‘:’ 문자를 입력하면 ex 상태가 됩니다.

명령 상태는 vi 편집기를 실행하면 명령 상태로 실행됩니다. 어떤 상태이든 esc 버튼을 누르면 명령 상태로 돌아갑니다. 아래의 화면은 명령 상태로 vi 편집기가 실행된 화면입니다.

명령 상태의 키는 다음과 같습니다.

h,j,k,l : 왼쪽,아래쪽, 위쪽, 오른족으로 한 칸씩 이동합니다.
$ : 그 줄의 가장 마지막으로 이동합니다.
^ : 그 줄의 가장 처음으로 이동합니다.
H : 화면의 가장 위로 이동합니다.
L : 화면에 가장 아래로 이동합니다.
gg : 파일의 가장 처음으로 이동합니다.
G : 파일의 가장 마지막으로 이동합니다.
} : 다음 단락으로 이동합니다.
{ : 이전 단락으로 이동합니다.
:n : n 번째 줄로 이동합니다.  

명령 상태에서 텍스트 파일의 커서가 위치하는 곳에 텍스트 파일을 수정하기 위해서는 입력상태로 변경해야 합니다. 이 때 사용하는 키는 다음과 같습니다.

  • 입력 명령
i : 현재 커서가 위치한 곳부터 글자를 입력합니다.
I : 현재 작업 줄의 가장 처음에 글자를 입력합니다.
a: 현재 커서가 위치한 다음 칸부터 글자를 입력합니다.
A : 현재 작업 줄의 가장 마지막에 글자를 입력합니다.
  • 삭제 명령
x : 현재 커서가 위치한 곳에 글자 삭제
dw : 한 단어를 삭제
dd : 줄 전체를 삭제
d$ : 현재 커서가 위치한 곳부터 그 줄의 가장 마지막까지 삭제

  • 복제 및 붙이기 명령
yy : 현재 줄 전체를 메모리에 저장해 둡니다.
y0 : 현재 커서가 위치한 곳부터 그 줄의 가장 처음까지 메모리에 저장합니다.
y$ : 현재 커서가 위치한 곳부터 그 줄의 가장 마지막까지 메모리에 저장합니다.
p : 현재 커서가 위치한 곳에서 메모리의 내용을 붙여 넣습니다.
P : 현재 커서가 위치한 바로 다음 칸에 메모리의 내용을 붙여넣습니다.

참고로 v 키를 누른 후 이동 명령으로 커서를 이동하면 선택된 블록 영역이 반전된 색깔로 표시되며 영역이 선택됩니다.

dd 삭제 명령과 i G, gg 정도만 알면, 어느정도 vi 편집하는데 불편함은 업습니다.