Notice
Recent Posts
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

One Step Two Step

[Linux] 리눅스의 필수 도구, vi 편집기 완벽 가이드 본문

복습/Linux

[Linux] 리눅스의 필수 도구, vi 편집기 완벽 가이드

DEVILOW 2026. 3. 7. 23:21
반응형
  •  vi(visual editor) / vim(vi improved)
    • 유닉스 계열 시스템에서 기본적으로 제공되는 텍스트 기반 명령형(text-mode, modal) 편집기
    • vi의 3가지 모드
      • 일반 모드 (Normal Mode)
        • 기본 상태
        • 커서 이동, 삭제, 복사, 붙여넣기 수행  ☞  dd → 한 줄 삭제, yy → 한 줄 복사, p → 붙여넣기
      • 입력 모드 (input mode)
        • 실제 텍스트 입력 상태
        • i, a, o 등으로 진입
        • Esc로 일반 모드 복귀
      • 명령 모드 (command mode)
        • : 입력 후 진입
        • 파일 저장, 종료 등 수행  ☞  :w → 저장, :q → 종료, :wq → 저장 후 종료, :q! → 강제 종료
    • vi 시작  ☞  "vi 파일명", vi hello.txt
    • vi 종료  ☞  :q → 종료, :wq → 저장 후 종료, :q! → 강제 종료, zz → 작업 내용을 저장하고 종료(Shell prompt로 복귀)
    • vi 명령어 사용 전략
      • 편집 버퍼(화면)에 데이터를 넣을 때 단계
        1. 데이터를 쓰고 싶은 곳으로 커서를 옮긴다.
        2. 입력 모드로 바꾸기 위한 명령을 사용한다.
        3. 데이터를 입력한다.
        4. 명령 모드로 바꾸기 위해 ESC를 누른다
    • 커서 이동


    • 화면 이동
      • vi는 화면에 알맞을 만큼만 편집 버퍼의 내용을 보여줌
      • 화면에 나타나지 않은 편집 버퍼의 다른 부분을 보기 위해서 화면을 이동 하는 명령을 사용함
    • 패턴 검색
      • 명령 모드에서 “ / ” 혹은 “ ? ”을 사용
        • /search_pattern → 커서 이후에 대해 검색을 수행함
        • ?serach_pattern → 커서 이전에 대해 검색을 수행함
    • 줄 번호
      • 편집 버퍼에 있는 각 줄에 번호 부여,관리
      • 줄 번호 붙이기
        • : set number
        • : se nu
      • 줄 번호 없애기
        • : set nonumber
        • : se nonu
      • 줄 번호 알 경우, 줄 이동
        • nG  →  줄 번호 n으로 이동하기 (:n)
        • 1G  →   편집 버퍼의 첫 줄로 이동하기 (:1)
        • G  →  편집 버퍼의 마지막 줄로 이동하기 (:$)
    • ☆ 입력 모드 변환
      • 데이터 입력 사용되는 명령
    • ☆ 내용 수정
      • 현재 커서를 중심으로 파일의 내용을 수정하는 명령어들 ( “r”을 제외하고는 명령 수행 후 입력 모드로 변경 )
    • 되돌리기, 반복
      • UNDO: 방금 전에 수행했던 내용을 취소
      • REDO: 방금 전에 수행했던 내용을 반복 수행
    • 줄 결합
      • 현재 줄과 다음 줄을 하나의 줄로 결합
    •  데이터 삭제
      • 편집 버퍼에 있는 데이터를 삭제하는 명령 (명령 모드에서 동작)
    • 버퍼 내용 집어 넣기
      • 마지막으로 삭제한 내용(버퍼 내용)을 집어 넣는다(Put 한다). → Windows에서 Cut & Paste와 개념이 유사함
      • 명령 모드에서 수행되며, 명령어 수행 후에도 명령 모드로 남는다
    • 줄 복사
      • 줄 내용 복사  ☞  :from,to y (from줄에서 to줄까지를 버퍼에 복사함)
      • nY: 현재 위치에서 n줄을 버퍼에 복사함
    • 파일 저장
      • 현재까지 편집(editing)한 내용(편집 버퍼에 들어있는 내용)을 파일에 저장(write)

 

반응형