본문 바로가기

OS/Linux

[Linux] Vi(Vim) 에디터 명령어 정리

1. 상태

입력상태 <-> 명령상태 <-> Ex모드


명령 상태 - 처음 vi를 실행했을 때, 입력/EX 상태에서 ESC

입력 상태 - 실제로 타이핑을 하는 상태. 문서를 작성하게되는 상태, 명령상태에서 a,i,o등의 키

Ex 모드 - 각종 치환 파일 저장, 설정드으이 작업을 수행. 명령상태에서 ':' 눌러 들어오고 esc를 눌러 명령상태로



2. 명령 상태에서의 명령어


- 이동관련

기본적으로 vi에디터는 입력상태가 아닌 명령상태에서 커서이동을 하도록 되어있다.

k

커서를 위로 움직임

j

커서를 아래로 움직임

h

커서를 왼쪽으로 움직임

l

커서를 오른쪽으로 움직임

-

커서를 줄의 처음으로 옮김

e, E

다음단어의 끝으로, 문자단위 이동

w, W

다음단어의 처음으로, 문자단위 이동

$

줄의 마지막으로

0

줄의 처음으로

^

줄의 처음으로(공백이 아닌 처음시작되는 문자)

Shift+g

문서의 마지막으로 이동한다.

gg, 1g

문서의 처음으로 이동한다. 1대신 다른 숫자를 입력하면 해당 숫자의 라인으로 이동한다.

), (

다음, 이전 문장의 처음으로

}, {

다음, 이전문단의 처음으로

]], [[

다음, 이전 구절의 처음으로



- 화면 이동 관련

ctrl + F

한 화면 을 앞으로 스크롤

ctrl + B

한 화면 을 뒤로 스크롤

ctrl + D

반 화면 을 앞으로 스크롤

ctrl + U

반 화면 을 뒤로 스크롤

ctrl + E

한줄 앞으로 스크롤

ctrl + Y

한줄 뒤로 스크롤

Shift + h

화면의 맨 윗줄로

Shift + m

화면의 중간줄로

Shift + l

화면의 맨 아랫줄로


-입력관련 명령어

i

현재위치에서 삽입

I

현재줄의 처음위치에서 삽입

a

현재위치에서 한칸앞으로 이동해서 삽입

A

현재줄의 마지막위치에서 삽입

o

새로운 줄을 커서 아래에 연다

O

새로운 줄을 커서 위연다

s

현재 위치의 문자를 지우고 입력모드로 들어간다.

S

현재위치의 라인을 지우고 입력모드로 들어간다.


-편집 관련 명령어

y

한줄 복사

y[n]

현재 라인에서부터 n라인만큼 복사

p

복사된 내용 붙이기

yw

커서가 있는 단어 복사

yy

커서가 있는 줄을 복사

x,dl

커서위치의 글자 삭제

X

커서 바로 앞의 글자 삭제

dw

한 단어를 삭제

d0

커서 위치부터 행 처음까지 삭제

D, d$

커서 위치부터 행 끝까지 삭제

dd

커서가 있는 행을 삭제

dj

커서가 있는 행과 그 다음 행 삭제

dk

커서가 있는 행과 그 앞 행 삭제

J

현재 행의 개행문자를 제거

u

언도

.

리도


-블럭 명령어

v

단어단위로 블럭지정이 가능하다. 블럭범위는 이동명령인 'hjkl' 로 원하는 범위 만큼 지정할수 있다.

Shift+v

라인단위 블럭지정이다. 라인전체가 선택되며, 위아래 이동명령 'hj' 으로 범위 지정이 가능하다.

Ctrl+v

블럭단위 블럭지정이다. 4각형의 블럭지정이 가능하며 이동명령인 'hjkl' 로 원하는 범위를 지정할수 있다.




3. EX모드에서의 명령어


- 문자열 찾기

/[찾고자하는 문자열]

아래로가면서 문자열을 찾는다.

?[찾고자하는 문자열]

위로 올라가면서 문자열을 찾는다.

n(N)

다음(이전) 찾기


- 파일 저장 등

:e [filename]

filename 으로 파일열기

:q, :q!, :wq

종료, 강제종료, 저장후 종료

:w, :w [filename]

현재파일명으로 저장, filename 로 저장

:<범위>w [filename]

지정한 범위만 다른 파일로 저장

:e [filename]

filename 을 편집하기 위해서 연다

ZZ

지금파일을 저장하고 vim 을 종료한다.

:f

현재 작업중인 파일의 이름과, 라인수를 출력한다



기타 더욱 자세한 사항은 아래의 링크를 참조하자


http://shinluckyarchive.tistory.com/117