[vi]명령어

VI 이란

  • UNIX 계열 운영체제에서 주로 쓰이는 유서 깊은 오픈 소스 텍스트 에디터이다

  • 처음에 쓰기 어렵지만 잘쓰게 되면 정말 편하다고 하는데 … 아직 잘 느끼지는 못하고 있다.

  • 그래도 리눅스 환경에서 많은 경험을 하다보니까 vi를 자연스럽게 익혀야 해서 지금 공부하고 있다.

VI 편집기

모드

명령어 모드에는 3가지 모드가 있다.

  • 명령라인모드

    명령라인모드는 : 통해서 진입할 수 있다.
    보통 UI에서 사용하는 File 탭에 기능을 한다.
    종료 , 저장, 저장후 종료 등 여러 기능을 수행한다.

  • 명령모드

    vi 의 기본 모드 입니다. 처음에 편집을 할 수 없는 상태다.
    하지만 다른 명령어들을 이용해서 복사 붙여넣기 같은 기본 적인 기능 부터 찾기 찾아바꾸기 맨 앞으로 이동, 맨끝으로 이동 등 여러가지 작업을 할 수 있다.

  • 편집모드

    vi 에서 편집을 하려면 무조건 a 혹은 i 명령어를 통해서 편집모드로 진입해야 한다.
    이때부터 vi 편집기에서 편집이 가능하다.

명령어

명령라인모드

  • w : 저장
  • q : 저장하지 않고 종료
  • wq : 저장 후 종료
  • q! : 강제 종료
  • wq! : 강제 저장 후 종료

    명령모드

    다른 모드로 진입

  • : : 명령라인모드로 진입
  • i : 현재 커서에서 편집모드로 진입
  • a : 현재 커서 뒤에서 편집모드로 진입
  • o : 현재 커서에서 다음줄에서 편집모드로 진입
  • s : 현재 커서에서 한글자 지우고 편집모드로 진입
  • I : 현재 커서 줄의 맨 앞에서 입력
  • A : 현재 커서 줄의 맨 뒤에서 입력
  • O : 현재 커서 이전 줄에 입력
  • S : 현재 커서줄 지우고 입력

    커서 이동

  • l : →
  • h : ←
  • k : ↑
  • j : ↓
  • gg : 맨 위로
  • G : 맨 아래로
  • 숫자G: 숫자만큼 지정한 줄로 이동
  • w : 오른쪽 단어의 끝으로 이동
  • e : 오른쪽 단어의 앞 부분으로 이동
  • b : 왼쩍 단어의 앞부분으로 이동
  • Enter : 한 행 아래로 이동
  • Back space : 한 문자 왼쪽으로 이동
  • Space Bar : 한 문자 오른쪽으로 이동
  • ^ : 행 맨왼쪽으로 이동
  • $ : 행 맨오른쪽으로 이동
  • H : 화면 맨 위로 이동
  • M : 화면 중간으로 이동
  • L : 화면 맨 아래로 이동
  • Ctrl + f : page up
  • Ctrl + b : page down
  • Ctrl + d : 반화면 위로 이동
  • Ctrl + u : 반호면 아래로 이동
  • Ctrl + e : 한줄위로 이동
  • Ctrl + y : 한줄 아래로 이동

    변경

  • cw : 단어변경
  • cc : 행변경
  • C : 커서 오른쪽 행 변경
  • s : 커서가 위차한 문자열 대체
  • S : 커서가 위찬한 라인의 문자열 대체
  • r : 커서 위치 문자를 다른 문자로 대체
  • r-Enter : 행분리
  • J : 현재행과 아래행 결합
  • xp : 커서의 우치의 문자와 오른쪽 문자 교환
  • ~ : 문자형 변경(uppercase lowercase 토글)
  • u : 이전 명령 취소
  • U : 행 변경 사항 취소
  • :u : 이전의 최종 행 취소
  • . : 이전 최종 명령 반복

    삭제

  • x : 커서가 있는 문자 삭제
  • 숫자x : 커서가 있는 위치부터 숫자만큼 문자 삭제
  • dw : 커서가 있는 한 단어 삭제
  • dd : 커서가 있는 라인 삭제
  • 숫자dd : 커서가 있는 라인부터 숫자만큼 라인 삭제
  • db : 커서위치에서 왼쪽 한 단어 삭제
  • D : 커서 오른쪽 행 삭제
  • :숫자,숫자d : 숫자 ~ 숫자 행 삭제

    복사

  • yy Y : 행 복사
  • 숫자yy 숫자Y : 현재 행부터 숫자만큼 행 복사
  • P : 라인 앞에 붙여넣기
  • p : 라인 뒤에 붙여넣기

    행번호

  • :set nu / :setnonu : 행번호 표시 / 행번호 숨기기

    탐색

  • / : 오른쪽 아래 방향으로 문자열 검색
  • ? : 왼쪽 위 반향으로 문자열 검색