[Linux] vi editor 명령어

diveintoo·2022년 1월 29일
0

vi editor

vi editor는 리눅스에서 많이 쓰이는 문서 편집기로 윈도우의 메모장과 같다고 생각하시면 됩니다.

vi editor 호출

vi : 파일 이름 없이 에디터 실행
vi test.txt : test.txt 파일을 편집하기 위해 에디터 실행, 만약 파일이 존재하지 않으면 생성한 뒤 실행

vi editor 모드


vi editor에는 위처럼 3가지 모드가 있습니다.
자세한 내용은 명령어를 소개하면서 함께 하도록 하겠습니다.

vi editor 명령어

':' 으로 시작하는 명령어는 execution 모드에서 실행되며, 그 외에는 모두 명령 모드에서 실행됩니다.

명령 모드 -> 입력 모드

  • i : 텍스트가 커서 앞에서 삽입
  • a : 텍스트가 커서 뒤에서 삽입
  • o : 텍스트가 현재 줄 다음 행에 삽입
  • O : 텍스트가 현재 줄 위 행에서 삽입
  • R : 텍스트 대치

입력 모드 -> 명령 모드

  • esc

커서 이동

  • 이동

    • k : 한 줄 위로
    • j : 한 줄 아래로
    • l : 한 문자 오른쪽으로
    • h : 한 문자 왼쪽으로
  • 단어

    • b : 한 단어 앞으로
    • w : 한 단어 뒤로
    • :$ : 마지막 줄로
    • :nn : nn 줄로
    • :. : 현재 줄로
    • ^ : 행의 처음으로
    • $ : 행의 마지막으로
  • 페이지

    • Control-f : 한 화면 밑으로
    • Control-b : 한 화면 위로
  • 문서

    • G : 문서의 마지막 행으로
    • gg : 문서의 첫 행으로

편집

  • 복사

    • yy, Y : 한 줄 복사
    • nyy : n 줄 복사
    • yw : 한 단어 복사
    • yG : 현재 행 ~ 문서 끝까지 복사
    • ygg : 문서 처음 ~ 현재 행까지 복사
  • 붙여넣기

    • p : 아래로(오른쪽으로) 붙여넣기
    • P : 위로(왼쪽으로) 붙여넣기
    • 2p : 아래로 2번 반복해서 붙여넣기
  • 삭제

    • x : 커서 오른쪽 한 문자 삭제
    • dw : 커서 오른쪽 한 단어 삭제(space까지 삭제)
    • dd : 한 줄 삭제
    • D : 현재 줄 끝까지 삭제
    • :<range>d : 블록 단위로 삭제

      <range> : 줄의 범위를 나타냅니다.
      ex)
      첫 줄에서 마지막 줄까지 : 1, $
      현재 줄부터 그 다음 10 줄 : +10
      3번째 줄에서 13번째 줄 : 3, 13

    • dG : 커서가 있는 행 ~ 문서 끝까지 삭제
    • dgg : 문서 처음 ~ 커서가 있는 행까지 삭제
    • d$ : 커서가 있는 행의 끝까지 삭제
    • d^ : 커서가 있는 행의 처음까지 삭제
  • 치환
    • r : 한 문자 치환 (명령 모드 유지)
    • R : 여러 문자 치환 (입력 모드로 전환)
    • cw : 한 단어 치환 (입력 모드로 전환)
    • cc : 한 줄 치환, 현재 행 삭제 (입력 모드로 전환)

탐색

  • /sss : 현재 위치에서 파일의 뒤쪽으로 문자열 'sss' 탐색
  • ?sss : 현재 위치에서 파일의 앞쪽으로 문자열 'sss' 탐색
  • n : 마지막 탐색 명령을 같은 방향으로 재탐색
  • N : 마지막 탐색 명령을 반대 방향으로 재탐색 (이전에 역방향 탐색이었다면, 순방향 탐색으로)

파일의 저장, 종료

  • :w : 파일을 저장하고 수행을 계속
  • :w <filename> : filename으로 저장하고 수행을 계속
  • :q : 수정 사항이 없을 경우 수행을 종료
  • :wq : 파일을 저장하고 수행을 종료
  • :q! : 편집한 내용을 저장하지 않고 수행을 종료

알아두면 유용한 명령어

  • u : 이전 명령 복구
  • U : 행 전체에서 복구
  • Control-R : undo를 취소, redo
  • . : 이전 번경 작업을 반복
  • Control-g : 요약 줄에 편집 상태 표시
  • J : 현재 행, 아래 행을 합체
  • :set number : 줄 번호 표시
  • :set nonumber : 줄 번호 미표시

0개의 댓글