제로원:Vim

통진고위키
안중원 (토론 | 기여)님의 2020년 4월 12일 (일) 01:05 판 (새 문서: {{제로원포털}} Vim은 VI<ref>VI는 VIsual의 약자로, 한 줄씩 명령어를 내려 편집하는게 아니라 파일을 한눈에 보면서 편집한다는 의미이다. POSI...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
Vim에 관련하여 질문이 있거나 오류가 발생하면 토론 문서에 써놓으십시오. 친절한 편집자가 그에 관한 답을 달아 줄 것입니다. 유용한 답은 본 문서에 기재될 수 있습니다.
ZERO-ONE 포털
제로원.png

Vim은 VI[1] iMproved[2]의 약자로, 모든 리눅스 환경과 macOS 터미널에 설치된 텍스트 에디터이다. SSH로 접속하면 터미널 환경이기 때문에 보통 이걸로 파일을 편집한다. 다만 SSH에서는 설정 파일만 편집하고, 웹페이지나 프로그램의 소스코드는 로컬에서 편집해서 업로드하는 식으로 하도록 하자. 별 이유는 없지만 좀 불안하다. Windows에는 물론 설치되어있지 않지만, https://www.vim.org/에서 설치할 수 있다. GUI를 지원하는 gVim도 있으니 참고.

조작법

메모장을 쓰던 사람이 vim을 처음 쓰면 아무것도 안 써진다는 것을 발견할 것이다. 그러다 아무 키나 누르다보면 갑자기 또 써진다. 이는 vim이 일반 모드로 시작하기 때문이다.

vim에는 모드라는 개념이 있다. 크게 일반 모드(Normal), 편집 모드(Insert), 비주얼 모드(Visual) 이렇게 3가지 모드가 있다. 일반 모드에서는 커서 이동, 편집 모드에서는 파일 내용 입력, 비주얼 모드에서는 텍스트 선택을 주로 할 수 있다. 일반 모드에서 i 키를 누르면 편집 모드, v 키를 누르면 비주얼 모드에 들어간다. 편집 모드나 비주얼 모드에서 <Esc> 키를 누르면 일반 모드로 돌아간다.

특히 일반 모드와 비주얼 모드에서는 : 키를 눌러 명령어(Ex 모드라고도 함)를 사용할 수 있는데, 명령어를 통해 파일 열기, 저장, 찾아바꾸기 등 여러가지 동작을 할 수 있다.

일반 모드에서 /를 누르면 찾기를 할 수 있다.

아래 설명에서 <C-키>는 키를 Ctrl 키와 함께 누른다는 뜻이다.

커서 이동

vim은 기본적으로 h, j, k, l 키를 통해 커서를 움직인다. 좀 생소하지만 일단 적응하고 나면, 손을 움직일 필요가 없다는 점에서 무친 편리함과 중독성을 체험할 수 있다. 방향키도 지원하긴 하지만 vim 쓰면서 방향키 쓰는 사람은 드물듯하다. 로컬에서는 마우스도 어느정도 지원한다.

키 조합 설명
h 왼쪽으로 커서 이동
j 아래로 커서 이동
k 위로 커서 이동
l 오른쪽으로 커서 이동
<Space> 다음 글자로 이동
<Enter> 다음 줄로 이동
gg 맨 위로 이동
G 맨 아래로 이동
0 줄의 맨 앞으로 이동
$ 줄의 맨 끝으로 이동
숫자h 숫자만큼 왼쪽으로 커서 이동. j, k, l도 똑같이 할 수 있다.
숫자g 숫자에 해당하는 줄로 이동. 예를 들어 10g는 10번째 줄로 이동

일반 모드(Normal)

커서를 이동할 수 있다. vim이 시작할 때 맨 처음 나오는 모드이다.

키 조합 설명
u 실행 취소
<C-r> 다시 실행
i, a 등등... 편집 모드 시작. 자세한 내용은 편집 모드 참고.
v, V 등등... 비주얼 모드 시작. 자세한 내용은 비주얼 모드 참고.
p vim 클립보드 내용을 커서 뒤/아랫줄에 붙여넣기. 자세한 내용은 클립보드 참고
P vim 클립보드 내용을 커서 앞/윗줄에 붙여넣기. 자세한 내용은 클립보드 참고
"+p 붙여넣기. 시스템 클립보드의 내용을 붙여넣는다. 자세한 내용은 클립보드 참고
yy 현재 줄을 vim 클립보드로 복사.
dd 현재 줄을 삭제하고 vim 클립보드로 복사. 잘라내기와 비슷한 기능이다.
<C-w>h 왼쪽 윈도우로 이동. j, k, l도 똑같이 할 수 있다. 자세한 내용은 윈도우 참고
r한글자 현재 커서의 문자를 r 다음에 입력한 글자로 수정.
x 현재 커서의 문자 하나 제거
숫자x 지정한 수의 문자 제거
/찾을문자열 찾기. 정규표현식으로 입력한다.
n 다음 찾기
N 이전 찾기

편집 모드(Insert)

커서 이동은 방향키로만 할 수 있다. 일반적인 편집기처럼 편집하면 된다. <Esc> 키로 일반 모드로 돌아갈 수 있다.

일반 모드에서 편집 모드로 들어가는 키는 여러가지 있다. 참고로 여기에서 커서는 블록 커서를 사용한다는 것을 가정한다. vim 쓸 때는 수직바보단 블록 커서가 편하다.

키 조합 설명
i 커서 앞에서 편집 시작
a 커서 뒤에서 편집 시작
I 줄의 맨 앞에서 편집 시작
A 줄의 맨 뒤에서 편집 시작
s 커서의 글자를 지우고 편집 시작
S 현재 줄을 지우고 편집 시작
o 아래에 새 줄 추가하고 편집 시작
O 위에 새 줄 추가하고 편집 시작

비주얼 모드(Visual)

비주얼 모드에서는 텍스트를 선택해서 클립보드로 복사하거나, 삭제, 선택된 텍스트에서 명령 실행 등을 할 수 있다. 비주얼 모드 중에도 두 가지 모드가 있는데 비주얼 모드(Visual)와 비주얼 라인 모드(Visual Line)이다. 비주얼 모드는 v 키로 들어갈 수 있고 한 글자씩 선택한다. 비주얼 라인 모드는 V 키로 들어갈 수 있고 한 줄씩 선택한다. 둘다 <Esc> 키로 일반 모드로 돌아갈 수 있다.

키 조합 설명
y vim 클립보드에 복사. 자세한 내용은 클립보드 참고
"+y 시스템 클립보드에 복사. 자세한 내용은 클립보드 참고
d 삭제 및 vim 클립보드에 복사.

명령 모드(Ex)

일반 모드나 비주얼 모드에서 :를 누르면 화면 맨 아래에 명령어를 입력하는 칸으로 커서가 이동한다. 여기에서 여러 명령어를 입력할 수 있다. 특히 비주얼 모드에서 명령 모드로 들어가면 '<,'>가 자동으로 입력되는데, [3]여기에서 s 명령어로 선택한 구간 안에서만 찾아바꾸기를 할 수 있다.

명령어 설명
w 저장. 뒤에 파일 이름을 써서 지정할 수 있다.
e [file] 파일 열기
q 윈도우 닫기. 뒤에 !를 추가하면 저장하지 않는다.
qa 모든 윈도우 닫기. 뒤에 !를 추가하면 저장하지 않는다.
wq 저장하고 윈도우 닫기. 뒤에 a를 추가하면 모든 윈도우를 저장하고 닫는다.
sp 창 나누기. 뒤에 파일 이름을 써서 나눠진 창에 열 파일을 지정할 수 있다. 앞에 v를 붙이면 세로로 분할한다.
s/찾을문자열/바꿀문자열/g 현재 줄에서 찾아바꾸기. 각각 정규표현식으로 쓴다. 앞에 %를 붙이면 파일 전체에서 바꾼다.
nohl s 명령어나 /로 표시된 강조를 지운다.

클립보드


  1. VI는 VIsual의 약자로, 한 줄씩 명령어를 내려 편집하는게 아니라 파일을 한눈에 보면서 편집한다는 의미이다. POSIX에 명시된 명령어이다.
  2. vim을 개선한 neovim이란 놈도 있는데, 기본 기능은 대부분 비슷하다.
  3. 정확히 무슨 기능인지 추가바람