vi 명령어를 통해 vi를 시작할 경우 실행되는 모드, 방향키를 통해 커서를 이동할 수 있다
명령 모드에서 i
또는 a
키를 눌러 입력 모드로 넘어갈 수 있다. 자유롭게 코드나 글을 작성할 수 있으며 명령 모드로 돌아갈 때에는 esc
를 누르면 된다
i
: 커서가 현재 위치한 부분에서부터 시작
a
: 커서 바로 다음 부분부터 시작
shift+spacebar
: 영/한 반환
명령 보드에서 :
을 입력하면 화면 맨 아랫줄에 입력 가능한 공간이 출력된다. 여기서 vi를 종료
vi 파일명 // 파일열기, 작성 ex) vi test.txt
vi 행번호 파일명 // 파일을 열고, 입력한 행으로 커서 이동 ex) vi -100 test.txt
vi /"검색 문자열" 파일명 // "문자열"의 처음발생 단어부터 열기 ex) vi -/"abc" test.txt
vi -r 파일명 // 손상된 파일 회복 ex) vi -r test.txt
view 파일명 // 읽기 전용으로 열기 ex) view test.txt
명령 모드에서 입력 모드로 전환
i
: 커서 앞(왼쪽)에 입력
a
: 커서 다음(오른쪽)에 입력
입력 모드에서 명령 모드로 전환
ESC
h, j, k, l
: 좌,하,상,우 커서 이동 (방향 키가 없는 키보드에서 사용)w
: 다음 단어의 첫 글자로 이동b
: 이전 단어의 첫 글자로 이동G
: 마지막 행으로 가기:숫자
: 지정한 숫자 행으로 이동 ex) :5삭제
x
: 커서에 있는 글자 삭제
X
: 커서 앞에 있는 글자 삭제
dw
: 커서를 기준으로 뒤에 있는 단어 글자 삭제 (커서 포함)
db
: 커서를 기준으로 앞에 있는 단어 글자 삭제
dd
: 커서가 있는 라인(줄) 삭제
- dw, db, dd 명령 앞에 삭제할 숫자를 지정 가능 ex) 3dw, 2db, 4dd
- 삭제 된 내용은 버퍼에 저장되어 붙여넣기가 가능
복사
복사
yw
: 커서를 기준으로 뒤에 있는 단어 글자 복사 (커서 포함)
yb
: 커서를 기준으로 앞에 있는 단어 글자 복사
yy
: 커서가 있는 라인(줄) 복사
- yw, yb, yy 명령 앞에 복사할 숫자를 지정 가능 ex) 3yw, 2yb, 4yy
붙여넣기 (복사, 삭제된 내용을 붙여넣는다.)
붙여넣기
p
: 커서 다음에 붙여넣기
P
: 커서 이전에 붙여넣기
찾기
/문자열
: 앞에서 부터 문자열을 찾는다.
?문자열
: 뒤에서 부터 문자열을 찾는다.
n
: 뒤로 검색
N
: 앞으로 검색
바꾸기
저장, 종료하기
명령 모드에서 콜론:을 이용하여 다양한 작업이 가능하다. (콜론 모드)
:q
종료
:q!
저장하지 않고 강제로 종료
:w
저장
:wq
저장 후 종료
ZZ
저장 후 종료 (:wq와 동일)
:wq
파일 이름: 저장 후 파일 이름 지정
- vi 에디터에서는 비정상 종료 시 .swp 파일이 생성된다. 필요하지 않은 경우 삭제한다.
커서 이동
바꾸기
:%s/old/new
: 각 행의 처음 나오는 old를 찾아 new로 바꾼다.
:%s/old/new/g
: 모든 old를 찾아 new로 바꾼다.
:%s/old/new/gc
: 모든 old를 찾아 new로 바꾸기 전에 물어본다.
되돌리기(Undo), 다시실행(Redo)
u
: 이전으로 되돌리기 (Undo)
Ctrl + r
: 되돌리기한 것을 다시 실행 (Redo)
자주 사용하는 기능들
:set number
: 행번호를 출력 (간단하게 :set nu
)
:set nonumber
: 행번호를 숨긴다. (간단하게 :set nonu
)
:cd
: 현재 디렉토리를 출력