Linux

[Linux] vi 에디터 명령어

유제필 2022. 11. 23. 12:56

리눅스에서 기본으로 제공하는 텍스트 에디터다.

텍스트 에디터란 문자 기반으로 파일을 생성하고 수정할 수 있는 프로그램이다.

vi에디터는 UC 버클리의 BSD 유닉스용으로 개발되었지만, 거의 모든 유닉스에서 기본적으로 제공되고 있다.

vi 에디터가 개발되었던 초기의 컴퓨터(ADM-3A)는 방향키가 없고 키 배치도 현재 컴퓨터와 달라서 지금 사용하기에는 불편하다.

그래서 리눅스에서는 기존의 vi를 보다 편하게 사용하도록 성능을 개선한 vim(vi improved)을 사용한다.

$vi [{파일명}+]

$ vim [{파일명}+]

vi 에디터의 모드

vi 에디터는 크게 세 가지 모드를 가진다. 처음 실행하면 명령 모드로 실행된다.

vi 에디터는 입출력 장치의 느린 속도 문제를 해결하기 위해 버퍼를 사용하여 문서의 내용을 편집한다.

현재 편집하는 문서는 저장 명령을 사용하기 전까지는 메모리의 버퍼에서만 수정되므로 작업 취소나 변경이 자유롭다.

모드
내용
키(Key)
명령(Command) 모드
기본 명령을 수행할 수 있는 모드
Esc
편집(Edit) 모드
문자 입력과 수정을 할 수 있는 모드
a, o, i
ex(EXtended) 모드
화면의 제일 아래 행(last line)에 명령어를 입력할 수 있는 모드
;, ?. / 등

vi 에디터의 입력/편집 모드 명령어

내용
비고
i
현재 커서의 앞에서부터 문자를 입력한다.
소문자
I
현재 커서가 위치하고 있는 줄의 제일 앞부분에서부터 문자를 입력한다.
대문자
a
현재 커서의 뒤에서부터 문자가 입력된다.
소문자
A
현재 커서가 위치하고 있는 줄의 제일 뒷부분에서부터 문자를 입력한다.
대문자
o
현재 커서의 위치에서 다음 줄을 삽입하고 문자를 입력한다.
소문자
O
현재 커서의 위치에서 앞 줄을 삽입하고 문자를 입력한다.
대문자
r
현재 커서가 있는 위치의 기존 문자를 새로운 문자로 바꾸고 새로 입력되는 문자를 뒤에 추가한다.
소문자
R
현재 커서가 있는 위치부터 줄 끝까지 기존의 문자열을 새로운 문자열에 덮어쓴다.
대문자

복사 및 붙여넣기 명령어

내용
비고
yy
현재의 라인을 메모리로 복사한다. (copy)
:y
x
현재 커서 위치의 문자를 삭제하고 메모리로 복사한다.
 
dd
현재의 커서가 위치하고 있는 줄을 잘라낸다. (cut)
 
p
메모리에 복사된 내용을 현재의 위치에 붙여넣는다. (paste)
 

커서 이동 명령어

내용
비고
k or 위 방향키
현재의 커서를 한 줄 위로 이동한다.
j, + or 아래 방향키
현재의 커서를 한 줄 아래로 이동한다.
l or 오른쪽 방향키
현재의 커서를 한 문자 오른쪽으로 이동한다.
h or 왼쪽 방향키
현재의 커서를 한 문자 왼쪽으로 이동한다.
^ or 0
커서를 현재 줄의 시작 위치로 이동한다.
$
커서를 현재 줄의 마지막 위치로 이동한다.
b
현재의 커서를 한 단어 앞으로 이동한다.
w
현재의 커서를 한 단어 뒤로 이동한다.
:nn or nnG
커서를 nn번째의 줄로 이동한다.

삭제 및 변경 명령어

내용
비고
x
현재 커서의 문자를 삭제한다.
문자
r
현재 커서의 문자를 변경한다.
문자
dw
현재의 커서에서 단어를 삭제한다.
단어
cw
현재의 커서에서 단어를 변경한다.
단어
dd
현재의 커서가 위치하고 있는 줄을 삭제한다.
cc
현재의 커서가 위치하고 있는 줄을 변경한다.
D
현재 커서의 위치에서 마지막까지 삭제한다.
:<범위>d
특정 범위의 줄을 삭제한다.
 
:<범위>s/원본문자열/바꿀문자열/g
범위 내의 모든 문자열을 바꾼다.
 
:<범위> co 위치
범위 내의 줄을 위치로 복사한다.
 
:<범위> m 위치
범위 내의 줄을 위치로 이동한다.
 

검색 명령어

내용
비고
/[검색할문자열]
현재의 위치에서 문서의 끝방향으로 검색할 문자열을 찾는다.
:y
?[검색할문자열]
현재의 위치에서 문서의 앞방향으로 검색할 문자열을 찾는다.
 
n or /
이전에 검색했던 문자열을 가지고 문서의 끝방향까지 다음의 내용을 찾는다.
 
n or ?
이전에 검색했던 문자열을 가지고 문서의 앞방향까지 다음의 내용을 찾는다.
 
:[줄번호]
해당 줄 번호로 바로 이동한다.
 

저장 및 종료 명령어

내용
비고
:w [파일명]
인수로 파일명이 있는 경우 해당 파일명으로 저장하고 인수가 없으면 기존에 오픈한 파일에 편집 내용을 저장한다.
:w!
:e 파일명
새로운 파일을 오픈한다.
:r 파일명
현재의 내용에 파일명의 내용을 가져와서 제일 마지막 줄 이후로 추가한다.
:q
vi 에디터를 종료한다.
:q!
:x
편집한 내용을 저장하고 vi 에디터를 종료한다.
:wq, :ZZ, :x!

'Linux' 카테고리의 다른 글

[Linux] nano 편집기 명령어  (0) 2022.11.23
[Linux] 리눅스 기본 명령어  (0) 2022.11.23