270 likes | 353 Views
Vi 편집기. Vi 편집기. vi 는 visual editor 의 약자로 유닉스의 표준 편집기 ex 라는 라인 editor 를 바탕으로 만들어진 full 스크린 편집기 보통 한 화면에 나타낼 수 있는 데이터 수는 80 문자의 23 줄 정도를 나타낼 수 있으며 어떤 유형의 unix 단말기에도 사용 가능 어느 유닉스 시스템에나 존재 . Vi 편집기.
E N D
Vi 편집기 • vi는 visual editor의 약자로 유닉스의 표준 편집기 • ex라는 라인 editor를 바탕으로 만들어진 full 스크린 편집기 • 보통 한 화면에 나타낼 수 있는 데이터 수는 80문자의 23줄 정도를 나타낼 수 있으며 어떤 유형의 unix 단말기에도 사용 가능 • 어느 유닉스 시스템에나 존재.
Vi 편집기 • UNIX 시스템에서 사용되는 모든 편집기들은 파일 속에서 데이터를 추가, 수정, 삭제 등을 할 때 본래의 데이터를 보존할 목적으로 디스크에 있는 파일 내용을 임시적으로Buffer라는 임시 기억장소에 복사하여 작업 • 버퍼에 복사하여 파일 내용들을 버퍼 속에서 수정, 삭제,추가 등을 한 후 이를 다시 디스크에 저장 • 만약 파일 내용을 잘못 수정했거나 파일 편집 작업이 중단된 경우 버퍼의 내용만 무시하게 되면 디스크에 존재하는 기존의 파일 내용을 보존가능
Vi 편집기 Disk 버퍼내의 파일내용 저장 후 편집기에서 빠져 나옴 Buffer 파일 편집을 위해서 편집기를 부름 disk와 buffer의 관계
Vi 편집기 • 유닉스상에서 일반적으로 사용되는 문서 편집기 • 프로그램이나 문서의 작성에 사용 • 명령모드(command mode) • 각 키입력이 명령으로 작용 • 입력모드(input mode) • 문서를 작성하거나 수정하는 작업 • 모드간의 전환 • Escape키로 모드를 전환
Vi filename Shell Command Mode a / i Input Mode :q :wq :q! ESC 명령모드/입력모드
$ vi myfile 명령모드->입력모드로 a 입력 Vi 맛보기
문서내용 작성 입력모드->명령모드 저장 :wq! Vi 맛보기
Vi 편집기 부르기 • Vi • 파일이름 지정 없이 시작, 저장할 때 파일이름 지정 • Vi { file1 } • 지정한 파일이름(file1)으로 시작 • Vi file1 file2 …. • 복수개의 파일을 동시에 열 때 사용 • :n 파일을 저장하고 다음 파일을 편집 단 파일이 저장되지 않았으면 실행 안됨. • :n! 현재 파일을 저장하지 않고 다음 파일을 편집
Vi 편집기 부르기 • 파일을 열때 사용할 수 있는 옵션들 • +[n]파일을 열 때 특정 줄을 중심으로 화면에 출력([n]생략가능) • +옵션은 사용자가 긴 파일에서 마지막부분을 참고 할 때 사용 예: vi + lucky.txt 파일의 마지막에 커서위치 vi +10 lucky.txt 파일의 10째 줄에 커서 위치
Vi 편집기 부르기 • 파일을 열 때 사용할 수 있는 옵션들 • -c먼저 지정한 명령어(데이터 검색, 배치 등)를 수행한 후 vi 편집기 상태로 들어감 • Vi –c/forget/ lucky.txt 문서에서 forget이 위치한 1줄에 커서 위치시킨 다음 문서를 연다. • -R특정파일을 실수로 쓰기를 했을 때를 대비해서 읽기 전용으로 연다. View 명령어와 동일 • +/string string의 처음 줄에 커서 위치
Vi 편집기 부르기 • 파일을 편집중 사용할 수 있는 옵션들 • :e현재 버퍼(화면)에 있는 파일을 무시하고 사용자가 지정한 파일을 바로 염 • :sh일시적으로 vi상태를 벗어나서 unix 명령어를 실행함(vi 로 돌아 갈 때는 ctrl-D키를 누름) • :f 파일명vi로 연 파일을 사용자가 원하는 다른 파일명으로 바꿈 • :! command 잠시 shell 상태로 반전하여 명령 실행
새로운 텍스트의 삽입 • 입력 명령 모드 • a : 현재 커서 위치에서 오른쪽으로 데이터를 입력 • A : 현재 커서가 위치한 줄의 마지막에 데이터 입력 • i : 현재의 커서 위치 앞에, 즉 현재 커서의 왼쪽에 새로운 데이터를 첨가 • I : 현재 커서가 위치한 줄의 처음에 데이터 입력 • 파일 내에 새로운 줄 만들기 • o :커서가 위치한 현재 줄의 아래 줄을 생성 • O :커서가 위치한 현재 줄의 위에 새로운 줄을 생성
위로 한 줄 이동 (K) (H) ( J ) (L) 오른쪽으로 한 문자 이동 아래로 한 줄 이동 왼쪽으로 한 문자 이동 화면에서의 커서 이동 • 문자나 라인 단위의 커서 이동 • 방향키 • h, j, k, l • - : 이전 줄의 첫 문자로 이동 • Enter 또는 + : 다음 줄의 첫 문자로 이동
현재 화면에서 커서 이동 • H :현재 화면의 첫 줄 첫 칸으로 이동 • M :현재 화면의 중간 줄 첫 칸으로 이동 • L :현재 화면의 마지막 줄 첫 칸으로 이동 • 특정 줄의 커서 이동 • :n :n번째 줄로 커서 이동 • G :파일의 가장 마지막 줄로 커서를 이동 • 21G : 파일의 21번째 행으로 가기
w : 한 단어 다음으로 이동 • b : 한 단어 이전으로 이동 • e : 현재 단어의 끝자로 이동 • W :한 단어 다음으로 이동 • B : 한 단어 이전으로 이동 • E : 현재 단어의 끝자로 이동 • 소문자: 특수 문자도 하나의 단어로 인식 • 대문자: 특수 문자 무시, 공백으로 단어 인식
문서 내용 삭제하기 • 문자 삭제하기 • x : 파일 내용 중 커서가 위치한 부분의 한 문자를 삭제 • X : 커서가 위치한 앞부분의 한 문자를 삭제 • 단어 삭제하기 • dw : 현재 커서의 위치에서 오른쪽으로 한 단어 삭제 • db : 현재 커서의 위치에서 왼쪽으로 한 단어 삭제 • 즉, 커서가 있던 문자부터 그 단어의 끝까지 삭제 • 줄 삭제하기 • dd : 현재 커서가 위치한 줄 삭제 • D : 현재 커서가 위치한 곳에서 오른쪽의 내용을 삭제 • :5, 10 d : 5~10번째 행 삭제
문서내용 변경하기 • 문자 바꾸기 • r : 현재 커서가 위치한 문자 치환 • R : 현재 커서 위치에서 [ESC]키를 칠 때까지 문자 치환 • ~ : 문자형 변경(대,소문자) • 단어 바꾸기 • cw : 현재 커서 위치의 단어를 커서 위치부터 다른 단어로 치환 • 줄 바꾸기 • cc : 현재 커서가 위치한 줄을 다른 내용으로 치환 • C : 현재 커서의 위치부터 그 줄의 마지막까지 치환 • J : 현재 행과 아래 행 결합
문서내용 복사하기와 붙이기 • 문장의 복사와 이동 • yw : 현재 커서가 위치한 단어를 임시 버퍼에 복사 • yy: 현재 커서가 위치한 줄을 임시 버퍼에 복사 • nY: 현재 커서가 위치하는 줄부터 n 줄까지를 임시 버퍼에 저장 • p: 현재 커서의 오른쪽 또는 아래 줄 위치에 임시버퍼에 복사한 내용을 붙이기 • P: 현재 커서의 왼쪽 또는 위 줄 위치에 임시 버퍼에 복사한 내용을 붙이기 • :1,2 co 3 : 1~2행을 3행 다음으로 복사 • :1,2 m 3 : 1~2행을 3행 다음으로 이동
파일 저장과 불러오기 • 저장 • :w • :w 파일명 • :1, 10w 파일명 : 1~10라인까지의 내용을 파일로 보관
Vi 끝내기 • 저장 후 종료 • ZZ • :wq 또는 :wq 파일명 • 저장 없이 종료 • :q • :q!
다른 문서를 현재문서에 삽입 • :e filename • Filename 문서를 불러옴 • :r filename • Filename 문서를 현재 문서의 커서위치에 삽입 • :nr filename • Filename 문서를 n번 라인 뒤로 삽입
기타 유용한 vi 명령어 • :set nu • Vi 상태에 있는 파일에 줄 번호를 부여 • :set nonu • 파일에 있는 줄 번호를 취소 • :set showmode • 화면 하단에 입력 및 수정 모드를 표시 • :set noshowmode • 화면 하단에 입력 및 수정 모드를 표시하지 않음
기타 유용한 vi 명령어 • :set list • Tab 또는 라인의 끝과 같이 보이지 않는 문자를 $로 표시 • :set nolist • Set list 해제 • /string/ string 탐색 • ?string? 역방향 탐색 n 계속 탐색 • :1, . s/str/rep/ 1부터 현재 행의 str을 rep로 대체 • :%s/str/rep/g 파일 전체 str을 rep로 전부 대체