vi 편집기 모드는 3가지로 분류 될 수 있다.
command mode
: 수정 모드 진입 전 여러가지 명령을 할 수 있는 모드edit mode (insert mode)
: 에디터 수정 모드extend mode (last line mode)
: 커맨드 모드에서 :로 시작하는 모드. 파일 내용의 replace 등을 할 수 있는 모드command
=> edit
i
: 커서 앞a
: 커서 뒤o
: 커서 아래 라인에I
: 라인에 앞A
:라인에 뒤O
:커서 위에R
: windows 에서의 => insert 키와 같음. (덮어쓰기)r
:캐릭터 하나만 수정cc or S
:라인 자체를 삭제하면서 edit mode 돌입cw
:한 단어 삭제하고 edit mode 돌입s
:한 단어 삭제 후 edit mode 돌입h
:왼쪽 이동
j
:아래 이동
k
:위 이동
l
:오른쪽 이동 라인 뒷방향으로 이동
^
:라인에 맨 앞에
$
:라인에 맨 뒤에
H
:화면에 처음 라인
L
:화면에 마지막 라인
gg
or 1G
: 문서의 처음
G
: 문서의 마지막 라인
num G
: number 라인
dd
:라인 삭제
dw
:단어 삭제
d^
:커서 앞에서 라인 처음까지 삭제
d$
:커서 포함 라인 뒤까지 삭제
U
:라인에 수정한 것으로 원복하고 싶을때
u
:했던 작업 되돌리기
ctrl+r
: 작업 재실행
yy
:라인 복사
yw
:단어 복사
y^
:커서 앞에 부터 라인 앞까지 복사
y$
:커서 포함 라인 뒤까지 복사
P
:라인 복사시에는 커서의 윗라인에 붙여넣기 , 라인이 바뀌지 않는 복사시에 커서의 앞에 붙여넣기
p
:라인 복사시에는 커서의 아래에 붙여넣기, 라인이 바뀌지 않는 복사시에 커서의 뒤에 붙여넣기
:q
= 수정을 안했을시에 종료
:q!
= 수정을 저장을 안하고 종료
:w
= 저장하기
:wq
= 저장하고 종료
:x
= 저장하고 종료
:set nu
or set number
= 라인 앞에 숫자 붙이기
:set nonu
= 숫자 붙이기 취소
:n,m d
= n 라인부터 m 라인까지 삭제
:n,m co l
= n 라인부터 m 라인까지 복사 해서 l 라인 아래에 붙이기
:n,m m l
= n 라인부터 m 라인까지 잘라내서 l 라인 아래로 이동
:% s/A/B/g
= 문서 전체에서 A를 B로 바꾸기
:SP,EP s/A/B/g
= SP 라인부터 EP라인까지 A를 B로 바꾸기