i
를 입력하면 글씨를 입력할 수 있다.I
를 입력하면 커서가 현재 줄의 맨 앞으로 이동하고 글씨를 입력할 수 있다.a
를 입력하면 글씨를 커서 오른쪽에 입력할 수 있다.A
를 입력하면 커서가 현재 줄의 맨 뒤로 이동하고 글씨를 입력할 수 있다.o
를 입력하면 커서가 현재 줄 아래에 새로운 줄을 추가하고 글씨를 입력할 수 있다.O
를 입력하면 커서가 현재 줄 위에 새로운 줄을 추가하고 글씨를 입력할 수 있다.- INSERT 모드에서
ESC
를 누르면 NORMAL 모드로 돌아간다.
-
h
,j
,k
,l
로 각각 왼쪽, 아래, 위, 오른쪽으로 움직일 수 있다. -
0
,^
를 누르면 각각 현재 줄의 맨 앞, 첫 번째 글자로 커서를 이동시킨다. -
$
를 누르면 현재 줄의 맨 뒤로 커서를 이동시킨다. -
w
를 누르면 다음 단어의 첫 글자로 커서를 이동시킨다. -
W
를 누르면 다음 단어의 첫 글자로 커서를 이동시킨다.- 단, 단어는 공백으로 구분된다.
-
b
를 누르면 이전 단어의 첫 글자로 커서를 이동시킨다. -
B
를 누르면 이전 단어의 첫 글자로 커서를 이동시킨다.- 단, 단어는 공백으로 구분된다.
-
e
를 누르면 다음 단어의 마지막 글자로 커서를 이동시킨다. -
E
를 누르면 다음 단어의 마지막 글자로 커서를 이동시킨다.- 단, 단어는 공백으로 구분된다.
-
f
를 누르고 원하는 글자를 입력하면 커서가 해당 글자가 있는 곳으로 이동한다.- 대소문자를 구분한다.
-
F
를 누르고 원하는 글자를 입력하면 커서가 이전에 있는 문자들 중에서 해당 글자가 있는 곳으로 이동한다.- 대소문자를 구분한다.
-
t
를 누르고 원하는 글자를 입력하면 커서가 해당 글자가 있는 곳의 바로 앞으로 이동한다.- 대소문자를 구분한다.
-
T
를 누르고 원하는 글자를 입력하면 커서가 이전에 있는 문자들 중에서 해당 글자가 있는 곳의 바로 앞으로 이동한다.- 대소문자를 구분한다.
def main():
print('Hello, world!')
-
<C-e>
는 현재 화면을 한 줄 아래로 스크롤한다. -
<C-y>
는 현재 화면을 한 줄 위로 스크롤한다. -
zz
는 현재 줄을 화면의 중앙으로 스크롤한다. -
<C-u>
는 현재 화면의 절반 위로 스크롤한다. -
<C-d>
는 현재 화면의 절반 아래로 스크롤한다. -
gg
는 파일의 맨 처음 행으로 커서를 이동시킨다. -
G
는 파일의 맨 마지막 행으로 커서를 이동시킨다. -
수를 입력하고
gg
를 입력하면 해당 수의 행으로 커서를 이동시킨다. -
수를 입력하고
G
를 입력하면 해당 수의 행으로 커서를 이동시킨다. -
수를 입력하고
%
를 입력하면 해당 백분율에 해당하는 행으로 커서를 이동시킨다.
-
x
를 누르면 커서가 위치한 글자를 삭제한다. -
d
를 누르고 이동할 위치를 입력하면 그 부분까지를 삭제할 수 있다.
def main():
print('Hello, world!')
dd
를 누르면 현재 행을 삭제한다.d
를 누르고 나서 이동 명령어를 사용할 때에 숫자와 결합해서 사용할 수 있다.di
를 누르고 나서 단위를 입력하면 그 단위 안에 있는 코드를 삭제할 수 있다.'
를 입력하면 문자열 안에 있는 내용을 삭제할 수 있다."
를 입력하면 문자열 안에 있는 내용을 삭제할 수 있다.- ```를 입력하면 문자열 안에 있는 내용을 삭제할 수 있다.
(
나)
를 입력하면 괄호 안에 있는 내용을 삭제할 수 있다.{
나}
를 입력하면 중괄호 안에 있는 내용을 삭제할 수 있다.[
나]
를 입력하면 대괄호 안에 있는 내용을 삭제할 수 있다.<
나>
를 입력하면 대괄호 안에 있는 내용을 삭제할 수 있다.t
를 입력하면 HTML 태그 안에 있는 내용을 삭제할 수 있다.
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++)
{
printf("%d ", i);
}
printf("Hello, world!\n");
return 0;
}
<p>Hello, world!</p>
-
d
대신에c
를 입력하면 지정한 내용을 삭제하고 나서 INSERT 모드로 전환된다. -
s
를 누르면 커서가 위치한 글자를 삭제하고 나서 INSERT 모드로 전환된다. -
r
을 누르고 나서 원하는 글자를 입력하면 커서가 위치한 글자를 해당 글자로 대치한다. -
R
을 누르면 REPLACE 모드로 진입한다. -
u
를 누르면 이전에 했던 작업을 취소한다. -
<C-r>
을 누르면 이전에 취소한 작업을 다시 실행한다.
v
를 누르면 VISUAL 모드로 진입한다.V
를 누르면 VISUAL LINE 모드로 진입한다.<C-v>
를 누르면 VISUAL BLOCK 모드로 진입한다.
비주얼 모드에서 여러가지 다른 명령어와 결합해서 사용할 수 있는데, 가장 자주 사용되는 것이 복사와 붙여넣기이다.
-
y
를 누르고 이동할 위치를 입력하면 그 부분까지를 복사할 수 있다. -
p
를 누르면 커서가 위치한 다음 부분에 복사한 내용을 붙여넣을 수 있다. -
P
를 누르면 커서가 위치한 이전 부분에 복사한 내용을 붙여넣을 수 있다. -
(참고) vim에는 지우기 기능이 없어요
-
d
,x
,c
,s
는 모두 잘라내기 기능이어서,p
명령어로 붙여넣기를 할 수 있다. -
클립보드의 지정은
"
를 입력하고 그 다음에 한 글자의 문자를 입력해서 사용할 수 있다. -
d, x, c, s, y, p는 모두 기본적으로
*
라고 하는 이름의 클립보드에서 동작한다. -
클립보드 이름을
+
라고 지정하면 시스템 클립보드에서 동작한다. -
(참고) 파일의 모든 내용을 복사하기 위해서는
ggVG"+y
를 입력하면 된다.- 또는
gg"+yG
- 또는
q
를 누르고 나서 원하는 글자를 입력하면 매크로를 녹화할 수 있다.- 그 글자의 이름으로 매크로를 녹화하는 것이 된다.
@
를 누르고 나서 원하는 글자를 입력하면 매크로를 실행할 수 있다.- 그 글자의 이름으로 매크로를 실행하는 것이 된다.
<C-w>
를 누르고 나서s
를 누르면 현재 창을 가로로 분할한다.v
를 누르면 현재 창을 세로로 분할한다.h
,j
,k
,l
을 누르면 분할된 창을 이동할 수 있다.H
,J
,K
,L
을 누르면 분할된 창을 해당 방향으로 이동할 수 있다.
:e <filename>
을 입력하면 해당 파일을 분할된 창에서 열 수 있다.:q
를 입력하면 현재 작업중인 분할 창을 끈다.
:tabnew [filename]
을 입력하면 새로운 탭을 열 수 있다.g
를 누르고 나서t
를 누르면 다음 탭으로 이동할 수 있다.T
를 누르면 이전 탭으로 이동할 수 있다.
- 수를 입력하고
gt
를 하면 해당 번호의 탭으로 이동할 수 있다.- 수는 1부터 시작한다.
- 열려있는 모든 분할 창과 탭을 끄기 위해서는
:qa
를 입력하면 된다. :wq
를 하면 열려있는 분할 창을 저장하고 끌 수 있는데,:wqa
를 하면 모든 분할 창을 저장하고 끌 수 있다.
-
NORMAL 모드에서
/
를 입력하면 파일 전체에서/
다음에 입력한 문자열을 탐색할 수 있다. -
n
키를 누르면 다음 문자열을 탐색할 수 있다. -
N
키를 누르면 이전 문자열을 탐색할 수 있다. -
:nohl
을 입력하면 탐색한 문자열을 하이라이트 하지 않는다.- 또는,
/asd
이런 식으로 이상한 문자열을 대신 검색해서 하이라이트를 끌 수도 있다.
- 또는,
-
:s/
를 입력하면 현재 커서가 있는 행에서 대치를 진행할 수 있다. -
:s///g
를 입력하면 현재 커서가 있는 행에서 대치를 여러번 진행할 수 있다. -
:s%///
를 입력하면 파일의 모든 행에서 대치를 진행할 수 있다. -
:s%///g
를 입력하면 파일의 모든 행에서 대치를 여러번 진행할 수 있다. -
대치 기능은 VISUAL 모드와 함께 사용될 수 있다.