본문 바로가기

Linux

Vi 에디터 정리

[vi 에디터]
  - Linux에서 기본적으로 제공하는 문서 편집기(CLI 환경에서 사용)

  - 사용 환경
        명령 모드 : 기본 사용 환경, 커서 이동, 복사/잘라내기/붙여넣기, 삭제, 입력/실행 모드 전환
        입력 모드 : 문서 내용을 편집하기 위한 환경, 내용 추가/수정/삭제, 명령 모드 전환
        실행 모드 : 그 외 대부분의 기능들을 사용하기 위한 환경, 명령 모드 전환
        (ex 모드)

        * 입력 모드와 실행 모드 간의 전환은 불가능

  - vi 에디터 실행
          vi              : 빈 파일 열기
          vi 파일명  : 해당 파일 열기

 

 

[명령 모드 사용 방법]
   1. 커서 이동
       1) 글자 단위 커서 이동
            h : 왼쪽으로 한칸 이동
            j  : 아래로 한칸 이동
            k : 위로 한칸 이동
            l  : 오른쪽으로 한칸 이동

      2) 단어 단위 커서 이동
          -> 소문자로 입력하면 특수문자를 별개의 단어로 인식
              대문자로 입력하면 공백문자와 개행문자를 기준으로 단어를 인식

           w : 커서위치 기준으로 다음 단어의 첫 글자로 이동
           b  : 커서위치 기준으로 이전 단어의 첫글자로 이동
           e  : 다음 단어의 마지막 글자로 이동

      3) 줄 내부 커서 이동
           0  : 커서 위치의 줄 맨 앞으로 이동
           $  : 커서 위치의 줄 맨 뒤로 이동

      4) 화면 내부 커서 이동
           H  : 화면의 첫 줄로 커서 이동
           M  : 화면의 중간 줄로 커서 이동
           L   : 화면의 마지막 줄로 커서 이동

      5) 문서 내부 커서 이동
          gg   : 문서의 첫줄로 이동( [[ 눌러서 대체 가능)
           G   : 문서의 마지막줄로 이동( ]] 눌러서 대체 가능)
          :숫자  : (실행 모드) 숫자번째 줄로 이동

 

   2.  삭제
            x   : 커서 오른쪽으로 내용 삭제, 오른쪽에 더이상 지울 내용이 없으면 왼쪽 내용도 삭제, 그 줄에 더이상 지울 내용이 없으면 추가 동작 안함
            X   : 커서 왼쪽으로 내용 삭제, 왼쪽에 더이상 지울 내용이 없으면 추가 동작 안함

  3. 복사/잘라내기/붙여넣기
            yy   : 커서가 있는 줄 복사
            (숫자)yy  : 커서가 있는 줄부터 숫자만큼 줄 복사
            p   : 커서 뒤쪽으로 붙여넣기 (yy가 줄 복사이기 때문에 맨뒤의 개행문자까지 복사된것)
            P   : 커서 앞쪽으로 붙여넣기
           dd   : 커서가 있는 줄을 잘라내기
           (숫자)dd  : 커서가 있는 줄부터 숫자만큼의 줄 잘라내기

           * y 나 d를 한번만 누르고 커서 이동키를 누르면 커서가 이동한 만큼 복사 혹은 잘라내기 가능

 

  4. 실행 취소/다시 실행
            u   : 실행 취소
            ctrl + r  : 다시 실행

 


 [입력 모드 전환]
          i : 커서 왼쪽으로 내용 입력
          I : 커서 줄 맨 오른쪽부터 내용 입력
          a : 커서 오른쪽으로 내용 입력
          A : 커서 줄 맨 오른쪽부터 내용 입력
          o : 커서가 있던 줄 아래에 빈 줄 삽입 후 내용 입력
          O : 커서가 있던 줄 위에 빈 줄 삽입 후 내용 입력
          s : 커서가 있던 칸을 지우고 내용 입력
          S : 커서가 있던 줄 전체를 지우고 내용 입력

           
[실행 모드 사용 방법]
   1. 줄 번호 출력/숨기기
         :set nu    : 줄 번호 출력
         :set nonu  : 줄 번호 숨기기

   2. 찾기(검색)
          /검색할 내용  : 위에서 아래로 일치하는 내용 검색
          ?검색할 내용  : 아래에서 위로 일치하는 내용 검색
      
        * 동작 후 추가 입력
                   n : 검색 방향으로 다음 찾기
                   N : 검색 방향의 반대 방향으로 다음 찾기

   3. 찾아 바꾸기(치환)
         :[범위]s/찾을내용/바꿀내용/[옵션]

     * 범위
         생략     : 커서가 위치한 줄에서 내용을 찾아서 변경
         n       : n번째 줄에 있는 내용을 찾아서 변경
         n1,n2   : n1부터 n2번째 줄에 있는 내용을 찾아서 변경
         %       : 문서 전체에 있는 내용을 찾아서 전부 변경

     * 옵션
         g       : 한 줄에 변경할 내용이 여러개 있는 경우 전체를 다 변경


   4. 리눅스 명령어 사용
       :! 명령어   : vi를 잠시 멈추고 리눅스 명령어 실행
  
   5. 파일에 내용 삽입
       :.! 명령어  : 현재 커서가 위치한 줄 내용을 지우고 명령어 출력 결과 삽입
       :r! 명령어  : 현재 커서가 위치한 줄 아래로 명령어 출력 결과 삽입
       :r 파일명   : 커서가 있는 줄 아래로 다른 파일의 내용 삽입
         
         * :r, :r! 의 경우 기호와 r 사이에 숫자를 넣어서 해당 줄 아래로 삽입 가능

   6. 저장/종료/불러오기
         -> !를 저장/종료/불러오기에 붙여주면 강제 동작

         :w        : 저장
         :w 파일명  : 해당 이름으로 저장
         :q        : 종료
         :wq       : 저장 후 종료
         :wq 파일명 : 해당 이름으로 저장 후 종료
         :e 파일명  : 기존 문서를 닫고 다른 파일 불러오기
         :enew     : 기존 문서를 닫고 새 파일 열기

 


참고)

 

:shell 명령어를 사용하면 사용중이던 vi 편집기를 백그라운드로 전환하고 쉘 프롬프트로 돌아갈 수 있다

다시 vi 편집기로 돌아가기 위해선 exit로 쉘 프롬프트를 종료시키면 된다

 

vi편집기 사용 도중 ctrl + z 를 눌렀을 때

 

이와 같은 기능을 하는 것으로 ctrl + z 가 있는데 vi 편집기로 돌아가기 위해선 fg 명령어를 사용해야 한다는 차이점이 있다

 

 

fg(foreground)

  - 백그라운드로 실행되고 있는 프로세스를 포그라운드로 전환

 

  - 형식

      fg %작업번호  (번호 미입력시 가장 최근 프로세스가 포그라운드로 전환됨)

 

bg(background)

  - 프로세스를 백그라운드로 실행

 

  - 형식

      명령어 &

 

jobs

  - 현재 작업중인 프로세스 정보를 출력

 

사용중이던 vi 편집기로 복귀

이렇게 백그라운드로 전환됐던 vi 편집기로 복귀할 수 있는 것을 확인할 수 있다 

'Linux' 카테고리의 다른 글

파일 속성&권한  (0) 2022.09.13
사용자 계정&그룹  (0) 2022.09.13
Linux 파일 링크, 압축  (0) 2022.09.09
Linux 기본 명령어 정리  (0) 2022.09.09
리눅스 기본 디렉토리 구조&절대 경로와 상대 경로  (0) 2022.09.09