What is vi?
- Unix 계열에서 사용되는 text 편집기
- 최근의 Redhat 계열 Linux에서는 vim을 vi로 alias 처리(vim 패키지 미설치시 미적용)
- UNIX와 Linux의 Terminal CLI 환경에서는 가장 기본적인 편집기이기 때문에 기본적인 사용키 정도는 익혀두는 것이 좋습니다.
3 modes of vi
- Command Mode(명령) : esc 입력 상태, 기본값
- Insert Mode(입력) : 편집 상태
- Last Line Mode(명령) : Command Mode상 : “shift + ;” 입력 상태, 파일 또는 vi 상태 제어
Commande Mode Control
Input | Function |
h | 왼쪽 이동 |
j | 위로 이동 |
k | 아래로 이동 |
l | 오른쪽 이동 |
^ or 0 | 행의 가장 처음으로 이동 |
$ | 행의 가장 끝으로 이동 |
gg | 제일 첫 행으로 이동 |
G | 제일 끝 행으로 이동 |
b | 왼쪽 특수문자 혹은 한단어의 처음으로 이동 |
B | 왼쪽 한단어의 처음으로 이동 |
x | 현재 커서 위치 삭제 |
X | 현재 커서가 위치한 앞 글자 삭제 |
dw | 현재 커서 위치 한단어 삭제 |
d$ | 현재 커서 위치 행 삭제 |
dd | 현재 커서부터 마지막 행까지 삭제 |
CTRL+b | 한페이지 위로 이동 |
CTRL+f | 한 페이지 아래로 이동 |
숫자+G | 해당 숫자의 행으로 이동 |
w | 오른쪽 특수문자 혹은 한단어의 처음으로 이동 |
W | 오른쪽 한단어의 처음으로 이동 |
i | 현재 커서 앞쪽에 입력 |
I | 현재 커서 행의 맨 앞에서 입력 |
a | 현재 커서 뒤쪽에 입력 |
A | 현재 커서 행의 마지막에 입력 |
o | 현재 커서 행의 아래 줄에 입력 |
O | 현재 커서 행의 위쪽 줄에 입력현재 커서 행의 위쪽 줄에 입력 |
s | 현재 커서의 한 글자를 지우고 입력 |
S | 현재 커서의 행을 지우고 입력 |
r | 현재 커서의 한 글자를 교체 |
cw | 현재 커서의 한 단어 교체 |
u | Undo(입력시 마다 이전 작업으로 이동) |
숫자+yy | 현재 커서부터 숫자만큼의 행을 복사(1은 생략 가능) |
yw | 현재 커서의 한 단어 복사 |
Y$ | 현재 커서부터 마지막 행까지 복사 |
숫자+p | 복사한 내용을 현재 커서 다음에 붙여넣기(숫자 횟수 만큼) |
숫자+P | 복사한 내용을 현재 커서 전에 붙여넣기(숫자 횟수 만큼) |
/ | 커서의 위치에서 아래로 검색 |
? | 커서의 위치에서 위로 검색 |
n | 검색 결과에서 아래 행 이동 |
N | 검색 결과에서 위 행 이동 |
모든 제어는 커서의 위치 기준
Insert Mode Control
- i, a등의 Command Mode 제어키를 통해 입력 모드로 전환
- 문서의 작성 또는 편집이 가능한 상태
Last Line Mode Control
Input | Function |
:s/찾는문자열/치환문자열 | 현재 커서 행에서 검색, 치환 |
:1,10s/찾는문자열/치환문자열 | 1행에서 10행까지 검색, 치환 |
:%s/찾는문자열/치환문자열 | 전체 행에서 검색, 치환 |
\+/ | 특수문자를 검색하려면 해석방지를 위해 그 앞에 \를입력 |
:nohl | 검색등을 통해 하이라이트(Highlight)처리된 블럭을 해제 |
:set number | 행 번호 표시 |
:set nonumber | 행 번호 표시 취소 |
:set autoindent | 들여쓰기 설정 |
:set noautoindent | 들여쓰기 제거 |
:set list | 문단,조판부호 보기 |
:set nolist | 문단,조판부호 안보이게 |
:set ignorecase | 검색시 대소문자 구별 제거 |
:set noignorecase | 검색시 대소문자 구별 |
:set window=30 | 한 화면당 행의 갯수 30개로 지정 |
:set all | 현재 설정된 vi 모든 설정값 보기 |
:q | 저장하지 않고 vi 종료 |
:q! | 읽기전용인 파일을 수정후 강제로 저장할때 |
:w | 현재내용을 저장 |
:w! | 읽기전용인 파일을 수정후 강제로 저장할때 |
:wq | 저장하고 종료 |
:wq! | 읽기전용인 파일을 수정후 강제로 저장하고 종료하기 |
:w “filename” | 새로운 파일명으로 저장 |
모든 제어는 커서의 위치 기준
IT Infomation, Ultima Online