바다와 별과 시 2025. 2. 6. 17:49

vi 에디터 사용 방법

 

[ ‘vi’란 무엇인가 ]

  • 리눅스 에디터로는 대표적으로 vi와 vim이 있음
  • vim은 vi improved의 약자로, vi를 보다 편리하게 향상시킨 것이라고 함
  • vim과 vi의 가장 큰 차이는 vim은 에디터 상에서 화살표 방향키로 커서의 이동이 가능하지만, vi는 방향키가 아닌 h,j,k,l 키를 이용해서 커서를 이동시킬 수 있다고 함

리눅스 vi 환경의 예 (자료출처: CellStream 웹사이트)

 

 

[ ‘vi’의 세 가지 모드 ]

‘vi’ 에디터는 기본적으로 명령 모드, 입력 모드, 콜론 모드가 있음

 

  • 명령 모드 (command mode) : vi를 실행시키면 가장 먼저 접하는 모드로 커서의 이동, 수정, 삭제, 복사 등을 수행함
  • 입력 모드 (insert mode) : 입력 모드 전환키인 i, a, o, I, A, O 등을 입력하면 입력 모드로 전환되고, 명령 모드로 다시 전환하려면 esc 키를 누르면 됨. 편집 모드, input 모드, insert 모드 등으로 불리며, 메모장처럼 문서를 편집할 수 있는 모드임. 명령 모드에서 입력 전환키를 눌러서 전환하면 화면 아래에 '--INSERT--'라고 표시됨
  • 콜론 모드 : 명령 모드에서 콜론(:) 키를 눌러 전환 할 수 있음. 화면 맨 아랫줄에서 명령을 수행하는 모드로 저장, 종료, 탐색, vi 환경 설정 등의 역할을 하는 모드임

[ ‘vi’ 구성 ]

‘vi’ 에디터 구성을 아래에 간략히 나타내었음

vi 구성의 예 (자료출처: zeesoo 님의 블로그)

 

[ 명령어: ‘명령모드에서 입력모드로 전환 ]

a : 현재 커서 다음 칸부터 입력

A : 현재 커서의 줄 맨 마지막 부터 입력

i : 현재 커서 위치부터 입력

I : 현재 커서줄의 맨 앞부터 입력

o : 현재 커서의 다음 줄에 입력

O : 현재 커서의 이전 줄에 입력

s : 현재 커서 위치의 한 글자를 지우고 입력

S : 현재 커서의 한 줄을 지우고 입력

 

[ 명령어: ‘입력모드에서 명령모드로 전환 ]

ESC

 

[ 명령어: 커서 이동 ]

h : 커서를 왼쪽으로 한칸 이동 ( )

j : 커서를 아래로 한 칸 이동 ( )

k : 커서를 위로 한 칸 이동 ( )

l : 커서를 오른쪽으로 한 칸 이동 ( )

w : 다음 단어의 첫 글자로 이동

b : 이전 단어의 첫 글자로 이동

G : 마지막 행으로 이동

:숫자 : 지정한 숫자 행으로 이동

Ctrl + f : 다음 화면으로 이동 ( Page Down과 같음 )

Ctrl + b : 이전 화면으로 이동 ( Page Up과 같음 )

Ctrl + d : 스크롤 중간 정도 내리기

 

[ 명령어: 되돌리기 ]

u : Ctrl + z 와 같은 기능

 

[ 명령어: 다시실행 ]

Ctrl + r : 되돌리기 한 것을 다시 실행하기

 

[ 명령어: 삭제 ]

x : 커서에 있는 글자 삭제

X : 커서 앞에 있는 글자 삭제

dw : 커서를 기준으로 뒤에 있는 단어 삭제(커서 포함)

db : 커서를 기준으로 앞에 있는 단어 삭제

dd : 커서가 있는 줄 삭제

 

삭제 명령어 앞에 숫자를 붙이면 숫자만큼 삭제를 한다.

삭제된 내용은 버터에 저장되어 붙여넣기가 가능함

ex) 5dd5줄 삭제

 

[ 명령어: 복사 ]

yy : 커서가 있는 줄 복사

yw : 커서를 기준으로 뒤에 있는 단어 복사(커서 포함)

yb : 커서를 기준으로 앞에 있는 단어 복사

 

복사 명령어 또한, 앞에 숫자를 붙이면 복사할 숫자를 정할 수 있다.

 

[ 명령어: 붙여넣기 ]

p (소문자) : 커서 다음에 붙여넣기

P (대문자): 커서 이전에 붙여넣기

 

[ 명령어: 찾기 ]

/문자열 : 앞에서 부터 문자열을 찾는다

?문자열 : 뒤에서 부터 문자열을 찾는다

n : 뒤로 검색

N : 앞으로 검색

 

[ 명령어: 바꾸기 ]

:%s/찾을단어/바꿀단어 : 각 행의 처음 나오는 찾을단어를 찾아 바꿀단어로 바꾼다.

:%s/찾을단어/바꿀단어/g : 모든 찾을 단어를 찾아 바꿀 단어로 바꾼다.

:%s/찾을단어/바꿀단어/gc : 모든 찾을단어를 바꿀단어로 바꾸기전에 물어본다.

 

[ 명령어: 저장 및 종료하기 ]

:q : 종료 (저장하지 않고 실행하면 오류 발생)

:q! : 저장하지 않고 종료

:w : 저장

:wq : 저장 후 종료

:wq 파일 이름 : 저장후 파일 이름 지정

 

[ 명령어: 기타 기능들 ]

:set number : 행 번호를 출력 ( :set nu 라고도 한다)

:set nonumber : 행 번호 숨김 (:set nonu 라고도 한다)

:cd : 현재 디렉토리 출력

 

 

[ 자료 출처 ]

웹사이트

https://www.cellstream.com/download/vi-editor-cheat-sheet/

블로그

zeesoo 님의 블로그: https://velog.io/@zeesoo/Linux-vi-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EB%AA%85%EB%A0%B9%EC%96%B4

eunji 님의 블로그: https://eunji-study.tistory.com/12

 

본 게시글은 관리자의 학습과 복습을 위한 것으로, 독자의 코멘트 혹은 스스로의 학문 정진에 따라, 보다 올바른 정보를 통해 언제든지 업데이트될 수 있음