YYYEJI

[Linux] vim/vi 명령어 정리 본문

Linux

[Linux] vim/vi 명령어 정리

YEJI ⍢ 2022. 7. 18. 16:37
728x90

 

리눅스도 다른 운영체제처럼 파일을 작성하거나 수정하기 위한 편집기가 필요합니다.

다양한 편집기 중에서 오늘은 vi에 대해 알아보겠습니다.

 

vim/vi에 대해 조금만 더 설명을 해드리겠습니다.

vi은 명령이 매우 단순하여 빠르게 편집할 수 있어서 널리 사용되는 화면 단위 편집기입니다.

글자를 입력하고 수정하는 방법이 일반 GUI 편집기와는 다르기 때문에 다소 불편하실 수 있습니다.

밑에 나오는 설명을 통해서 조금이라도 vim/vi에 익숙해졌으면 좋겠습니다.

< vi 사용법 >

vim/vi 주요 모드에는 3가지가 있습니다.

입력 모드(insert mode) - 입력한 키를 내용으로 처리하는 모드

시각 모드(visual mode) - 입력한 키를 명령으로 해석하는 모드

마지막 행 모드(command mode) - 특별 명령 처리하는 모드

 

또다른 모드 하나는 일반모드 입니다.

일반 모드는 위에 모드를 들어가기 전 모드 즉, vi을 시작한 상태입니다.

다른 모드를 사용하다가 일반 모드로 돌아오기 위해서는 [ESC]를 누르면 됩니다.

 

 

 

 

 

< vi/vim 명령어 >

vi 사용하기

$ vi test.txt

vi 초기 화면

 

vi 종료하기

 

:q    vi에서 작업한 것이 없을 때 그냥 종료
:q!    작업한 내용을 저장하지 않고 종료 (!는 강제의 의미)
:w [file_name]    작업한 내용을 저장만 하고 파일명까지 입력하면 새 파일로 저장
:wq or :wq! or shift + zz    작업한 내용을 저장하고 vi를 종료

콜론(:) 입력하고 원하는 명령어 입력

 

 

일반 모드에서 Copy / Paste

 

yy    현재 라인 복사
3yy    현재 커서에서 3라인 복사
p (lowercase)    현재 커서 아래 붙여넣기
P (Uppercase)    현재 커서 위에 붙여넣기 

 

 

일반 모드에서 Delete / Undo(실행 취소) / Redo(재실행)

 

x    현재 커서 위치에 있는 한 글자 지우기
dw    현재 커서에 있는 한 단어 지우기
dd    현재 라인 지우기
3dd    현재 커서부터 3라인 지우기
u (lowercase)    마지막 명령어 취소
U (Uppercase)    해당 줄 전체의 수정사항 취소
Ctrl + r    redo 기능

 

 

일반 모드에서 Replace / Move

 

r    한 글자 수정하기
cw    현재 커서에 있는 단어를 변경할 때 사용 (삭제 후 입력)
c$    해당 줄 전체를 변경할 때 사용 (삭제 후 입력)
E    현재 라인의 끝으로 이동 ($도 동일)
G    파일의 끝으로 이동
gg    파일의 처음으로 이동
3G    3번째 라인으로 이동

 

 

일반 모드에서 Find / Search / Replace

 

/keyword    원하는 Keyword 검색
?keyword    원하는 keyword를 역방향으로 검색
n (lowercase)    검색 결과에서 다음 문자열 찾기
N (Uppercase)    검색 결과에서 이전 문자열 찾기
:%s/old/new/g    찾는 단어를 새 단어를 파일에서 전체 (globally) 변경
:%s/old/new/gc    사용자에게 물으며 변경
:%s/old/new/i    대소문자 구분 없이 검색
:#,#s/old/new/g    줄 번호(#) 사이의 찾는 단어를 새 단어로 모두 변경

 

 

Insert mode에서 사용할 수 있는 명령어

 

i (lowercase)    현재 커서 앞에서 편집 시작
I (Uppercase)    커서가 위치한 행의 첫 칼럼으로 이동하여 편집 시작 (Upper case 'i')
a (lowercase)    현재 커서 다음부터 편집 시작
A (Uppercase)    커서가 위치한 행의 마지막 칼럼으로 이동하여 편집 시작
o (lowercase)    커서가 위치한 행의 다음 행부터 편집 시작
O (Uppercase)    커서가 위치한 행의 이전 행부터 편집 시작

 

 

Visual mode에서 사용할 수 있는 명령어

 

v (lowercase)    현재 커서 위치에서부터 문자 단위로 선택 가능
V (Uppercase)    현재 커서 위치에서부터 라인 단위로 선택 가능
Ctrl + v    현재 커서를 기준으로 블록 선택 가능
p (lowercase)    복사된 데이터를 현재 위치에 붙여넣기
P (Uppercase)    복사된 데이터를 마지막 라인에 붙여넣기 

 

 

Command mode에서 사용할 수 있는 명령어

1. 여러 파일 열기

:vs filename    수직으로 창 나누고 읽어옴
:split filename    수평으로 창 나누고 읽어옴
Ctrl + ww    다른 창으로 이동

 

2. 외부 명령어 실행하기 

:! command[enter] - 쉘 명령어 실행 후 vim 복귀

Ex) 현재 작업하고자 하는 파일의 이름을 알고자 할 때 잠깐 나가서 ls를 실행하고 싶을 때 쓰는 명령어 -> :! ls

 

 

Insert mode에서 커서 이동하기

 

h - 커서를 한 글자 왼쪽으로 이동

j - 커서를 한 행 아래로 이동

k - 커서를 한 행 위로 이동

l - 커서를 한 글자 오른쪽으로 이동

 

 

 

 

◡̈