1 / 15

Vi 세미나

Vi 세미나. leesumi@sparcs.kaist.ac.kr. Contents. 시작 , 종료 , 저장 시작 저장 , 종료 환경설정 이동 , 검색 <range>, 검색 , 치환 , 커서이동 편집버퍼를 통한 이동 쉘명령 실행 편집 삽입 , 치환 , 삭제 , 복사와 이동 기타. 시작 , 저장 & 종료. < 시작 >. vi file vi 를 시작하여 지정한 파일 편집 vi -R file 읽기 전용 (read-only) 모드로 지정한 파일 편집

callia
Download Presentation

Vi 세미나

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vi세미나 leesumi@sparcs.kaist.ac.kr

  2. Contents • 시작, 종료, 저장 • 시작 • 저장, 종료 • 환경설정 • 이동, 검색 • <range>, 검색, 치환, 커서이동 • 편집버퍼를 통한 이동 • 쉘명령 실행 • 편집 • 삽입, 치환, 삭제, 복사와 이동 • 기타

  3. 시작, 저장&종료 <시작> • vi file vi를 시작하여 지정한 파일 편집 • vi -R file읽기 전용(read-only) 모드로 지정한 파일 편집 • view file읽기 전용(read-only) 모드로 지정한 파일 편집 • vi -r되살릴 수 있는 모든 파일 이름 보여 주기 • vi -r file vi를 시작하여 지정한 파일 되살리기 <저장&종료> • :f현재 편집하는 화일정보(& ^G) • :w 원래의 파일로 데이터를 저장 • :w file file 지정한 파일로 데이터를 저장 • :w >>file지정한 파일에 데이터를 추가 • :wq 데이터를 저장하고 종료 • :x저장 & 종료 (& ZZ) • :q!데이터를 저장하지 않고 종료

  4. 환경설정 <환경설정> • :set nu(mber)줄 번호 디스플레이(<-> :set nonu(mber)) • :set ai autoindent (<-> :set noai) • :set ts=8 tapstop - tab칸수를 8로 설정 • :set all모든 환경변수를 출력 • :cc현재 c화일을 컴파일 - 저장후에 사용할 것 <줄 번호> • nG 줄번호 n으로 건너뛰기 • 1G편집 버퍼의 첫 줄로 건너뛰기 • G편집 버퍼의 마지막 줄로 건너뛰기 • ma현재 커서위치를 mark a로 설정(a-z)

  5. 이동&치환 I - <range> < 줄 범위 표현 방법 <range> > • 'a mark a • $현재 문서의 끝 줄 • .현재 커서가 위치하는 줄 • 1,10 1-10번 줄 • %문서 전체 < 정규 표현식을 사용하기 위한 특수 기호 > • .뉴라인을 제외한 모든 단일 문자와 대응 • * 영 또는 그 이상의 선행 문자와 대응 • ^줄의 시작과 대응 (<-> $) • \<단어의 시작과 대응(<-> \<) • [ ]묶여진 문자중의 하나와 대응(<->[^]) • \ 이어지는 기호를 문자 그대로 해석

  6. 이동&치환 II - 패턴치환&검색 < 패턴 검색, 치환 > • /rexp 지정된 정규 표현식(rexp)에 대해 앞으로 이동 • /이전의 패턴에 대해 앞으로 검색을 반복 • ?rexp지정된 정규 표현식에 대해 뒤로 이동 • ?이전의 패턴에 대해 뒤로 검색을 반복 • n /나 ?명령에 대해 같은 방향으로 반복(<->N) • :s/rexp/to/현재 줄의 첫째 정규표현식을 찾아 to로 치환 • :10s/rexp/to/ 10번째 줄의 치환 • :1,2s/rexp/to/ 1-2줄의 치환 • :.,5 s/rexp/to/ 현재줄에서 5번째줄까지 치환 • :% s/rexp/to/g모든 줄의 모든 'rexp'을 치환 • :<range> s/rexp/to/g <range>범위에서 'rexp'를 모두 치환

  7. 이동&치환III - 커서이동 < 커서 이동 > • h<Left> , j<Down>, k<Up>, l<Right> • <Backspace> <-> <Space> • -커서를 이전 줄의 처음으로 이동(<-> + 다음줄) • 0커서를 현재 줄의 맨 앞으로 이동(<-> $ 맨끝으로) • w커서를 다음 단어의 첫 글자로 이동(=W문장부호무시) • e 커서를 다음 단어의 끝 글자로 이동(=E문장부호무시) • b커서를 이전 단어의 첫 글자로 이동(=B문장부호무시) • ( 다음 문장의 처음으로 이동(<-> ) ) • {다음 문단의 처음으로 이동(<-> } ) • H커서를 화면 맨 위로 이동, M커서를 중간으로 이동 • L커서를 맨 아래로 이동

  8. 이동&치환IV - 편집버퍼이용 < 편집 버퍼를 통한 이동 > • ^F한 화면 아래로 이동 <-> ^B한 화면 위로 이동 • n^F n화면 아래로 이동 • ^D반 화면 아래로 이동 <-> ^U반 화면 위로 이동 • ^Y한줄 위로 스크롤 <-> ^E한줄 아래로 스크롤 < 셸 명령 실행 > • :!command vi를 중단하고 지정한 셸 명령을 실행 • :!! vi를 중단하고 이전의 셸 명령을 실행 • :sh vi를 중단하고 셸을 실행 • :!csh vi를 중단하고 새로운 C-셸을 실행

  9. 편집 - 삽입 <화일을 읽어서 삽입> • :10r file file의 내용을 10번째 줄 다음 에 삽입 • :r file file의 내용을 현재의 줄 다음 에 삽입 • :10r !command command의 결과를 10번째 줄 다음에 삽입 • :r !command command의 결과를 현재의 줄 다음에 삽입 • :r !look pattern 지정한 pattern으로 시작된 단어 삽입 < 삽입 > • i 입력 모드로 전환, 커서 위치 앞에서 삽입 • I입력 모드로 전환, 현재 줄의 앞에 삽입 • a입력 모드로 전환, 커서 위치 뒤에서 삽입 • A입력 모드로 전환, 현재 줄의 끝에 삽입 • o 입력 모드로 전환, 현재 줄의 아래에 전개 • O입력 모드로 전환, 현재 줄의 위에 전개

  10. 편집 -치환 I < 내용 고치기> • J줄의 결합 • r 단지 한 글자만 변경(입력 모드로 바뀌 지 않음) • R입력하는 대로 겹쳐 써서 변경 • s 삽입에 의해 한 단어의 변경 • C커서의 위치로부터 줄 끝까지 삽입에 의한 변경 • cw한 단어 변경 • cc전체 줄을 삽입에 의한 변경 • S 전체 줄을 삽입에 의한 변경 • c'a커서부터 mark a까지 삽입에 의해 변경 • ~ 대,소문자 바꾸기

  11. 편집 -치환 II < 고치기의 취소 또는 반복 > • u 편집 버퍼를 수정했던 마지막 명령을 취소 • U 현재 줄을 저장 • . 편집 버퍼를 수정했던 마지막 명령 반복 <밀어내기> • >>현재 줄을 오른쪽으로 밀어냄 • <<현재 줄을 왼쪽으로 밀어냄 • 10>>현재줄부터 10줄을 오른쪽으로 밀어냄 • >'a현재줄부터 mark a까지를 오른쪽으로 밀어냄 • :<range> > <range>를 오른쪽으로 밀어냄 • :<range> < <range>를 오른쪽으로 밀어냄 • :set sw=8 shiftwidth - 밀어내기 칸수를 8로 설정

  12. 편집 -삭제 < 삭제> • x커서가 있는 문자 삭제 • X커서의 왼쪽 문자 삭제 • D커서부터 줄의 끝까지 삭제 • dw한 단어 삭제 • dd현재 줄의 전체 삭제 • d'a 커서부터 mark a까지 삭제 • dG커서부터 편집 버퍼의 끝까지 삭제 • d1G커서부터 편집 버퍼의 맨 앞까지 삭제 • :10d 10번째줄의 삭제 • :10, 20d 10~20까지 줄을 삭제 • :<range>d <range>의 범위를 삭제

  13. 편집 -복사I < Cut Buffer로 복사하기 > • yy한줄을 cut buffer로 복사 • nyy n줄을 cut buffer로 복사 • y'a현재위치에서 mark a줄까지 복사 • "a Cut buffer를 "named buffer" a로 지정(a-z) • "ayy buffer a에 한줄 복사 • 10"ayy buffer a에 한줄 복사 • "ay'b buffer a에 현재위치부터 mark b까지 저장 • :<range>y <range>범위를 cut buffer에 복사 • :<range>y"a <range>범위를 buffer a에 복사 • v블럭을 화면상에서 반전상태로 지정(elvis) • p cut buffer로 내용을 커서의 뒤/아래에 삽입 • "ap buffer a의 내용을 커서의 뒤/아래에 삽입 • P 커서의 앞/위에 삽입

  14. 편집 -복사II < 여러 줄의 복사와 이동 > • :10co20 10번째 줄을 복사하여 20번째 줄 밑에 삽입 • :10,20co30 10-20줄 범위를 복사하여 30번째 줄 밑에 삽입 • :<range>co'c <range>를 복사하여 mark c밑에 삽입 • :<range>t20 co와 동일 • :10m20 10번째 줄을 이동하여 20번째 줄 밑에 삽입 • :10,20m30 10-20줄 범위를 이동하여 30번째 줄 밑에 삽입 • :<range>m'c <range>를 mark c밑으로 이동

  15. 기타 < 데이터를 처리하기 위한 셸 명령의 사용 > • n!!command n번 줄에서 command의 실행 • !'a command커서부터 mark a까지 command 실 행 • !'a fmt커서부터 move까지 줄들을 형식 맞추기

More Related