Linux3

박주현·2022년 12월 29일
0

국비 공부

목록 보기
38/44

vi editor (vi 편집기)

1970년대 중반에 개발된 편집기

vi의 모드

  1. 명령모드
  • 여러 단축 명령어(단축키)를 이용해 문서 편집
  • 잘라내기, 복사하기, 라인삭제, 라인이동
  1. 실행모드(ex명령모드)
  • 문서 편집기의 메뉴와 연관이 있다고 생각하면 됨
  • 파일저장, 파일읽기, vi 종료, 찾기, 바꾸기 등
  • 화면 제일 하단 부분에 나오게 됨
  • 파일 관련 메뉴나 종료는 명령모드에서 ':'으로 진입
  • 문서 내용 찾기, 바꾸기(치환) '/'으로 진입
  1. 입력모드
  • 문서의 편집
  • 명령모드에서 i (insert) 혹은 o
  • 화면 제일 하단에 --INSERT--, --REPLACE--로 나옴

VI의 모드는 항상 명령모드를 거쳐서 실행모드와 입력모드로 진입이 되어야 함.


명령 모드

1. 커서 이동

  • hjkl : 아래 위 (커서 키로도 이동이 됨)
  • gg : 제일 첫 행
  • G : 문서의 제일 마지막 행
  • $ : 해당 라인의 마지막
  • ^ : 해당 라인의 처음
  • set nu : 라인 넘버 표시
  • : n : n번 라인으로 이동 (절대 이동)
  • n Enter : 커서가 위치한 라인부터 해당 숫자만큼의 라인으로 이동 (커서 위치부터 라인번호 상대 이동)

2. 텍스트/행 삭제

  • x : 한글자씩 삭제 (delete와 동일)
  • n x : n개 만큼의 글자 삭제
  • dw : 한단어 삭제 (단어는 띄어쓰기로 구분)
  • dd : 커서가 위차한 행을 삭제
  • n dd : n 번만큼의 라인 삭제
  • u : 직전 행동 취소 (ctrl + z)
  • n1 , n2d : n1 부터 n2 까지 라인 삭제

3. 복사 (yanked) 붙여넣기 (paste)

  • yy : 커서가 위치한 줄 복사
  • p : 커서가 위치한 곳 아래행에 붙여넣기
  • P : 커서가 위치한 곳 윗 행에 붙여넣기
  • 1,2 co 5 : 1행부터 2행까지 복사 후 5행 다음으로 복사
  • 1,2 m 5 : 1행부터 2행까지 복사 후 5행 위로 이동

블럭 지정 v키를 누르고 화면 하단에 --VISUAL-- 표시가 되고 블럭지정이 되면서 커서가 이동이 되고 y키를 누르면 복사 됨 p키를 누르면 붙여넣기가 됨

  • ctrl + G 현재 파일 정보와 커서의 라인, 열 정보를 보여줌
  • :set nu : 라인 번호 보여주기
  • :set nonu : 라인 번호 감추기

4. 찾기, 바꾸기

찾기
실행모드 (ex 명령모드) 즉 명령모드에서 아래 키를 누르면 바로 실행모드 진행이 됨

  • / : 검색할 문자열 패턴 커서 기준으로 오른쪽부터 아래 방향
  • ? : 검색할 문자열 패턴 커서기준으로 왼쪽부터 윗 방향
    패턴 매치가 되면 찾기가 중단
    계속 검색 n 커서 오른쪽 아래 방향 다음 검색
    계속 검색 N 커서 왼쪽 위 방향으로 이전 검색

바꾸기

  • :s /찾아서 바꿀 문자열 패턴/바꿀문자열
  • :s /찾아서 바꿀 문자열 패턴/바꿀문자열/g : g 해당 문서 전체에서 찾아서 변경
  • :s /찾아서 바꿀 문자열 패턴/바꿀문자열/gi : 대소문자 구분 안함

5. 저장 실행모드(ex명령모드)

  • :w : 저장시 기존 파일 대체할 것인지 yes/no 선택
  • :w! : 강제로 저장
  • : w 파일명 : 해당 파일명으로 저장

6. vi 종료

  • :q : 나가기
  • :q! : 물어보지않고 강제로 나가기
  • :wq! : 저장하고 나가기
  • :e! : 원래의 파일 다시 불러오기

입력 모드

명령모드 -> 입력모드의 전환

  • i : 현재 커서 위치부터 입력모드 시작
  • a : 현재 커서가 위치한 다음 칸(오른쪽부터 입력 시작)
  • o : 현재 커서가 위치한 다음 행에 빈줄을 생성 후 입력시작
  • s : 현재 커서가 위치한 한 문자를 삭제한 후 입력 시작
  • r : --REPLACE-- 치환함.
  • I : 현재 커서가 위치한 행의 처음부터 입력 시작
  • A : 현재 커서가 위치한 행의 마지막부터 입력 시작
  • O : 현재 커서가 위치한 이전 행에 빈줄을 생성 후 입력 시작
  • S : 현재 커서가 위치한 한 행을 삭제한 후 입력 시작

0개의 댓글