[ Linux ] 리눅스 VI, VIM 에디터 편집 수정 단축키 정리

VI는 다른 에디터와는 다르게 명령모드, 입력모드, ex명령모드의 총 3가지 모드가 있습니다. 오늘은 명령모드에서 입력모드로 전환해서 내용을 수정하거나 화면을 검색 및 이동하는 방법과 함께 명령모드에서 간단한 단축키로 화면을 편집하는 단축키에 대해서 알아보겠습니다. 이보다 더 많은 키들이 존재하지만 정말 꼭 필요한 것들만 정리해보겠습니다. VIM은 리눅스에서도 많이 쓰이지만 인텔리제이나 안드로이드 스튜디오 같은 최신 툴을 포함한 거의 모든 툴에 추가적으로 지원하는 경우가 많습니다. VIM은 거의 모든 터미널에서 지원하며 맥에서도 기본적으로 추가되어 있습니다.

 

Vim 에디터


 

VI의 3가지 모드

  • 명령모드 -  ESC 키로 전환
  • 편집모드 - i, a, o, s 키로 전환
  • ex 명령모드 - : 키로 전환

Vim 에디터 명령모드


 

명령모드 → 입력모드 (입력가능 상태)

명령모드에서 입력모드로 전환 시 여러 방법으로 입력모드로 전환이 가능합니다. i, a, o, s 등의 키를 누르면 다음과 같이 시작하며 shift 키를 포함해서 대문자 키를 입력하면 조금 다르게 시작합니다.

i 현재 커서의 위치부터 입력 I 현재 커서 줄의 맨 앞에서부터 입력
a 현재 커서의 위치 다음 칸부터 입력 A 현재 커서 줄의 맨 마지막부터 입력
o 현재 커서의 다음 줄에 입력 O 현재 커서의 이전 줄에 입력
s 현재 커서 위치의 한 글자를 지우고 입력 S 현재 커서의 한 줄을 지우고 입력
 

 

명령모드 → 화면이동

VI에서는 마우스 스크롤을 사용할 수 없다 보니 명령모드에서 화면을 이동할 때 다음과 같은 방법으로 이동이 가능합니다. 물론 마우스로 휠 스크롤 하는게 더 편리하지만 익숙해지면 이렇게 키로 이동하는 것이 훨씬 효율적이다는 것을 알 수 있습니다. 또한 오래전에는 컴퓨터에 화살표 방향키가 없었던 때가 있었습니다. 그래서 h, k, j, l 키를 방향키처럼 쓸 수 있는데요. 이것도 생각보다 편리합니다.

h 방향키 ← j 방향키 ↓
k 방향키 ↑ l 방향키 →
ctrl + f 다음 화면으로 이동 ctrl + b 이전 화면으로 이동
^ 현재 행의 처음으로 이동 $ 현재 행의 끝으로 이동
gg 제일 첫 행으로 이동 G 제일 끝 행으로 이동
행 + G 특정 행으로 이동 : + 숫자 특정 행으로 이동

 

명령모드 → 편집

보통 일반 텍스트 편집기에서 문자를 삭제하려면 드래그해서 Delete 키를 누르거나 백스페이스를 이용해서 삭제를 합니다. 하지만 이건 조금 비효율적일 수 있는데요. VI 에디터는 삭제 수정 편집 또한 간단한 단축키로 처리가 가능합니다.

x 현재 커서가 위치한 글자 삭제 (DEL) X 현재 커서의 앞 글자 삭제 (BACKSPACE)
dd 현재 커서의 행 삭제 숫자 + dd 현재 커서부터 숫자 만큼 행 삭제
yy 현재 커서의 행 복사 숫자 + yy 현재 커서부터 숫자 만큼 행 복사
p 현재 행 이후에 붙여넣기 P 현재 행 이전에 붙여넣기
%s/기존문자열/새문자열 문자열 치환
 

Vim 수정 모드


명령모드 → 검색

보통 텍스트 에디터에서는 검색을 하면 순방향 검색으로 검색을 합니다. 즉 찾을 문자열에 다음 문자열을 찾는 방식이죠. 하지만 VI에서는 이 방향도 결정할 수 있습니다 n (next) 키를 누르면 다음 검색 지점으로 이동하면 순방향, 역방향 검색에 따라 순서대로 다음 문자열로 이동합니다.

/찾을문자열 순방향 검색 ?찾을문자열 역방향 검색
n 순방향 이동 N 역방향 이동

 

댓글

Designed by JB FACTORY