vi 편집기 실행
vi test
vi 편집기의 구조
vi 편집기는 명령모드, 입력모드, 마지막 행 모드로 총 3가지 모드로
구성됨
1. 명령 모드(command mode)
vi를 실행시키면 가장 먼저 접하는 기본 모드. 명령 모드에서는 방향키로
이동할 수 있으며, 입력 모드 혹은 마지막 행 모드로 전환이 가능하다.
2. 입력 모드(insert mode)
편집 모드라고도 불리며, 명령 모드에서 "i" , "a" ,
"o" 명령어를 통해 입력 모드로 전환 가능하다. 입력 모드에서는
자유롭게 코드나 글을 작성 할 수 있으며, "ESC"키를 입력하여
명령 모드로 다시 전환된다.
3. 마지막 행 모드(Last line mode)
명령 모드에서 ":"키를 입력하여 화면 맨 아랫줄에서 명령을
수행하는 모드. 작성한 내용을 저장하고 vi를 종료할지, 그냥 vi를
종료할지 등의 명령을 입력할 수 있다
vi 명령어 정리
파일 저장 및 종료
모드 |
명령키 |
설명 |
마지막 행 모드
|
:q |
vi에서 작업한것이 없을때 vi 종료 |
마지막 행 모드
|
:q! |
작업한 내용을 저장하지 않고 종료 |
마지막 행 모드
|
:w [파일명] |
작업한 내용을 저장만 한다. 파일명을 지정하면 새 파일로 저장
|
마지막 행 모드
|
:wq, :wq! |
작업한 내용을 저장하고 vi를 종료 |
명령 모드
|
ZZ |
작업한 내용을 저장하고 vi를 종료 |
내용을 편집한 후 vi를 종료하려면 명령모드나 마지막 행 모드에서 명령을
입력해야 합니다. 마지막 행 모드로 가려면 : 을 누르면 됩니다.
입력모드로 전환
명령키 |
설명 |
i
|
현재 커서 앞에 입력 |
a
|
현재 커서 뒤에 입력 |
o
|
커서가 위치한 행의 다음 행에 입력 |
I (대문자 i)
|
커서가 위치한 행의 첫 컬럼으로 이동하여 입력
|
A
|
커서가 위치한 행의 마지막 컬럼으로 이동하여 입력
|
O
|
커서가 위치한 행의 이전 행에 입력 |
vi 편집기에서 내용을 입력하려면 입력모드로 전환해야 합니다.
커서 이동
명령키 |
설명 |
k
|
커서를 위로 이동 |
j
|
커서를 아래로 이동 |
h
|
커서를 왼쪽으로 이동 |
l
|
커서를 오른쪽으로 이동 |
w
|
커서를 다음 단어의 첫 글자로 이동 |
^ / O
|
커서를 현재 행의 처음으로 이동 |
$
|
커서를 현재 행의 마지막으로 이동 |
G
|
파일의 마지막 행으로 커서를 이동 |
gg
|
파일의 첫 행으로 커서를 이동 |
행번호G
|
지정한 행 번호로 커서를 이동 |
H
|
커서를 화면의 맨 윗행으로 이동 |
M
|
커서를 화면의 중간 행으로 이동 |
L
|
커서를 화면의 맨 아랫행으로 이동 |
B
|
Page Up |
F
|
Page Down |
숫자%
|
입력한 숫자 퍼센트에 해당하는 줄로 커서를 이동
|
vi에서는 마우스로 커서를 이동할 수 없고 오로지 키보드로만 커서를
이동할 수 있습니다.
화면 이동
명령키 |
설명 |
Ctrl + u
|
화면의 절반 만큼 위로 이동 |
Ctrl +ㅇ
|
화면의 절반 만큼 아래로 이동 |
Ctrl + b / Page Up
|
한화면 위로 이동 |
Ctrl + f / Page Down
|
한화면 아래로 이동 |
Ctrl + y
|
화면을 한 행 위로 이동 |
Ctrl + e
|
화면을 한 행 아래로 이동 |
내용 수정
명령키 |
설명 |
r
|
커서가 위치한 글자를 다른 글자로 수정 |
cc
|
커서가 위치한 행의 내용을 모두 수정 |
C
|
커서 위치로부터 행의 끝까지 수정 |
cw, [수정할 단어 수]cw
|
- 커서위치에서부터 현재 단어의 끝까지 수정 - 숫자cw는 커서
위치로부터 지정한 숫자의 단어 만큼 수정
|
s, [수정할 글자 수]s
|
- 커서 위치로부터 ESC키를 입력할때까지 수정 - 숫자s는 커서
위치로부터 지정한 숫자만의 글자를 수정
|
내용 삭제
명령키 |
설명 |
x, [삭제할 글자 수]x
|
- 커서가 위치한 글자를 삭제 - x앞에 삭제할 글자수를 지정 가능
|
dw, [삭제할 단어 수]dw
|
- 커서가 위치한 단어를 삭제. - dw앞에 삭제할 단어수를 지정
가능
|
dd, [삭제할 행 수]dd
|
- 커서가 위치한 행을 삭제. - dd앞에 삭제할 행의수를 지정 가능
|
D
|
커서 위치로부터 행의 끝까지 삭제 |
명령 취소
명령키 |
설명 |
u
|
명령을 취소 |
U
|
해당 행에서 한 모든 명령을 취소 |
:e!
|
마지막으로 저장한 내용 이후의 것을 모두 취소
|
윈도우에서의 Ctrl +Z와 비슷한 기능이라고 생각하시면 됩니다.
범위 지정
명령키 |
설명 |
1, $, %
|
1행부터 마지막 행까지 범위를 지정 |
1,.
|
1행부터 커서가 있는 행까지 지정 |
.,$
|
커서가 있는 행부터 마지막 행까지 지정 |
.,.+2
|
현재 행과 두번째 아랫행까지 지정 |
10,20
|
10행부터 20행까지 지정 |
윈도우에서는 마우스를 드래그하면 범위를 지정할 수 있지만 vi에서는 위의
명령키를 입력하여 범위를 지정하여야 합니다.
내용 복사하기 / 잘라내기 / 붙이기
명령키 |
설명 |
yy, [복사할 행 수]yy
|
- 커서가 위치한 행을 복사 - yy앞에 복사할 행의 수를 지정 가능
|
dd, [잘라내기할 행 수]dd
|
- 커서가 위치한 행을 잘라내기 - 삭제와 같은 명령어입니다.
dd앞에 잘라내기할 행 숫자를 입력 가능
|
p
|
커서가 위치한 행의 아래쪽에 붙여넣기 |
P
|
커서가 위치한 행의 위쪽에 붙여넣기 |
내용 검색
명령키 |
설명 |
/문자열
|
문자열을 커서 아래 방향으로 검색 |
?문자열
|
문자열을 커서 위 방향으로 검색 |
n
|
원래 방향으로 다음 문자열을 검색 |
N
|
반대 방향으로 다음 문자열을 검색 |
윈도우에서는 마우스를 드래그하면 범위를 지정할 수 있지만 vi에서는 위의
명령키를 입력하여 범위를 지정하여야 합니다.
내용 치환
명령키 |
설명 |
:s/[대상문자열]/[바꿀문자열]
|
커서가 위치한 행에서 첫번째로 나오는 대상문자열을 바꿀문자열로
바꿉니다.
|
:%s[대상문자열]/[바꿀문자열]
|
파일 전체에서 모든 대상문자열을 바꿀문자열로 바꿉니다.
|
:[범위]s[대상문자열]/[바꿀문자열]
|
범위 내 모든 각 행에서 첫번쨰로 나오는 대상문자열을
바꿀문자열로 바꿉니다.
|
:[범위]s[대상문자열]/[바꿀문자열]g
|
범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꿉니다.
|
:[범위]s[대상문자열]/[바꿀문자열]gc
|
범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꾸되 수정할 지
여부를 묻습니다.
|
문자열을 바꿀 수도 있습니다. 마지막 행모드로 전환을 해야만 사용이
가능합니다.
안녕하세요 공부하려고 찾다가 좋은 글 읽었네요!
그림이 이해가 잘되게 해두셔서 블로그에 좀 두고 보려고 합니다
혹 허용하지 않으시면 내리겠습니다
잘 보고 갑니다!