vi 소개
vi(visual display editor)는 리눅스의 대표적인 텍스트 에디터로서, 가볍고 빠르기 때문에 리눅스/유닉스 환경에서 기본적으로 제공하고 있는 도구 중의 하나입니다.
vim(VI iMproved)은 기본 vi에 비해 향상된 기능을 제공하는 텍스트 에디터입니다.
vi 모드에 대한 이해
vi에는 크게 세 가지의 모드가 있습니다.
- 명령 모드(Command) : 커서 이동, 삭제, 수정, 복사와 붙여넣기 등과 같은 일반적인 기능을 사용할 수 있는 모드입니다.
- 입력 모드(Input) : 실제 텍스트를 입력할 수 있는 상태로서, 명령 모드에서
a
,i
,o
와 같은 키를 누르면 입력 모드로 전환합니다. 다시 명령 모드로 전환하려면ESC
키를 누르면 됩니다. - ex 모드 : 명령 모드에서
:
키를 누르면 ex 모드로 전환됩니다. 파일 저장, 종료, 특정 행으로 이동하기 등의 작업을 할 수 있습니다.ESC
키를 누르면 명령 모드로 전환됩니다.
편집 시작하기
아래와 같이 입력하여 vi로 편집을 시작합니다.
vi 파일명
vi 화면 구성 설명
- 화면 왼쪽에
~
표시는 해당 행이 비어 있다는 의미입니다.
기능키
명령 모드에서 사용하는 기능키
입력 모드로 전환하는 텍스트 입력키
키 | 기능 |
---|---|
a | 커서 위치의 다음 칸부터 입력하기(append) |
A | 커서가 있는 줄의 끝부터 입력하기 |
i | 커서 위치부터 입력하기 |
I | 커서가 있는 줄의 맨 앞에서부터 입력하기 |
o | 커서 바로 아래에 줄을 만들고 입력하기(open line) |
O | 커서 바로 위에 줄을 만들고 입력하기 |
s | 커서가 있는 단어를 지우고 입력하기 |
S | 커서가 있는 행을 지우고 입력하기 |
텍스트 삭제
키 | 기능 |
---|---|
dw | 한 단어를 삭제 |
d0 | 커서 위치부터 줄의 처음까지 삭제 |
dd | 커서가 있는 줄을 삭제 |
텍스트 복사/붙여넣기
키 | 기능 |
---|---|
yw | 커서 위치부터 단어의 끝까지 복사하기 |
y0 | 커서 위치부터 줄의 처음까지 복사하기 |
y$ | 커서 위치부터 줄의 끝까지 복사하기 |
yy | 커서가 있는 줄을 복사하기 |
yj | 커서가 있는 줄과 그 다음 줄을 복사하기 |
yk | 커서가 있는 줄과 그 앞줄을 복사하기 |
p | 커서의 다음 위치에 붙여넣기 |
P | 커서가 있는 위치에 붙여넣기 |
작업 취소, 반복
키 | 기능 |
---|---|
u | 작업 취소하기 |
U | 그 줄에 행해진 작업 모두 취소하기 |
. | 조금 전에 했던 명령을 반복하기 |
텍스트 검색
키 | 기능 |
---|---|
/ | 현재 커서를 기준으로 앞에 있는 텍스트를 검색 |
? | 현재 커서를 기준으로 뒤에 있는 텍스트를 검색 |
n | 같은 방향으로 검색할 텍스트를 계속 검색 |
N | 반대 방향으로 검색할 텍스트를 계속 검색 |
/엔터키 | 앞쪽으로 계속 검색 |
?엔터키 | 뒤쪽으로 계속 검색 |
ex 모드에서 사용하는 명령어
키 | 기능 |
---|---|
:q | 아무런 변경도 하지 않았을 때 종료하기 |
:q! | 변경된 내용을 저장하지 않고 강제 종료하기 |
:wq | 저장하고 종료하기(write and quit) |
😡 | wq와 동일 |
:w 파일명 | 파일명으로 파일을 저장 |
참고
- 리눅스 서버를 다루는 기술, 신재훈