Linux

Vim 필수 기능 정리

cwchoiit 2023. 12. 27. 15:04
728x90
반응형
SMALL

Vim(Vi Improved)는 텍스트 기반의 아주 아주 유명한 에디터인데, 은근 많이 사용되고 꽤나 유용하기 때문에 알아두면 좋을 것 같다. 근데 아무리 알아둔다고 해도 안 쓰고 시간이 지나면 자꾸 까먹어 가지고 정리를 하고자 한다.

728x90
SMALL

 

설정 파일 (없으면 만들면 된다)

~/.vimrc

 

컬러 스키마나 플러그인 관련 데이터 파일 경로

~/.vim/autoload ~/.vim/backup ~/.vim/colors ~/.vim/plugged
$ cd ~/.vim/colors

$ curl -o molokai.vim https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim

 

 

우선 Vim은 여러 모드(Mode)가 있다. 이 여러가지 모드들부터 살펴보자.

Vim 여러 가지 모드

Mode Description
Normal Mode Vim 시작 시 모드
Insert Mode i, a, o 등의 명령어로 삽입 모드 진입 (쓰기 모드)
Visual Mode visual line/block 을 지정해서 동작하는 모드
Select Mode 선택 영역을 바로 수정 (거의 쓰이지 않음)
Command-line Mode ':', '/', '?', '!' 으로 명령 수행
Ex Mode Ex mode(Ex라는 툴의 기능을 말하는데 요즘은 거의 쓰이지 않음)
Terminal-job Mode :terminal 명령으로 vim 창에서 터미널 실행(예: bash)

 

여러 모드의 대표적인 예시를 하나씩 알아보자면 (이후에 더 자세히 알아볼거다) 우선, Normal Mode를 보자.

Normal Mode는 VI로 파일을 최초로 열었을 때의 모드이다. 다른 말로 아무런 모드도 아닌 모드이다.

 

Insert Mode는 이제 쓰기 모드가 된다. 입력, 수정, 삭제가 가능해지는 모드가 된다.

이 Insert Mode로 들어가려면 Normal Mode에서 'i'를 입력하면 하단에 --INSERT-- 라는 표시가 띄워진다. 이 상태가 Insert Mode이다. 다음 사진처럼 말이다.

 

Visual Mode는 Block을 지정해서 수정할 수 있는 모드라고 기억하면 좋을 것 같다. 예를 들어 여러 문장을 한번에 지우고 싶을 때 일반적으로 그 전체 라인을 마우스로 드래그&드랍을 하면 블록으로 포커싱이 되고 지울 수 있는 것처럼. 이 Visual Mode로 들어가려면 Normal Mode에서 'v'를 누르면 하단에 --VISUAL-- 이라고 표시가 된다. 이 때가 Visual Mode이다.

 

위 사진처럼 VISUAL 모드일 때 화살표로 위아래로 움직이면 블록으로 포커싱이 되는데, 이 블록으로 포커싱 됐을 때 만약 저 블록만큼 날리고 싶으면 'x'를 누르면 날라간다. 그리고 행한 작업에 대해 다시 돌리고 싶으면(Undo) 'u'를 누르면 다시 복원된다.

 

이제 Command-line Mode인데 이건 리눅스에서 여러 명령어를 사용하는 것처럼 이 Vim 에서도 사용할 수 있다. 예를 들면, 특정 키워드를 찾고 싶으면 /키워드 를 입력 후 엔터를 치면 그 키워드가 있는 경우 그 곳으로 포커싱된다. 다음 사진처럼 말이다.

 

 

이동

Vim 에디터에서 커서 이동화면 이동에 대한 내용이 있는데, 이 이동에 대한 단축키를 알면 꽤나 유용하다. 화살표보다 훨씬 유용하다.

여러 단축키가 있는데 내가 자주 사용하고 유용하다 생각하는 것만 정리하겠다.

 

커서 이동

Key Description
0 라인 시작으로 이동
f + '찾고자 하는 단어' (예: f + p, f + i, f + 3,...) 현재 라인에서 커서 기준 뒤쪽에 제일 가까이에 있는 '찾고자 하는 단어'로 커서 이동
F + '찾고자 하는 단어' 현재 라인에서 커서 기준 앞쪽에 제일 가까이에 있는 '찾고자 하는 단어'로 커서 이동
$ 라인 끝으로 이동
G 파일의 마지막 줄로 이동
gg 파일의 첫 줄로 이동
:라인넘버 입력한 라인넘버로 이동(예: ":55 + Enter" 하면 55번 라인으로)
/searchTerm 입력한 단어를 찾아준다. (예: "/provider" 입력하고 Enter하면 해당 단어가 있으면 찾아준다. 여러개 있는경우 n: Next N: Previous)

 

화면 이동

Key Description
ctrl + f 한 페이지 앞으로
ctrl + b 한 페이지 뒤로
ctrl + e 화면 한 줄씩 앞으로
ctrl + y 화면 한 줄씩 뒤로

 

Copy, Paste, Delete

Normal Mode에서

Key Description
dd 현재 커서의 문장 지우기
yy 현재 커서의 문장 복사
p or P P: 커서 앞에 붙여넣기
p: 커서 뒤에 붙여넣기

 

멀티 윈도우

Key Description
vim -O test.sh test2.sh Vim 실행 시 창 분할 (세로)
⌃+w v Vim 실행 후 창 분할 (세로)
⌃+w w 다음 창으로 커서 이동

 

728x90
반응형
LIST

'Linux' 카테고리의 다른 글

Hard Link / Soft Link  (0) 2023.10.04
사용자와 그룹과 파일 권한  (0) 2023.10.04
Linux란 ?  (0) 2023.10.04
[Linux]: 내가 쓰려고 기록한 유용한 Commands  (2) 2023.10.04