vi 편집기는?
UNIX 시스템이 기본적으로 제공하는 편집기(Editer)가 vi editer이다. 그래서 UNIX 시스템을 사용하는 사람은 누구나 기본적으로 알고 있어야 할 편집기가 바로 vi편집기인 것이다. vi 편집기는 우리가 상상하는 이상의 큰 파일도 쉽게 불러와 편집할 수 있다. 처음 사용하는 사람은 약간 어려운 점도 있지만 기능이 그리 복잡하지 않으므로 여러번 사용하다보면 쉽게 익힐 수 있을 것이다.
vi 편집기의 시작
프롬프트 상태에서 'vi'를 입력한다. 그러면 Editer가 화면에 나타나고 각 라인의 첫 번째 문자가 틸드(∼)로 표시되어 있다. 커서는 좌측 상단에 위치하고 있으며 이때는 명령모드 상태이다. 명령모드에서 편집모드로의 전환은 i, I, a, A, o, O 이며, 편집모드에서 명령모드로의 전환은 Esc Key이다. 명령모드에서 콜론(:)을 입력하면 커서가 화면 좌측 하단으로 이동하고 첫 번째 문자가 콜론(:)이 된다.
vi 시작 명령어
명 령 어 |
작 업 설 명 |
vi vi filename vi +15 filename vi +/'문자열' filename vi -r filename view filename |
vi 편집기 열기 파일열기, 새 파일 작성 파일을 열면서 커서가 15라인으로 위치 파일을 열면서 커서가 '문자열'의 처음발생 위치 손상된 파일 회복 읽기 전용으로 파일 열기 |
편집 모드로 전환
명 령 어 |
작 업 설 명 |
a A i I o O |
커서 오른쪽에 문자 삽입 커서 오른쪽 행의 끝에 문자 삽입 커서 왼쪽에 문자 삽입 커서 왼쪽 행의 처음에 문자 삽입 커서 아래에 행 삽입 커서 위에 행 삽입 |
Esc |
편집모드 상태에서 명령모드 상태로 전환 |
커서 이동 명령어
명 령 어 |
작 업 설 명 |
h(←) j(↓) k(↑) l(→) |
왼쪽으로 커서 한칸 이동 아래로 커서 한칸 이동 위로 커서 한칸 이동 오른쪽으로 커서 한칸 이동 |
w e b Enter Backspace Space Bar ^ $ H M L '숫자'G |
오른쪽 한 단어의 끝 부분으로 커서 이동 오른쪽 한 단어의 앞부분으로 커서 이동 왼쪽 한 단어의 앞부분으로 커서 이동 한 행 아래로 커서 이동 한 문자 왼쪽으로 커서 이동 한 문자 오른쪽으로 커서 이동 행의 맨 왼쪽으로 커서 이동 행의 맨 오른쪽으로 커서 이동 화면의 맨 위로 커서 이동 화면의 중간으로 커서 이동 화면의 맨 아래로 커서 이동 '숫자'만큼 지정한 줄로 커서 이동 |
Ctrl-F Ctrl-B Ctrl-D Ctrl-U Ctrl-E Ctrl-Y |
한 화면 위로 커서 이동 한 화면 아래로 커서 이동 반 화면 위로 커서 이동 반 화면 아래로 커서 이동 한 줄 위로 커서 이동 한 줄 아래로 커서 이동 |
텍스트 변경 명령어
명 령 어 |
작 업 설 명 |
cw (종료:Esc) 3cw (종료:Esc) cc (종료:Esc) 5cc (종료:Esc) C (종료:Esc) s (종료:Esc) S (종료:Esc) r r-Enter J xp ~ u U :u . |
한 단어 변경 3단어 변경 한 행 변경 5행 변경 커서 오른쪽의 행 변경 커서가 위치한 문자열 대체 커서가 위치한 라인의 문자열 대체 커서가 위치한 문자를 다른 문자로 대체 행 분리 현재 행과 아래 행 결합 커서의 위치 문자와 오른쪽 문자 교환 문자형(대.소문자) 변경 이전 명령 취소 행 변경 사항 취소 이전의 최종 행 취소 이전의 최종 명령 반복 |
텍스트 삭제 명령어
명 령 어 |
작 업 설 명 |
x 5x dw dd d$ (d0) 5dd db D :5,10d |
커서가 있는 문자 삭제 커서가 있는 위치부터 5개의 문자를 삭제 현재 커서가 있는 한 단어 삭제 커서가 있는 라인 삭제 라인의 마지막(처음)까지 삭제 커서가 있는 라인부터 5개의 라인 삭제 커서의 위치에서 거꾸로 한 단어 삭제 커서 오른쪽 행 삭제 5-10번째 행 삭제 |
복사 및 이동 명령어
명 령 어 |
작 업 설 명 |
yy Y p P :1,2 co 3 :4,5 m 6 |
행 yank 또는 복사 행 yank 또는 복사 yank되거나 삭제된 행 현재 행 위에 삽입 yank되거나 삭제된 행 현재 행 아래에 삽입 1-2행을 3행 다음으로 복사 4-5행을 6행 위로 이동 |
행 번호 설정 명령어
명 령 어 |
작 업 설 명 |
:set nu :set nonu |
행 번호 표시 행 번호 숨기기 |
행 찾기 명령어
명 령 어 |
작 업 설 명 |
G 21G Ctrl-G |
파일의 마지막 행으로 가기 파일의 21번째 행으로 가기 현재의 filename과 line수를 알려줌 |
탐색 및 명령어
명 령 어 |
작 업 설 명 |
/검색할 문자열 ?검색할 문자열 n N :g/abc/s//def/g :1,$s/abc/def :s/abc/def/g :g/^M/s/// :.$/abc/def/ |
오른쪽 아래 방향으로 문자열 검색 왼쪽 위 방향으로 문자열 검색 문자열의 다음으로 계속 검색 문자열의 이전으로 계속 검색 파일의 모든 문자열 abc를 def로 치환 첫째 라인부터 마지막 라인까지 문자열 abc를 def로 치환 현재라인의 모든 문자열 abc를 def로 치환 파일의 모든 문자열 ^M을 없앤다(^M:Ctrl-V+Ctrl-M) 커서의 위치부터 파일의 끝까지 문자열 abc를 def로 치환 |
화면 정리 명령어
명 령 어 |
작 업 설 명 |
Ctrl-L |
불필요한 화면 정리 후 다시 표시. (편집중에 다른 사람이 메시지를 보내면 편집기 화면에 그대로 표시된다. 이때 Ctrl-L을 해주면 메시지 내용을 없애고 편집하던 상태의 이전 화면이 된다.) |
파일 명령어
명 령 어 |
작 업 설 명 |
:r filename :10 r filename |
커서 다음에 해당 파일 삽입 파일을 10번째 행 다음에 삽입 |
보관 및 종료 명령어
명 령 어 |
작 업 설 명 |
:w :w filename :wq ZZ :q! :q :e! |
변경사항 보관 filename 으로 저장 변경사항 저장후 종료 변경사항 저장후 종료 변경사항 저장하지 않고 종료 vi 편집기 종료(변경사항이 없어야 종료됨) 수정한 것을 무시하고 다시 편집상태로 |
:!명령어 |
해당 명령어 수행(vi를 종료하지 않고 명령어 수행) |