본문 바로가기

리눅스

VI 편집기

vi 편집기는 유닉스 계열에서 가장 많이 사용하는 문서 편집기 (Visual editor)입니다. 

 

저도 회사 생활을 하다 보니 자연스럽게 터미널 모드에서 작업을 많이 하게 되었고 특히 vi, vim으로 리눅스에서 편집하기 시작했습니다.

 

vi 명령어를 숙지 하시면 터미널에서 편집을 할 때 많이 유용하 실 겁니다. 

 

 

흔한 vi 화면

 

이동

vi 에서는 h, j, k.i 단축키로만 커서 이동이 가능하지만, Vim에서는 화살표로도 이동이 가능합니다. 

사실 vim이 사용이 좀더 편하지만 서버에서 vim 도 설치가 안되어 있는 환경도 있습니다. 

 

 

입력 모드  
   
   
   
   
   
   
   
   
   
   
   

 

i, a, o 등 아래의 명령어를 누르면 입력이 가능합니다.

입력 모드에서 돌아가고 싶다면 ESC를 누르면 됩니다.

 

i 커서 왼쪽에서 편집 모드 변경
a 커서 오른쪽에서 편집 모드 변경
I 커서가 있는 행의 처음에서 편집 모드 변경
A 커서가 있는 행의 끝에서 편집 모드 변경
o 커서 아래에 한 줄 삽입하며 편집 모드 변경
O 커서 위에 한 줄을 삽입하며 편집 모드 변경

삭제

명령 모드에서 사용 가능합니다.
삭제명령어 중에 d를 입력하는 명령어가 있는데, d는 삭제명령으로 다음과 같은 형식으로 사용합니다.

 

x 커서 위치의 한 문자 삭제
dw 커서에서 한 단어의 끝까지 삭제(공백 포함)
de 커서에서 한 단어의 끝까지 삭제(공백 미포함)
d$ 커서에서 그 라인의 끝까지 삭제
dd 한 줄 전체 삭제(dd 또는 [횟수]dd만 가능)

취소

명령모드에서 사용 가능합니다.

단축키 설명

u 이전 행동 취소
U 해당 라인에서 수정한 내용을 모두 취소
Ctrl + R 취소한 내용을 다시 실행

 

복사 & 붙여 넣기

명령 모드에서v를 누르면 visual mode로 동작합니다. v는 문자 단위로 선택이 되며,
V는 줄 단위로 선택할 수 있습니다.

화살표 키를 이용해 복사하고자 하는 블록을 선택합니다. 그리고 y를 누르면 해당 블록을 복사할 수 있습니다.
또는, yy키를 현재 커서가 있는 행의 내용을 복사할 수 있습니다.

vi는 사용자가 삭제 명령(d)을 실행하면 버퍼에 방금 삭제한 내용을 저장합니다.

위와 같이 복사를 하고 나서 붙여 넣고자 한다면 붙여 넣을 위치로 커서를 이동한 후, p 를 누르면 붙여 넣기가 됩니다. 보통 커서뒤로 붙여지기가 되며, dd 명령어로 한 줄을 삭제했다면 커서 아래줄에 붙여넣기가 됩니다.

 

치환(대체)

명령 모드에서 명령어를 사용하게 되면 편집 모드로 변경이 되어서 입력된 글자를 덮어쓸 수 있습니다.

단축키 설명

r 커서 위치의 한 글자를 변경
R 하나 이상의 글자를 변경
s/대상/변경문자/g 해당 라인에서 처음으로 일치하는 대상 변경
#,#s/대상/변경문자/g #,# = 첫번째 # 라인부터 두번쨰 # 라인까지 일치하는 대상 변경
%s/대상/변경문자/g 전체 파일에서 일치하는 모든 대상을 변경

바꿀 때마다 확인을 하고 싶다면 /gc로 사용합니다.

 

검색

명령 모드에서 사용 가능합니다.

단축키 설명

/검색어 해당 검색어로 검색
n 같은 검색어 다시 찾기
N 같은 검색어 반대 방향으로 다시 찾기
?검색어 해당 검색어를 역방향으로 검색
% 커서 위치의 괄호((, [, {) 찾기

괄호 찾기

명령 모드에서%를 입력하면 커서 위치의 괄호((, [, {)의 짝을 찾을 수 있습니다.

 

저장 & 종료

명령 모드에서 사용 가능하며, 파일을 저장하거나 종료할 때 사용합니다.

단축키 설명

:q vi 종료(파일이 수정되었으면 에러 발생)
:q! 저장하지않고 종료
:w 파일명 해당 파일명으로 저장
:#,# w 파일명 #,# 범위의 라인을 해당 파일명으로 저장
:r 파일명 현재 파일의 커서위치에 해당 파일명으로 입력한 파읽을 읽음

 

 

'리눅스' 카테고리의 다른 글

Ubuntu CUI(Text mode) 설정하기  (0) 2021.11.18
apt install 오류  (0) 2021.11.16
ESXi 스토리지 드라이브 유형 변경  (0) 2021.03.23
ESXi vsphere 7.0 설치 오류  (0) 2021.03.23