One Step Two Step
[Linux] 리눅스의 필수 도구, vi 편집기 완벽 가이드 본문
반응형
- 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! → 강제 종료
- 일반 모드 (Normal Mode)
- vi 시작 ☞ "vi 파일명", vi hello.txt


- vi 종료 ☞ :q → 종료, :wq → 저장 후 종료, :q! → 강제 종료, zz → 작업 내용을 저장하고 종료(Shell prompt로 복귀)

- vi 명령어 사용 전략
- 편집 버퍼(화면)에 데이터를 넣을 때 단계
- 데이터를 쓰고 싶은 곳으로 커서를 옮긴다.
- 입력 모드로 바꾸기 위한 명령을 사용한다.
- 데이터를 입력한다.
- 명령 모드로 바꾸기 위해 ESC를 누른다
- 편집 버퍼(화면)에 데이터를 넣을 때 단계
- 커서 이동



- 화면 이동
- vi는 화면에 알맞을 만큼만 편집 버퍼의 내용을 보여줌
- 화면에 나타나지 않은 편집 버퍼의 다른 부분을 보기 위해서 화면을 이동 하는 명령을 사용함

- 패턴 검색
- 명령 모드에서 “ / ” 혹은 “ ? ”을 사용
- /search_pattern → 커서 이후에 대해 검색을 수행함
- ?serach_pattern → 커서 이전에 대해 검색을 수행함
- 명령 모드에서 “ / ” 혹은 “ ? ”을 사용
- 줄 번호
- 편집 버퍼에 있는 각 줄에 번호 부여,관리
- 줄 번호 붙이기
- : set number
- : se nu
- 줄 번호 없애기
- : set nonumber
- : se nonu
- 줄 번호 알 경우, 줄 이동
- nG → 줄 번호 n으로 이동하기 (:n)
- 1G → 편집 버퍼의 첫 줄로 이동하기 (:1)
- G → 편집 버퍼의 마지막 줄로 이동하기 (:$)

- ☆ 입력 모드 변환
- 데이터 입력 사용되는 명령

- 데이터 입력 사용되는 명령
- ☆ 내용 수정
- 현재 커서를 중심으로 파일의 내용을 수정하는 명령어들 ( “r”을 제외하고는 명령 수행 후 입력 모드로 변경 )

- 현재 커서를 중심으로 파일의 내용을 수정하는 명령어들 ( “r”을 제외하고는 명령 수행 후 입력 모드로 변경 )
- ☆ 되돌리기, 반복
- UNDO: 방금 전에 수행했던 내용을 취소
- REDO: 방금 전에 수행했던 내용을 반복 수행

- 줄 결합
- 현재 줄과 다음 줄을 하나의 줄로 결합

- 현재 줄과 다음 줄을 하나의 줄로 결합
- ☆ 데이터 삭제
- 편집 버퍼에 있는 데이터를 삭제하는 명령 (명령 모드에서 동작)

- 편집 버퍼에 있는 데이터를 삭제하는 명령 (명령 모드에서 동작)
- 버퍼 내용 집어 넣기
- 마지막으로 삭제한 내용(버퍼 내용)을 집어 넣는다(Put 한다). → Windows에서 Cut & Paste와 개념이 유사함
- 명령 모드에서 수행되며, 명령어 수행 후에도 명령 모드로 남는다

- 줄 복사
- 줄 내용 복사 ☞ :from,to y (from줄에서 to줄까지를 버퍼에 복사함)
- nY: 현재 위치에서 n줄을 버퍼에 복사함
- 파일 저장
- 현재까지 편집(editing)한 내용(편집 버퍼에 들어있는 내용)을 파일에 저장(write)
반응형
'복습 > Linux' 카테고리의 다른 글
| [Linux] 폴더와 같은 리눅스의 디렉터리 그리고 파일 (0) | 2026.03.08 |
|---|---|
| [Linux] 기본 명령어 gogogo (0) | 2026.03.08 |
| [Linux] 기초 입문: 명령어, 쉘 프롬프트, 간단한 명령어 총정리 (0) | 2026.03.06 |