OS/Linux - Ubuntu

[Linux - 리눅스] vi 명령모드, 입력모드, 마지막 행 모드, 네임드 버퍼 등등 명령키

주누다 2014. 12. 23. 03:13
반응형

vi의 저장과 종료 명령키퍼

구분

명령 키

기능

마지막 행 모드

:q

작업한 것이 없을 때 그냥 종료.

마지막 행 모드

:q!

작업한 것이 있을 때 저장하지 않고 종료.

마지막 행 모드

:w [파일명]

작업한 내용을 저장. 파일명을 지정하면 새 파일로 저장.

마지막 행 모드

:wq, :wq!

작업한 내용을 저장하고 종료.

명령 모드

ZZ(Shift+zz)

작업한 내용을 저장하고 종료.

 - 마지막 행 모드의 명령에서 !(느낌표)는 강제의 의미.등



입력 모드 전환 명령키

명령키

기능

i

커서 앞에 입력(현재 커서 자리에 입력)

a

커서 뒤에 입력(현재 커서 다음 자리에 입력)

o

커서가 위치한 행의 다음 행의 입력

l(대문자 아이)

커서가 위치한 행의 첫 칼럼으로 이동하여 입력

A

커서가 위치한 행의 마지막 칼럼으로 이동하여 입력

O

커서가 위치한 행의 앞 행에 입력



커서 이동 명령 키

명령 키

기능

k

커서를 한 행 위로 이동(화살표 위방향 키)

j

커서를 한 행 아래로 이동(화살표 아래방향 키)

l(소문자 엘)

커서를 한 글자 오른쪽으로 이동(화살표 오른쪽 방향 키)

h

커서를 한 글자 왼쪽으로 이동(화살표 왼쪽 방향 키)

^ 또는 0

커서를 현재 행의 처음으로 이동(Home 키)

$

커서를 현재 행의 마지막으로 이동(End 키)

-

커서를 앞 행의 처음으로 이동

+ 또는 Enter

커서를 다음 행의 처음으로 이동

H

커서를 화면의 맨 윗행으로 이동

M

커서를 화면의 중간 행으로 이동

L

커서를 화면의 맨 아랫행으로 이동

w

커서를 다음 단어의 첫 글자로 이동

b

커서를 앞 단어의 첫 글자로 이동

e

커서를 단어의 마지막 글자로 이동



화면 이동 명령 키

기존 명령 키

기능

추가 명령 키

^u(Ctrl + u)

반 화면 위로 이동

 

^d(Ctrl + d)

반 화면 아래로 이동

 

^b(Ctrl + b)

한 화면 위로 이동.

Page Up

^f(Ctrl + f)

한 화면 아래로 이동

Page Down

^y(Ctrl + y)

화면을 한 행만 위로 이동

 

^e(Ctrl + e)

화면을 한 행만 아래로 이동

 동



특정 행으로 바로 이동하는 명령 키

명령키

기능

G(Shift + g)

파일의 마지막 행으로 이동

행번호 + G(Shift + g)

지정한 행 번호로 이동

:행번호

지정한 행 번호로 이동(마지막 행 모드)

:$

파일의 마지막 행으로 이동(마지막 행 모드)



내용 수정 명령키

명령키

기능

r

커서가 위치한 글자를 다른 글자로 수정

cw, #cw

커서 위치부터 현재 단어의 끝까지 수정.

#에는 수정할 단어의 수를 지정

ex) 3cw는 커서 위치부터 3 단어를 수정

s, #s

커서 위치부터 ESC키를 입력할 때까지 수정.

#에는 수정할 글자의 수를 지정

ex) 5s는 커서 위치부터 다섯 글자를 수정

cc

커서가 위치한 행의 내용을 모두 수정

C

커서 위치부터 행의 끝까지 수정



내용 삭제 명령키

명령키

기능

x, #x

커서 위치의 글자를 삭제.

#에는 삭제할 글자 수를 지정.

ex)3x는 세 글자를 삭제

dw, #dw

커서 위치의 단어를 삭제.

#에는 삭제할 단어 수를 지정.

dd, #dd

커서 위치의 행을 삭제.

#에는 삭제할 행의 수를 지정.

ex)5dd는 커서 위치부터 다섯 행을 삭제.

D(Shift + d)

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



이전 명령 취소 명령키

명령키

기능

u

명령을 취소

U

해당 행에서 한 모든 명령을 취소

:e!

마지막으로 저장한 내용 이후의 것을 버리고,

새로 작업.

- 바로 이전 명령만 취소할 수 있었지만, 일부 리눅스 vi에는 히스토리 기능이 있어서 실행했던 역순으로 차례차례 취소가 가능.



복사하기, 잘라내기, 붙이기 명령키

명령키

기능

yy, #yy

커서가 위치한 행을 복사.

#에는 복사할 행의 수를 지정.

ex) 3yy는 세 행을 복사.

p

커서가 위치한 행의 아래쪽에 붙임.

P(Shift + p)

커서가 위치한 행의 윗쪽에 붙임.

dd, #dd

삭제와 같은 기능.

커서가 위치한 행을 잘라둠.

#에는 잘라둘 행의 수를 지정.

ex) 3dd는 세 행을 잘라둠.

- 복사하기나 잘라내기를 하면 내용이 임시 버퍼에 저장.

따라서 복사하기나 잘라내기를 한 뒤에는 다른 명령을 사용하지 말고

즉시 원하는 위치로 이동하여 붙여넣기를 하는 것이 좋음.

- 단순히 잘라내기, 복사하여 버퍼에 저장한 것을 '언네임드 버퍼'라고 함.

- 이름을 붙여서 사용할 수 있는 버퍼를 '네임드 버퍼'라고 함.


네임드 버퍼

- 각각 다른 이름을 붙인 버퍼에 독립적으로 내용을 저장하고 사용.

- 네임드 버퍼에 이름을 붙일 때는 "+문자 또는 "+숫자 의 형태로 함.

- 숫자를 사용할 경우 숫자 버퍼라고도 함.

* 네임드 버퍼 : "a, "b, "c, "d, .... , "z

* 숫자 버퍼 : "1, "2..., "9

- 네임드 버퍼에 커서가 위치한 행을 저장하려면 '버퍼 이름+yy'를 입력.

=> 즉, "a 버퍼에 복사한 내용을 저장하려면 "ayy 를 입력하면 됨.

- 이를 커서가 위치한 행의 아래쪽에 붙이려면 "ap 와 같이 '버퍼이름+p'를 입력.




마지막 행 모드

==============================================================

마지막 행 모드에서 복사하기, 잘라내기, 붙이기


범위 지정 명령키

명령키

기능

1, $ 또는 %

1행부터 마지막 행까지 지정

1,.

1행부터 커서가 있는 행까지 지정

.,$

커서가 있는 행부터 마지막 행까지 지정

.,-3

현재 행과 이전 세번째 행까지(총 네 행) 지정

10,20

10행부터 20행까지 지정



마지막 행 모드에서 복사하기, 잘라내기, 붙이기 명령키

명령키

기능

:#y

#로 지정한 행을 복사함.

ex) 3y는 3행을 복사함

:<범위>y

범위로 지정한 행을 복사함.

ex) 2,4y는 2~4행을 복사함

:#d

#로 지정한  행을 잘라냄.

ex) 3d는 3행을 잘라냄.

:<범위>d

범위로 지정한 행을 잘라냄.

ex) 1,4d는 1~4행을 잘라냄.

:pu

현재 행 다음에 버퍼의 내용을 붙임.

:#pu

#로 지정한 행 다음에 버퍼의 내용을 붙임.

ex) 4pu와 같이 지정함.



검색 명령키

- 검색하기 위해 마지막행  모드로 이동할 때 ':'이 아니라 '/'이나 '?'를 입력함.

- /은 커서 위치에서 아래 방향으로 검색

- ?은 커서 위치에서 위 방향으로 검색

- '/'이나 '?' 다음에 찾고자 하는 문자열을 입력하고 Enter

- 다음 문자열을 검색하려면 n(Next - 명령모드)명령 키를 사용.

명령키

기능

/문자열

문자열을 아래 방향으로 검색

?문자열

문자열을 위 방향으로 검색

n

원래 찾던 방향으로 다음 문자열을 검색

N

역방향으로 다음 문자여을 검색



바꾸기 명령키

명령키

기능

:s/문자열1/문자열2

커서가 위치한 행에서 첫번째로 나오는 문자열1을 문자열2로 바꿈.

:%s/문자열1/문자열2/g

파일 전체에서 모든 문자열1을 문자열2로 바꿈.

:<범위>s/문자열1/문자열2

 범위 내 모든 행의 각 행에서

첫번째로 나오는 문자열1을 문자열2로 바꿈.

:<범위>s/문자열1/문자열2/g

범위 내 모든 행에서

문자열1을 문자열2로 바꿈.

:<범위>s/문자열1/문자열2/gc

범위 내 모든 행에서

문자열1을 문자열2로 바꿀 때

수정할지 여부를 물음.



파일 관련 명령키

명령키

기능

:r 파일명

지정한 파일을 읽어들여 현재 커서 위치에 삽입.

:e 파일명

지정한 파일로 전환(기존 파일을 :w로 저장한 뒤에 실행해야함)

:n

vi 시작시 여러 파일을 저장했을 경우 다음 파일로 작업들이 이동.



셀 명령 실행 명령키

명령키

기능

:! 셀 명령

vi 명령을 잠시 중단하고 셀 명령을 실행

(vi로 돌아오려면 Enter 키를 입력)

:sh

vi를 잠시 빠져나가서 셀 명령을 실행

(vi로 돌아오려면 exit 명령을 입력)


==============================================================


기타 명령키

명령키

기능

Ctrl + l(소문자 L)

현재 화면을 다시 출력.

Ctrl + g

현재 행 번호를 마지막 행에 출력

Shift + j(대문자 J)

현재 행과 아랫행을 연결하여 하나의 행으로 만듬(행이 합쳐질 때 공백 문자가 삽입됨)

 .(마침표)

바로 직전에 했던 명령을 반복(커서 이동키는 .명령키를 입력해도 반복 수행되지 않음)

 ~

커서가 놓인 곳의 글자가 소문자이면 대문자로, 대문자이면 소문자로 바꿈.




반응형