VIM?
- 리눅스 운영체제에서 텍스트를 편집할 때 사용하는 도구로, 마우스 없이 키보드만으로 작업할 수 있도록 개발되어 있다.
- 초심자에게는 매우 어렵지만, 숙련자에게는 생산성 높은 도구로 평가받는다.
- 4가지 모드와 키마다 설정된 명령의 기능이 다양해서, vim을 사용하기 위해서는 별도로 공부해야 한다.
모드
- Normal Mode
- 각종 명령어를 사용할 수 있는 모드이다.
- 어떤 모드라도 ESC 키를 입력하면 명령모드로 전환된다.
- Command Mode
- 여러 가지 환경 설정을 변경하거나, 파일 저장 및 종료, 검색 등을 할때 사용한다.
- Normal 모드에서는 :, /, ?키를 누르면 전환된다.
- Insert Mode
- 텍스트를 편집할 수 있는 모드이다.
- Normal 모드에서 i, I, a, A, o, O를 누르면 전환되는데, 각 명령어는 아래에서 상세히 설명하겠다.
- Visual Mode
- 읽기 전용 모드로, 해당 상태에서는 드래그가 가능하다는 장점이 있다.
- Normal 모드에서 v, V를 누르면 전환된다.
명령어
- 파일 저장 및 종료
:w
라고 입력하면 파일을 저장한다.
:q!
라고 입력하면 편집한 내용을 날리고 강제 종료한다.
:wq!
라고 입력하면 편집한 내용을 저장하고 강제 종료한다.
- 스크롤
ctrl b
는 한 페이지를 위로 올리고,ctrl f
는 한 페이지를 아래로 내린다.
ctrl u
는 반 페이지를 위로 올리고,ctrl d
는 반 페이지를 아래로 내린다.
- 이동
- 글자 단위 이동
- h(◀️), j(🔽), k(🔼), l(▶️)로 커서를 이동시킬 수 있다.
- 단어 단위 이동
0
혹은^
를 입력하면 줄의 가장 앞으로 가고,$
를 입력하면 줄의 가장 뒤로 이동한다.
w
를 입력하면 다음 단어의 맨앞으로 이동하고,e
를 입력하면 현재 혹은 다음 단어의 맨뒤로 이동한다.
b
를 입력하면 이전 단어의 맨앞으로 이동한다.
- 줄단위 이동
gg
를 입력하면 맨앞으로,G
를 입력하면 맨뒤로 이동한다.
- 원하는 줄로 이동하려면 줄수와 G를 입력하면 된다.
- 10번째 줄로 이동하려면
10 G
라고 입력하면 된다.
- 10번째 줄로 이동하려면
- 글자 단위 이동
- 입력모드 전환
- insert
i
(소문자)를 입력하면, 커서 앞에 글자가 입력된다.
I
(대문자)를 입력하면, 커서가 있는 줄 앞에 글자가 입력된다.
- append
a
(소문자)를 입력하면, 커서 뒤에 글자가 입력된다.
A
(대문자)를 입력하면, 커서가 있는 줄 맨 뒤에 글자가 입력된다.
- open
o
(소문자)를 입력하면, 커서 다음 줄로 글자가 입력된다.
O
(대문자)를 입력하면, 커서 이전 줄로 글자가 입력된다.
- insert
- 지우기
- 글자 지우기
x
(소문자)를 입력하면 커서의 뒷 글자가 삭제된다. (delete 키와 유사)
X
(대문자)를 입력하면 커서의 앞 글자가 삭제된다. (backspace 키와 유사)
- 단어 지우기
- 단어에서 삭제하고 싶은 부분에 커서를 두고
dw
(delete word)를 입력하면 해당 단어부터 끝까지 삭제된다.
- 줄에서 삭제하고 싶은 곳에 커서를 두고
d0
혹은d^
를 입력하면 맨앞에서 해당 부분이 삭제된다.
- 줄에서 삭제하고 싶은 곳에 커서를 두고
D
혹은d$
를 입력하면 해당 부분에서 맨뒤까지 삭제된다.
- 단어에서 삭제하고 싶은 부분에 커서를 두고
- 줄 지우기
dd
를 입력하면 커서가 있는 한 줄이 모두 삭제된다.
- 전체 줄에서 삭제하고 싶은 곳에 커서를 두고
d gg
를 입력하면 맨앞에서 해당 부분까지 삭제된다.
- 전체 줄에서 삭제하고 싶은 곳에 커서를 두고
d G
를 입력하면 해당 부분에서 맨뒤까지 삭제된다.
- 글자 지우기
- 복사
- 단어 복사
- 복사하고 싶은 곳에 커서를 두고
yw
(yank word)를 입력하면 해당 단어부터 끝까지 복사된다.
- 줄에서 복사하고 싶은 곳에 커서를 두고
y0
혹은y^
를 입력하면 맨앞에서 해당 부분이 복사된다.
- 줄에서 복사하고 싶은 부분에 커서를 두고
y$
를 입력하면 해당 부분에서 맨뒤까지 삭제된다.
- 복사하고 싶은 곳에 커서를 두고
- 줄 복사
Y
혹은yy
를 입력하면 커서가 있는 한 줄이 모두 복사된다.
- 단어 복사
- 붙여넣기
- 단어 붙여넣기
p
(소문자)를 입력하면 커서 뒤에,P
(대문자)를 입력하면 커서 앞에 붙여넣기된다.
- 줄 붙여넣기
p
(소문자)를 입력하면 해당 줄 아래,P
(대문자)를 입력하면 해당 줄 위에 붙여넣기된다.
- 단어 붙여넣기
- 실행 취소 및 재실행
u
를 누르면 이전 작업이 실행취소되고,ctrl r
를 누르면 그 작업이 재실행된다.
- 환경 설정
- 줄수 활성화 및 비활성화
:set nu
혹은:set number
를 입력하면 줄수가 표시된다.
:set no
혹은:set nonumber
를 입력하면 줄수가 비활성화된다.
- 색상 테마 설정
:colo
를 입력한뒤tab
키를 누르면 현재 사용할 수 있는 테마가 표시된다.
:colo
혹은:color
혹은:colorscheme
뒤에${테마이름}
추가하여 원하는 테마로 변경할 수 있다.- 예를 들어,
:colo darkblue
,:color darkblue
,:colorschem darkblue
식으로 활용하면 된다.
- 예를 들어,
- 줄수 활성화 및 비활성화
- 터미널 활성화
:term
이라고 입력하면 터미널을 사용할 수 있다.
- 탭 이동시에는
ctrl w + 화살표키
를 눌러서 이동할 수 있다.
공부에 도움되는 사이트
- Vim Adventure
- 게임 형식으로 VIM 명령어를 연습할 수 있는 사이트이다.
- 레벨 3단계까지만 무료이고, 이후 6개월 기간으로 25달러를 결제하여야 한다.
- Vim Vallery
- 실제 편집 환경과 유사하게 VIM 명령어를 연습할 수 있는 사이트인데, 별도로 계정을 생성하여야 한다.
- Talk to Vim like it’s a person까지만 무료이고, 이후 단계는 39달러를 결제해야 한다.