사용법 습득[5주차] vi

  1. 유닉스 편집행 단위 편집기(라인편집기) · ed 유닉스 초기에 사용 지금은 거의 사용하지 않음
  2. · 단독으로 사용하기보다는 vi와 연결하여 사용
  3. · sed: 스트림 편집 지시된 명령에 따라 파일의 내용을 일괄적으로 변경하고 출력 쉘 스크립트에서 가져온 파일을 편집할 때 사용
  4. 화면 단위 편집기 vi (visualeditor) 모든 UNIX에서 사용 가능 (ex 기반)
  5. 모드형 명령 모드에서 입력한 키는 명령으로 간주 입력 모드에서 입력한 키는 데이터로 간주 모드를 전환하기 위한 특수 키가 있다.

  6. 비모드형 입력한 모든 키는 데이터로 간주 명령은 특수키(Ctrl, Alt 등)와 일반키의 조합으로 구성된다.

  7. 2.vi 사용방법

파일 내용 잘못 수정 시 버퍼 내용 무시 작업, 취소 기능 제공

vi시작 vi새파일시작파일저장했을때이름지정

vi 파일의 이름 지정한 이름이 없으면 새 파일 생성 지정한 이름이 있으면 기존 파일의 열기

입력명령 입력명령(커맨드 모드→입력 모드) 명룡기 수행 작업 i커서 앞에 삽입 [insert] a 어른이 되어서 후에 삽입 [append]o, 현재 주는 다음에 삽입 I 현재 하는 첫 칸 영화제 전에 텍스트 입력 A 현재, 줄의 끝에 텍스트 입력 O 현재, 줄의 선두에 삽입.입력이 끝나면 “입력모드”에서 “커맨드 모드”로 돌아가야 함!
(ESC키)

저장과 종료 명령 저장 명령을 저장하거나 종료하려면 “명령 모드”로 돌아가야 한다.

면 료은키 수행 작업:w”현재의 파일명에 파일 저장:w파일명”지정한 파일 이름으로 파일 저장 종료 명령(저장 후 종료 또는 그대로 종료)면 료은키 수행 작업:q”작업 내용을 저장하면 vi의 종료:q!
”작업 내용을 보존하지 않고, vi의 종료:wq”작업 내용을 보존하고 vi의 종료:wq파일명”작업 내용을 지정한 파일 이름에 저장한 뒤 vi의 종료 ZZ[shift-zz]”작업 내용을 보존하고 vi의 종료 커서 이동 명령 화살표 이용 H, J, K, L키 이용의 이동 명령어한 행 위 k, 일언 지하 j 있다 한 문자 오른쪽 l한일자 왼쪽 h들의 시작)또는 O행의 마지막$, 이전 행의 처음 다음 행의 처음+또는”현재 화면에서 커서 이동 명령 키키 화면 맨 위로 H키 화면의 중간에 M키 화면 하단에 L다음의 단어 첫머리의 글글씨에서 w이전 단어의 첫 글자에서 b다음 단어의 끝 글자로 e지정한 장소에 이동이 동묘은료은키쥬루 번호 n의 위치에:n또는 nG파일 맨 뒷자리에 이동::$또는 Gn열 만큼 향후, 이동 n+n열 만큼 뒤로 이동 n-현재, 문장의 처음에[다음 문장의 처음이자 현재 문단의 처음에[다음 문단의 처음 화면 이동 이동묘은료은키발 화면 위에. u클래스의 화면 아래에^d한 화면 위에^b화면 아래에. f한줄만 위로^y한줄만 아래로^e파일 내용을 다시 출력^l의 내용 제거 및 취소(명령 모드로 동작)명령어의 삭제 대상 수행 작업 x,#x문자의 커서 위치의 문자 삭제 dw#dw의 단어의 커서 위치의 단어 삭제 dd,#dd열의 커서 위치의 주는 삭제 D(shift-d)줄의 일부 커서 위치에서 주는 마지막까지삭제u

방금 수행한 명령 취소 U와 해당 열의 모든 편집 취소:e!
파일의 마지막 저장 후 모든 편집 취소 #위치에 숫자를 넣으면 해당 숫자만큼 작업의 반복.

내용 수정 (명령 모드에서 동작) 키 수정 대상 수행 작업 r문자 현재 커서 위치의 일자 변경 R자 열 현재 커서에서 ESC 입력까지 변경 cw단어의 커서 위치에서 현재 단어의 끝까지 내용 변경 cc 열, 커서가 위치한 열의 내용 변경 s, #s 문자열 현재 커서 위치의 문자를 ESC 키 입력 때까지 내용 변경 C와 일부 커서 위치에서 주는 마지막까지 내용 변경 r 명령 외에는 자동으로 입력 모드로 전환.

3.vi의 고급 편집할 복사, 잘라내기, 붙여넣기 명령어 모드에서 동작 명령어 수행 작업 yy, #yy 현재 행을 버퍼에 복사p 현재 행 다음에 버퍼 내용 삽입 P 현재 행 위쪽에 버퍼 내용 삽입 dd, #d 현재 행 잘라내기(= 행 삭제), 버퍼 사용 버퍼 ▶ vi는 작업 내용을 버퍼에 저장-실행 취소 가능 ▶ 복사, 잘라내기에 사용

버퍼 종류 ▶ Unnamed buffer (무명 버퍼) – 한 번에 하나의 내용만 저장 ▶ Named buffers (이름 있는 버퍼) ▶ Numbered buffers (번호가 있는 버퍼)

범위 지정 방법 ▶ 편집할 범위를 지정하는 방법 ▶ 마지막 줄 모드에서 사용 ▶ “: 범위 편집 명령” 형태로 사용 범위 의미 1, $ 첫 번째 줄에서 마지막 줄까지 (파일 내의 모든 주다) 1, 첫 줄에서 현재 줄까지. , $ 현재 줄에서 마지막 줄까지. , – 2 현재 열에서 전면에 두 번째 주는 10, 2010 번째 줄에서 20번째 줄까지 마지막 줄 모드 편집 명령 실행 작업: #y #에 지정한 줄 복사: <범위y>열 탐색. 문자열 현재 위치에서 파일 후방으로 문자열 탐색 n 다음 문자열 탐색 N 역방향으로 문자열 탐색 전환 기능(마지막 행 모드에서 사용) 명령어 수행 작업: s/문자열 1/문자열 2/커서가 위치한 열에서만 문자열 2로 바꾼다: <범위> s/문자열 1/문자열 2/<범위> 내의 모든 행에 대해 각 행의 첫 번째 문자열 1을 찾아 문자열 2로 바꾼다: <범위> s/문자열 2/g <범위> 내의 모든 문자열 1을 문자열 2로 바꾼다:<범위>(vi로 돌아갈 때 : exit) ▶ 알아두면 유용한 명령 키 명령 수행 : f파일명 파일명을 지정한 이름으로 변경 : w%.old 현재 파일을 .old 이름으로 저장해 놓을 때 ^g 기본적인 파일 정보 출력 (파일명, 라인 수 등) J 현재 행과 다음 행에 연결.직전에 실행한 명령 재실행 ~ 현재 커서 위치의 한 글자를 소문자 혹은 대문자로 전환하여 비주얼 모드 ▶ 편집할 부분을 선택하면 블록으로 표시하는 모드 ▶ 블록이 선택된 후 편집 키 사용 가능 ▶ vim으로 추가된 기능 구분 명령 키 기능 비주얼 v 현재 커서 위치에서 블록 지정 비주얼 블록 Ctrl + v 현재 커서 위치의 열 단위로 블록 지정 04. 환경설정 명령어 수행 작업: setnu 파일 내용의 각 열 번호 표시: setnow 라인 번호 취소: setnow