VIM general Shortcut 기록하였으며, 상세한 shortcut 실제 vim help 기록되어 있다.

 자세한 것은 Editor 기능비교 xlsx 장표를 참고하길 바란다.

 

 

구분

명령

단축키

파일

 

 

종료

그대로 종료하기

:q

 

변경된 내용을 저장하지 않고 강제로 종료하기

:q!

 

변경된 내용을 저장하고 종료하기

:wq

 

현재 열린 창을 모두 저장하고 종료하기

:wqa!

 

:wq와 동일한 명령

:x

 

:wq와 동일한 명령

ZZ

 

 

 

열기

다중파일 열기

vi file file...

 

다른 file로 이동할 때는 프롬프트 상에서 :n   이라 입력한다.

 

 

VI를 종료하지 않고 shell 화면으로 나갈 수 있다.

:shell

 

다시 VI로 이동할 때는 exit라 입력한다.

exit

리프레쉬

화면 리프레쉬

ctrl+L

 

 

 

복구

시스템이 갑자기 꺼졌을 때(최악의 상황) 복구하는 명령은 VI -r [작업하던 file name]

 

 

 

 

편집

 

 

삽입

현재 커서의 위치부터 삽입

i

 

현재 커서의 위치 다음부터 추가 시작

a

 

현재 줄의 마지막에 추가 시작

A

 

현재 줄의 처음에 추가 시작

I

 

현재 라인의 아래에 새로운 라인을 열어준다

o

 

현재 라인의 위에 새로운 라인을 열어준다.

O

 

 

 

삭제

커서 위치의 한문자 삭제

x

 

커서가 있는 문자 앞에 있는 문자 삭제

X

 

커서가 있는 단어 삭제

dw

 

공백으로 구분된 뒷 단어 삭제

dW

 

커서가 앞에 있는 단어 삭제

db

 

공백으로 구분된 앞 단어 삭제

dB

 

현재행부터 문장의 나머지 삭제

d)

 

현재행부터 파일의 나머지 삭제

dG

 

현재행부터 화면의 나머지 삭제

dL

 

행의 0번째 char(시작)부터 현재 앞 문자까지 지운다.

d0

 

현재 행부터 file의 시작까지 지운다.

d1G

 

현재 행에서 n 번째까지 지운다.

dnG

 

현재행 삭제

dd

 

n개의 라인을 지운다.

ndd

 

커서가 있는 라인의 나머지 삭제

D

 

문단의 나머지 삭제

d}

 

화면의 시작까지 삭제

dH

 

커서와 다음 단어의 공백을 모두 삭제

J

 

 

 

바꾸기

커서에 있는 문자 대치

r

 

커서가 있는 문자 삭제 후 입력 모드로 전환

s

 

커서가 있는 앞 문자 삭제 후 입력 모드

cb

 

공백으로 구분된 앞 단어 삭제 후 입력 모드

cB

 

커서가 있는 라인의 나머지를 삭제하고 입력 모드로 전환

C

 

특정 텍스트 바꾸기

c

 

문단의 나머지 바꾸기

c}

 

표시까지 모든 것 바꾸기

cm

 

화면의 시작까지 바꾸기

ch

 

입력 모드로 한 문자씩 덮어씀

R

 

커서가 있는 줄을 삭제 후 입력 모드로 전환

S

 

공백으로 구분된 뒷 단어를 삭제 후에 입력 모드

cW

 

커서가 있는 라인을 삭제하고 입력 모드

cc

 

커서에서부터 라인의 시작까지 텍스트 바꾸기

cO

 

문장의 나머지 바꾸기

c)

 

파일의 나머지 바꾸기

cG

 

화면의 나머지 바꾸기

cL

 

현재 위치에서 단어 교체

cw

 

현재 위치에서 `c' 문자까지 변경

cfc

 

VI에서 마지막 명령을 반복하라는 뜻이다.

` . '

 

 

 

복사

커서가 있는 단어를 복사

yw

 

공백으로 구분된 뒷 단어 복사

yW

 

특정한 다음 텍스트 복사

y

 

문자의 나머지 복사

y)

 

파일의 나머지 복사

yG

 

화면의 나머지 복사

yL

 

커서가 있는 앞 단어를 복사

yb

 

공백으로 구분된 앞 단어를 복사

yB

 

커서가 있는 라인을 복사, 커서가 가리키는 곳으로 라인을 이동

yy

 

문단의 나머지 복사

y}

 

화면의 시작까지 복사

yH

 

 

 

붙여넣기

삭제나 복사된 텍스트를 커서가 있는 문자나 라인 뒤에 삽입

p

 

커서가 있는 단어를 삭제한 후 이를 원하는 곳 커서 뒤로 삽입

dw p

 

지정한 다음 텍스트로 삭제한 후 커서가 가리키는 곳으로 이동

d p

 

문단의 나머지로 이동

d} p

 

화면 시작 부분으로 이동

dH P

 

삭제나 복사된 텍스트를 커서가 있는 문자나 라인 앞에 삽입

P

 

커서가 있는 단어를 삭제한 후 이를 변경한 커서가 있는 곳으로 삽입

dw P

 

문장의 나머지로 이동

d) P

 

파일의 나머지로 이동

dG P

 

화면의 나머지를 이동

dL P

 

 

 

블럭명령

 

 

 

블록을 file에 저장

: 10,20w  [file name] 

 

블록을 file에 추가

: 10,20w >> [file name]

 

10에서 20까지에 file을 읽어 현재 줄에 삽입

: 10,20r [file name]

블록 자르기

수정/삭제를 하면 버퍼에 그 내용을 복사(yank)

 

블록 복사

한 단어 버퍼에 기록

yw

 

줄의 끝까지 기록

y$

 

현재 줄을 버퍼에 기록

yy

 

==> 역시 name을 주어 buffer에 기록 할 수 있다.

 

블록붙이기

현재 커서 위치 오른쪽에 추가한다.

p

 

현재 커서 위치 왼쪽에 추가한다.

P

 

buffer에 있는 name의 블록을 현재 위치에 추가

namep

 

 

 

이동

 

 

 

다음에 나타나는 "문자"로 이동   

f문자

 

이전에 나타나는 "문자"로 이동

F문자

단어 단위

다음 단어의 맨처음으로 이동

w

 

커서를 공백으로 구분된 다음 단어로 이동

W

 

다음 단어의 마지막으로 이동

e

 

커서를 공백으로 구분된 다음 단어 끝으로 이동

E

 

이전 단어의 맨처음으로 이동

b

 

커서를 공백으로 구분된 이전 단어로 이동

B

줄단위

커서를 라인의 시작으로 이동(숫자 0임)

0

 

커서를 라인의 끝으로 이동

$

 

커서를 다음 라인 시작으로 이동

Enter

 

다음 행의 처음으로 이동합니다.

+

 

이전 행의 처음으로 이동합니다.

-

 

 

n

 

커서를 텍스트 마지막 라인으로 이동

G

 

커서를 화면 중간 라인으로 이동

M

 

화면의 처음으로 이동

H

 

화면 끝으로 이동

L

 

커서를 숫자 라인만큼 이동

숫자G

문장단위

문장의 시작으로 이동

(

 

문장 끝으로 이동하여 다음 단어의 시작으로 커서 이동

)

 

문단의 시작으로 이동

{

 

문단 끝으로 이동

}

 

한화면으로 앞으로 이동

CTRL+F

 

한화면으로 뒤로 이동

CTRL+B

 

반화면 앞으로 이동

CTRL+U

 

반화면 뒤로 이동

CTRL+D

방향키를 이용한

왼쪽으로 커서 한 칸 이동

<-, Del

커서 이동 명령

오른쪽으로 한 칸 이동

->

 

 

SpaceBar

 

윗 줄로 커서 이동

 

아래 줄로 커서 이동

 

줄 처음 칸으로 이동

Home

 

화면 위로 이동

PageUp

 

화면 아래로 이동

PageDown

 

다음 줄 첫 칸으로 이동

Enter

 

다음 줄 첫 칸으로 이동

Esc

 

새창 생성

:sp filename

창단위

창간이동

CTRL+ww

 

맨위창으로

CTRL+wt

 

맨아래창으로

CTRL+wb

 

위창

CTRL+wj

 

아래창

CTRL+wk

 

현재창 닫기

CTRL+wc

 

현재창 최대화

CTRL+w_

 

현재창 높이를 20으로

20 CTRL+ w_

 

 

 

검색

 

 

검색

패턴을 앞방향으로 검색

/pattern

 

패턴을 뒷방향으로 검색 (dir path slash(/)가 들어가는 검색시 사용하면 된다.)

?pattern

 

이전 검색 앞방향으로 반복

n

 

이전 검색 뒷방향으로 반복

N

 

old를  new로 치환해 준다.

:s/

치환

[범위]숫자, $, .(현재 위치)등을 지정한다.

[범위]s/old/new/[cgi]

 

[cgi] c는 변경여부를 묻는 플래그이고, g는 한줄의 모든것을 변경하며,

 

 

I 는 검색시 대소문자를 구분하지 않는다.

 

 

10줄에서 파일의 끝까지 수행

 

 

 

 

 

 

 

옵션

`

디폴트

 

들여 쓰기 가능, 탭으로 들여 쓰기 범위 지정

:set autoindentoff

 

줄이 바뀔 때 현재 줄을 화면상에서 출력

:set autoprinton

 

명령 에러가 발생시 삑 소리나게 함

:set errobellsoff

 

줄 번호를 나타나게 함

:set numberoff

 

편집시 메시지를 보낼 편집 변화 크기 지정

:set report5

 

가로 닫기 괄호를 사용할 때 일치하는 가로 열기 괄호를 보여줌

:set showmatchoff

 

저장하지 않고 vi 종료할 때 경고 메시지를 뿌려 줌

:set wamon

 

검색 패턴에 사용되는 대소문자 구별하지 않음

:set ignorecaseon

 

탭 공백을 n 수만큼 지정

:set tabstopp=n8

 

텍스트 오른쪽 여백을 n 수만큼 지정

:set wrapmargin=n0