Vim 명령어, IdeaVim

2 minute read

vim에 익숙해져보기로 한다.

서버 작업을 할때 vim을 쓰긴하지만, 간단한 명령어만 사용할 줄 알고 있어서 간혹 불편한 경우가 있었다.

vim을 잘 사용할줄 안다면, 코딩할때도 훨씬 효율적이라는 말에 혹해서 공부해보기로 한다.

먼저 vim에 대해 간략히 알아보자면, 1976년 William Nelson Joy가 문서 편집기인 Visual Editor (vi)를 만들었고,

이후 1991년 Bram Moolenaar가 vi와 호환되는 vi improved (vim)를 만들게 되었다.

오늘날 MAC, Linux와 같은 OS는 vim이 기본적으로 내장되어 있는데,

기본적으로 alias가 설정되어 있어, vi 또는 vim으로 실행 할 수 있다.

vim는 다양한 모드가 있는데, 명령모드, 입력모드, 라인모드, 비주얼 모드가 있다.

  1. 명령 모드 (Command Mode) - vim에 들어왔을 때 첫 모드가 바로 명령 모드이다.

    방향키를 사용해 커서 이동을 할 수 있으나, 기본적으로 h j k l 키를 사용해 이동한다.

    w b 와 같이 한개 단어씩 이동하는 명령어를 사용하는 모드이다.

  2. 입력 모드 (Insert Mode) - 텍스트 입력을 하는 모드이다.

    현재 커서 위치에서 모드 변경을 하려면 i 커서 뒤에서 모드 변경을 하려면 a 입력을 완료해 명령모드로 돌아가려면 esc를 누른다.

  3. 라인 모드 (Line Mode) - 텍스트를 저장하거나, 종료 뿐만 아니라 라인 수 표시, 인코딩 변경, 검색 등의 다양한 기능이 있는 모드이다.

    : / ? 와 같은 키로 진입 할 수 있다.

  4. 비주얼 모드 (Visual Mode) - 입력 모드에서 v를 눌러 진입한다. 진입하면

내가 사용하는 IDE IntelliJ에서 플러그인을 설치해 보았다.

스크린샷 2022-08-21 오후 1.01.06.png

플러그인을 설치하고 IntelliJ를 재기동하면, 아래와 같이 명령 모드로 변경 된다.

이제 Iterm2와 동일한 환경이 되었다.

Untitled

Untitled

설치가 완료 되었으니, 명령어를 익혀보자.

vim을 설치하면 빔 길잡이가 동봉되어 설치된다.

터미널에서 vimtutor를 입력하면 아래와 같은 가이드 문서가 나오는데,

그렇게 길지 않으니 차근차근 읽어보면서 실습하도록 한다.

스크린샷 2022-08-21 오후 8.43.06.png

입력 모드 전환 명령어

모드 전환 설명
i 현재 커서가 위치한 곳에서 입력 모드로 전환
a 현재 커서가 위치한 곳 뒤에서 입력 모드로 전환
o 현재 커서가 위치한 곳 다음 라인에서 입력 모드로 전환
O 현재 커서가 위치한 곳 이전 라인에서 입력 모드로 전환

비주얼 모드 전환 명령어

모드 전환 설명
v 비주얼 모드 전환
V 라인 단위 비주얼 모드 전환
ctrl + v 블럭 단위 비주얼 모드 전환

이동 명령어

이동 설명
h 좌측 커서 이동
j 위측 커서 이동
k 아래측 커서 이동
l 우측 커서 이동
w 다음 단어의 첫 번째 글자로 이동
b 이전 단어의 첫 번째 글자로 이동
gg 맨 위 라인으로 이동
G 맨 마지막 라인으로 이동
ctrl + d 현재 커서가 위치한 곳에서 반 페이지 아래로 이동
ctrl + u 현재 커서가 위치한 곳에서 반 페이지 위로 이동
$ 문장 맨 뒤로 이동
^ 문장 맨 앞으로 이동
> 들여쓰기
> 내어쓰기

제거 명령어

제거 설명
x 현재 커서가 위치한 곳의 한 글자 제거
dw 현재 커서가 위치한 곳의 다음 단어 제거
db 현재 커서가 위치한 곳의 이전 단어 제거
dd 현재 커서가 위치한 곳의 라인 제거

복사 / 붙여넣기 명령어

복사/붙여넣기 설명
yy 현재 커서가 위치한 곳의 라인 전체 복사
p 붙여넣기

대치 명령어

대치 설명
~ 현재 커서가 위치한 문자의 대소문자 변경
r 현재 커서가 위치한 문자를 다른 한 글자로 대치 (replace)
R r과 동일하나 여러 글자를 대치
J 다음 라인을 현재 라인 끝으로 대치

취소 명령어

취소 설명
u Undo
ctrl + r Redo

라인 명령어

명령어 설명
:set number 라인 출력 (nu로 축약 가능)
:{line number} {line number}로 이동
:set encoding={encoding} 편집기 내에서 encoding 변경
/{검색어} 아래로 검색
?{검색어} 위로 검색
:s/{old text}/{new text} 현재 커서가 위치한 라인 중
{old text} → {new text} 치환
:%s/{old text}/{new text}/gc 전체 내용 중
{old text} → {new text} 치환
g : global
c : confirm
:v/{text}/d {text} 포함된 라인만을 출력
u로 복귀  
:w 저장
:w {file name} {file name}으로 다른 이름 저장
:w » {file name} {file name}에 덧붙여서 저장
:w! 강제 저장
:q 종료
:q! 강제 종료 (작업 내용 저장하지 않음)

출처

Vim 단축키 정리 :: Outsider’s Dev Story

Tags: , ,

Categories: , ,

Updated:

Leave a comment