본문 바로가기
유닉스, 리눅스

[유닉스/리눅스 기초]vi 편집기

by TJobim 2016. 9. 13.
반응형

<행 단위 편집기>

  • 한 번에 한 행씩 작성 또는 수정
  • ed, ex, sed


 

<화면 단위 편집기>

  • 일반적으로 사용하는 편집기
  • 화면 단위로 보면서 커서를 이동해 작성 또는 수정
  • vi(유닉스 기본 편집기)
    • 최초 화면 단위 편집기
    • ex 편집기 명령 사용가능
    • 단순한 명령으로 빠른 편집 가능
  • 이맥스(GNU 이맥스, ...)
    • 작업하는 도중 다양한 기능 사용 가능(이메일, 쉘, 파일 복사/삭제 등)


<vi 편집기>

  • 모드형 편집기(모드에 따라 같은 입력을 다르게 처리)
    • 입력 모드 : 입력하는 그대로 내용 입력
    • 명령 모드(+마지막 행 모드) : 입력하는 키를 명령으로 처리


  • vi (파일명) : vi 시작
    • 파일명을 지정하지 않거나 지정 파일이 없을 경우 빈 파일 생성
    • ~는 비어있는 행 표시
    • 최초 vi 시작 시 명령모드
  • 커서 이동
    • 위 / 아래 / 왼쪽 / 오른쪽 : k / j / h / l
    • ^ 또는 O :현재 행 처음으로
    • $ : 현재 행 마지막으로
    • - : 이전 행 처음으로
    • + 또는 enter : 다음행 처음으로
    • H / M / L : 화명 맨 위/중간/아래 행으로
    • w / b : 다음/이전 단어의 첫 글자로
    • e : 다음 다어의 마지막 글자로
  • 화면 이동
    • ^u / ^d : 반 화면 위 / 아래로
    • ^b / ^f : 한 화면 위 / 아래로
    • ^y / ^e : 한 행 위 / 아래로
  • 행 이동
    • G : 마지막 행 이동
    • 숫자 G : 해당 행으로 이동
  • 명령 모드 -> 입력 모드 : i, a, o, I, A, O
    • i : 커서 자리에 입력
    • a : 커서 뒤에 입력
    • o : 커서 다음 행에 입력
    • I : 현재 행 가장 앞에 입력
    • A : 현재 행 마지막에 입력
    • O : 이전 행에 입력
  • 입력 모드 -> 명령 모드 : esc
  • 내용 수정(r 명령 외 입력모드로 전환됨)
    • r : 커서가 위치한 문자 수정
    • (숫자)cw : 커서 위치부터 (숫자 번째)단어 끝까지 수정
    • (숫자)s : 커서 위치부터 (숫자만큼의 문자) 수정
    • cc : 현재 행 모두 수정
    • C : 커서 위치부터 현재 행 끝까지 수정
  • 삭제 및 취소
    • (숫자)x : 커서 위치(부터 숫자 만큼의) 문자 삭제
    • (숫자)dw : 커서 위치(부터 숫자 만큼의) 단어 삭제
    • (숫자)dd : 커서 위치(부터 숫자 만큼의) 행 삭제
    • u : 이전 명령 취소
    • U : 현재 행에서의 모든 명령 취소
    • :e! : 마지막 저장 상태로 되돌림
  • 복사, 붙이기, 잘라내기
    • (숫자)yy : 현재 행(부터 숫자 만큼의) 행 복사
    • p / P : 현재 행 아래 / 위에 붙이기
    • (숫자)dd : 현재 행(부터 숫자 만큼의) 행 잘라내기
    • 네임드 버퍼 사용 : "문자/숫자 붙이기
      • ex: "ayy -> a 버퍼 생성 및 복사, "ap -> a 버퍼 내 데이터 붙이
  • 범위 지정
    • 1,3 : 1행부터 3행까지
    • .,$/% : 현재 행부터 끝까지
  • 기타
    • ^l : 화면 재출력
    • J : 현재 행과 아래 행 연결(현재 행 뒤에 붙임)
    • . : 이전 명령 반복
    • ~ : 현재 커서 위치 글자 대소문자 전환
  •   명령 모드 -> 종료 / 저장
    • :q : 저장 없이 종료
    • :q! : 저장 없이 강제 종료
    • :w (파일명) : (파일명으로) 저장
    • :wq(!) : 저장 후 종료
    • ZZ : 저장 후 종료
  • 마지막 행 모드
    • 복사 / 잘라내기
      • :(숫자)y : 숫자만큼의 행 복사
      • :<범위>y : 범위의 행 복사
        • ex} :1,4y : 1~4행 복사
      • :(숫자)d : 숫자만큼의 행 삭제
      • :<범위>d : 범위의 행 삭제
      • :pu : 현재행 다음에 붙이기
      • :(숫자)pu : 숫자번째 행 다음에 붙이기
    • 검색
      • /문자열 : 문자열을 아래 방향으로 검색
      • ?문자열 : 문자열을 위 방향으로 검색
      • n / N : 다음 문자열을 기존 / 역 방향으로 검색
    • 변경
      • :s/대상문자열/결과문자열 : 현재 행의 첫 번째 대상문자열을 결과문자열로 변경
      • :%s/대상문자열/결과문자열 : 전체에서 대상문자열을 결과문자열로 변경
      • :<범위>s/대상문자열/결과문자열 : 범위안의 모든 행에서 첫 번째 대상문자열을 결과문자열로 변경
      • :<범위>s/대상문자열/결과문자열/g : 첫 번째 -> 모든
      • :<범위>s/대상문자열/결과문자열/gc : 변경 여부 확인
    • 파일 읽어오기
      • :r 파일명 : 해당 파일 내용을 현재 커서 위치에 삽입
      • :e 파일명 : 해당 파일로 전환(기존 파일은 저장되지 않음)
      • :n : vi편집기 실행시 여러 파일명을 지정했을 경우 다음 파일로 전환
    • 쉘 명령 사용
      • :! 명령 : 해당 명령 실행(enter : vi로 전환)
      • :sh : 쉘 명령 작업으로 전환(exit 입력 : vi로 전환)
  • vi 편집기 환경 설정
    • :set nu : 행 번호 표시
    • :set nonu : 행 번호 감춤
    • :set list : 보이지 않는 특수문자 표시
    • :set nolist : 특수문자 감춤
    • :set showmode : 현재 모드 표시
    • :set noshowmode : 모드 표시 감춤
    • :set : 현재 설정 상태 출력
    • :set all : 모든 환경 변수 및 설정 값 출력

<

반응형

댓글