vi

VI Editor #


VI는 UNIX 계열 운영체계에서 주로 사용되는 문서 편집기로 BSD Unix 개발에 중요한 역할을 했던 William Nelson Joy라는 분이 만듬. Unix에서 별도 에디터 없이 사용해야만 하는 상황이 종종 발생되는데 매번 찾아보게 되여 별도로 정리함.

EX Command #

  • vi+Enter : vi 실행
  • vi file.txt : file.txt 파일 생성 또는 편집
  • vi -35 file.txt : file.txt 오픈 후 35행으로 이동
  • vi -r file.txt : file.txt 손상 파일 복구
  • view file.txt : file.txt 읽기 전용으로 열기
  • :q+Enter : vi 종료
  • :q!+Enter : 저장없이 종료
  • :wq : 변경저장 종료

Input Mode #

  • i : 현재 커서에서 입력모드 진입
  • a : 현재 커서의 다음 칸에서 입력모드 진입
  • o : 현재 커서의 다음 줄에서 입력모드 진입
  • s : 현재 커서 위치의 한자를 지우로 입력모드 진입
  • I : 현재 커서 줄 맨 앞에서부터 입력모드 진입
  • A : 현재 커서 줄 맨 마지막에서부터 입력모드 진입
  • O : 현재 커서 줄 이전 줄에서 부터 입력모드 진입
  • S : 현재 커서 줄을 지우고 입력모드 진입

Cursor 이동 #

  • h : 커서 왼쪽 한칸 이동
  • j : 커서 아래쪽 한칸 이동
  • k : 커서 위쪽 한칸 이동
  • l : 커서 오른쪽 한칸 이동
  • b : 이전 단어 첫글자 이동
  • B : 이전 단어 첫글자 이동
  • w : 다음 단어 첫글자 이동
  • W : 다음 단어 첫글자 이동
  • e : 다음 단어 끝글자 이동
  • E : 다음 단어 끝글자 이동
  • ^ : 해당줄의 첫글자로 이동
  • $ : 해당줄의 끝글자로 이동
  • :0 : 해당줄의 제일 처음으로 이동
  • :$ : 해당줄의 제일 끝으로 이동
  • + : 다음줄의 첫글자로 이동
  • - : 이전줄의 첫글자로 이동
  • ( : 이전 문장의 첫글자로 이동
  • ) : 다음 문장의 첫글자로 이동
  • { : 이전 문단으로 이동
  • } : 다음 문단으로 이동
  • G : 제일 끝 행으로 이동
  • gg : 제일 첫 행으로 이동
  • 35G : 35번째 행으로 이동
  • :35+Enter : 35번째 행으로 이동
  • H : 화면의 첫줄로 이동
  • M : 화면의 중간으로 이동
  • L : 화면의 끝줄로 이동
  • Ctrl+i : 이전 화면으로 이동
  • Ctrl+b : 다음 화면으로 이동
  • Ctrl+d : 다음 반 화면으로 이동
  • Ctrl+f : 다음 화면으로 이동
  • 35% : 35%에 해당하는 지점으로 이동

Copy/Delete/Paste #

  • x : 현재 커서 위치 문자 삭제
  • 5x : 현재 커서 위치 + 4글자 삭제
  • x,dl : 커서 위치의 글자 삭제
  • X : 현재 커서 이전 글자 삭제
  • X,dh : 커서 바로 앞의 글자 삭제
  • dw : 현재 커서 단어 삭제
  • d0 : 현재 커서위치부터 줄의 처음까지 삭제
  • dd : 현재 커서 위치 행 삭제
  • dj : 현재 커서가 있는 줄과 그 다음 줄을 삭제
  • dk : 혅재 커서가 있는 줄과 그 이전 줄을 삭제
  • 3dd : 현재 커서 위치 행부터 다음 3행까지 삭제
  • D : 현재 커서 위치부터 행끝까지 삭제
  • D,d$ : 현재 커서 위치부터 줄의 끝까지 삭제
  • yy : 현재 커서가 있는 행을 복사
  • 3yy : 현재 커서 부터 다음 3행을 복사
  • yw : 현재 커서 위치 부터 단어의 끝까지 복사
  • y0 : 현재 커서 위치 부터 해당 행을 처음까지 복사
  • y$ : 현재 커서 위치 부터 해당 행의 끝까지 복사
  • yj : 현재 커서 위치 부터 다음 줄까지 복사
  • yk : 현재 커서 위치 부터 잊전 줄까지 복사
  • p : 복사내용을 현재 행 이후에 붙여 넣기
  • P : 복사내용을 혀내 행 이전에 붙여 넣기
  • r : 현재 커서 위치 한글자 교체
  • R : 현재 커서 위치 ESC 누르기 전까지 다른 글자로 교체
  • s,cl : 현재 커서 위치 글자 한개를 여러 글자로 교체
  • ch : 현재 커서 위치 이전 글자 한개를 여러 글자로 교체
  • cw : 커서 위치의 한단어를 교체
  • cO : 커서 위치부터 줄의 처음까지 교체
  • C,c$ : 커서 위치부터 줄의 끝가지 교체
  • cc : 커서가 있는 줄을 교체
  • cj : 커서가 있는 줄과 그 다음 줄을 교체
  • ck : 커서가 있는 줄과 그 이전 줄을 교체

Undo/Redo #

  • u : Undo
  • U : 해당 줄의 작업 모두 취소
  • Ctrl+r : Redo
  • . : 직전 명령 반복
  • J : 현재 행과 다음 행을 이어 붙임
  • ~ : 대문자/소문자 전환
  • % : 괄호 반대쪽 이동
  • Ctrl+l : 현재 화면을 지우고 다시 로드
  • Ctrl+g : 파일에 관한 정보 표시

/text+Enter : “text” 문자열을 현재 커서 이후부터 검색 ?text+Enter : “text” 묹자열을 역방향으로 검색 n : 찾은 문자 다음 이동 N : 찾은 문자 이전 이동

Replace #

:%s/text/newtext/ig : “text"를 찾아 “newtext"로 치환. i 대소문자 구분없음. g Global 변경. :%s/text/newtext/gc : “text"를 찾아 “newtext"로 치환. g Global 변경. c 변경전 Confirm.

ETC #

:set number : 행번호 출력 :set nonumber : 행번호 숨김 :cd : 현재 디렉토리 출력




comments powered by Disqus