본문 바로가기

tech/computing

리눅스(Linux) vi Editor 사용법

반응형



1.1        커서의 위치를 움직이는 명령(Move commands)

N *가 있는 경우 숫자를 사용할 수 있고, -의 경우 사용할 수 없다.

N

명령어

기능

*

h or ^H or

커서를 한칸(N) 왼쪽으로 이동시킨다.

*

j

커서를 한행(N) 아래로 이동시킨다.

*

l or

커서를 한칸(N) 오른쪽으로 이동시킨다.

*

k or ^P

커서를 한행(N) 위로 이동시킨다.

*

$

커서가 위치한 행(N번째 행)의 끝으로 이동한다.

-

^

커서가 위치한 행의 처음으로 이동한다.

*

+ or

다음행(N행 아래)의 처음으로 이동한다.

-

0

커서가 위치한 행의 처음으로 이동한다.

*

|

N번째 column으로 이동한다.

*

f

오른쪽으로 N번째 char를 찾는다.

*

F

왼쪽으로 N번째 char를 찾는다.

*

w

커서부터 오른쪽 N번째 단어의 첫부분.

*

W

커서부터 오른쪽 N번째 WORD(tab,space,linefeed 뒤에 있는 단어)의 첫부분.

*

{

N개의 paragraphs 앞으로.

-

n

가장 최근의 `/'|`?' 를 반복한다.

-

N

n을 반대방향으로의 수행.

-

%

Braket( { } or [ ] or ( ) )을 찾고 그것의 match(괄호가 닫힌 쌍)찾는다.

 

1.2        찾기(Searching)

/<</SPAN>문자열>

다음으로 <</SPAN>문자열>이 나오는 위치로.

?<</SPAN>문자열>

/를 반대방향으로 수행.

:[x,y]g/<</SPAN>문자열>/<</SPAN>명령어>

x에서 y까지 <</SPAN>문자열>을 찾고(globally) <</SPAN>명령어>를 실행한다.

:[x,y]v/<</SPAN>문자열>/<</SPAN>명령어>

x에서 y까지 문자열과 match되지 않는 라인에 <</SPAN>명령어>를 실행한다.

 

1.3        취소(Undoing changes)

u

가장 최근에 한 작업을 취소한다.

U

만약 작업을 한 라인에서 벗어나지 않았다면, 그 라인에서 한 작업들을 모두 취소한다.

:q!

Save하지 않고 vi를 끝낸다.

:e!

현재 편집중인 화일을 버리고 다시 편집한다.

 

1.4        문자열 삽입(Appending text)

1. 를 누르면 삽입 작업이 끝난다.
2. N
*가 있는 경우 숫자를 사용할 수 있고, -의 경우 사용할 수 없다.

*

a

커서의 오른쪽에 쓰기 시작한다.

*

A

커서가 위치한 라인의 맨 끝에 쓰기 시작한다.

*

i

커서의 위치부터 쓰기 시작한다.

*

I

커서가 위치한 라인의 맨 처음부터 쓰기 시작한다.

*

o

커서가 위치한 라인 밑에 새로운 라인을 만들고 거기에 쓰기 시작한다.

*

O

커서가 위치한 라인 위에 새로운 라인을 만들고 거기에 쓰기 시작한다.

*

.

앞에 실행했던 명령을 N번 반복한다.

 

1.5        문자열 삭제(Deleting text)

지운 것은 모두 buffer에 저장할 수 있다. 일단 지우는 명령을 실행하기 전에 "를 치고 a-z 중간의 한 문자를 치면 지운 것이 그 문자에 해당하는 buffer에 저장되게 된다. 참고로 Undo buffer는 가장 최근에 바꾼 것만 저장하게 되고, 1-9에 해당하는 buffer는 가장 최근의 9라인을 지운 것을 저장하게 된다.

*

x

커서 오른쪽의 N개의 문자를 지운다.

*

X

커서 왼쪽의 N개의 문자를 지운다.

*

d

커서가 위치한 곳에서부터 로 인해 움직인 위치까지 지운다.

*

dd

커서의 위치로부터 밑으로 N개의 라인을 지운다.

-

D

커서의 위치로부터 오른쪽의 문자를 모두 지운다.

*

.

최근에 실행했던 명령을 N번 반복한다.

 

1.6        문자열 수정(Changing text)

를 누르면 바꾸는 작업이 끝난다.

*

r

커서의 위치로부터 N개의 문자를 로 바꾼다.

*

R

라인의 나머지를 덮어쓴다.

*

s

N개의 문자를 교체한다.

*

S

N개의 라인을 교체한다.

*

c

커서의 위치로부터 의 위치까지 바꾼다. 예를 들어 cw는 한 단어를 바꾸는 명령이다.

*

cc

N개의 라인을 바꾼다.

*

C

라인의 나머지 부분을 바꾼다.

-

~

대문자와 소문자를 각각 소문자와 대문자로 바꾼다.

*

J

N개의 라인을 연결한다.

*

.

가장 최근의 명령을 N번 반복한다.

-

&

가장 최근의 `ex'의 교체명령을 반복한다.

-

:[x,y]s/

//

x번째 라인에서 y번째 라인까지

문자열을 이라는 문자열로 교체한다. 여러가지 옵션인데, c 확인을 요하는 옵션이고 g 무조건 교체하라는 옵션이다.

 

 

1.7        저장, 다른 화일의 편집, vi를 끝내기

:q

Buffer가 변하지 않은 경우 vi를 끝낸다.

:q!

강제로 vi를 종료한다.

^Z

vi를 종료한다.

:w

화일에 저장한다.

:w <</SPAN>화일명>

<</SPAN>화일명>으로 저장한다.

 

1.8        다른 명령계통으로의 전환 및 shell 명령어의 사용.
(Switch and shell commands)

Q

vi에서 ex 명령으로 전환한다.

:

ex명령어를 vi상에서 사용할 수 있게 한다.

:vi

ex 에서 vi로 전환한다.

:sh

잠시 shell환경으로 나간다. 다시 vi로 돌아오려면 exit를 치면 된다.

 

 

Vi 명령어 일람

 

텍스트 삭제 명령어

작업설명

x

5x

dw

dd

5dd

db

D

:5,10d

커서가 있는 문자 삭제

커서가 있는 위치부터 5개의 문자를 삭제

현재 커서에 있는 한 단어 삭제

커서가 있는 라인 삭제

커서가 있는 라인부터 5개의 라인 삭제

커서의 위치에서 거꾸로 한 단어 삭제

커서 오른쪽 행 삭제

5~10번째 행 삭제

복사 및 이동 명령어

작업설명

yy

Y

p

P

:1,2 co 3

:4,5 m 6

yank 또는 복사

yank 또는 복사

yank 되거나 삭제된 행 현재 행 위로 삽입

yank 되거나 삭제된 행 현재 행 아래에 삽입

1~2행을 3행 다음으로 복사

4~5행을 6행 위로 이동

행 번호 설정 명령어

작업설명

:set nu

:set nonu

행 번호 표시

행 번호 숨기기

행 찾기 명령어

작업설명

G

21G

Ctrl + G

파일의 마지막 행으로 가기

파일의 21번째 행으로 가기

현재 File name과 커서의 라인 정보

탐색 및 대체 명령어

작업설명

/검색할 문자열/

?검색할 문자열?

n

N

:g/search-string/s/

/replace-string/gc

:s/str/rep

:1,.s/str/rep/

:%s/str/rep/g

:.$/aaa/bbb

오른쪽 아래 방향으로 문자열 검색

왼쪽 위 방향으로 문자열 검색

문자열의 다음으로 계속 검색

문자열의 이전으로 계속 검색

각 발생 탐색 후 확인하고 대체

 

현재 행의 str rep로 대체

1부터 현재 행의 str rep로 대체

파일 전체 str rep로 전부대체

커서의 위치로부터 파일의 끝까지 있는

모든 aaa bbb로 대체

화면 정리 명령어

작업설명

Ctrl + l

불필요한 화면정리 후 다시 표시

파일 명령어

작업설명

:r filename

:34 r filename

커서 다음에 파일 삽입

파일을 34번째 행 다음에 삽입

vi 시작 명령어

작업설명

vi filename

vi +18 filename

vi +/문자열 fn

vi r filename

view filename

파일열기, 작성

18행으로 파일 열기

문자열의 처음발생 단어부터 열기

손상된 파일 회복

읽기 전용

vi 커서 이동

 

h(¬)

j(¯)

k(­)

l(?)

왼쪽으로 커서 이동

아래로 커서 이동

위로 커서 이동

오른쪽으로 커서 이동

w

e

b

Enter

Back space

Space Bar

^

$

H

M

L

숫자G

오른쪽 한 단어의 끝 부분으로 커서 이동

오른쪽 한 단어의 앞 부분으로 커서 이동

왼쪽 한 단어의 앞 부분으로 커서 이동

한 행 아래로 커서 이동

한 문자 왼쪽으로 커서 이동

한 문자 오른쪽으로 커서 이동

행의 맨 왼쪽으로 커서 이동

행의 맨 오른쪽으로 커서 이동

화면의 맨 위로 이동

화면의 중간으로 이동

화면의 맨 아래로 이동

숫자 만큼 지정한 줄로 커서 이동

Ctrl + i

Ctrl + b

Ctrl + d

Ctrl + u

Ctrl + e

Ctrl + y

한 화면 위로 이동

한 화면 아래로 이동

반 화면 위로 이동

반 화면 아래로 이동

한 줄씩 위로 이동

한 줄씩 아래로 이동

문자, , 삽입 명령어

작업설명

a   (종료 : ESC)

A

i

I

o

O

커서 오른쪽에 문자 삽입

커서 오른쪽, 행의 끝에 문자 삽입

커서 왼쪽에 문자 삽입

커서 왼쪽, 행의 처음에 문자 삽입

커서 아래에 행 삽입

커서 위에 행 삽입

텍스트 변경 명령어

작업설명

cw  (종료 : ESC)

cc

C

s

S

r

r-Enter

J

xp

~

u

U

 

.

단어 변경

행 변경

커서 오른쪽의 행 변경

커서가 위치한 문자열 대체

커서가 위치한 라인의 문자열 대체

커서 위치 문자를 다른 문자로 대체

행 분리

현재 행과 아래 행 결합

커서 위치 문자와 오른쪽 문자 교환

문자형(, 소문자) 변경

이전 명령 취소

행 변경 사항 취소

이전의 최종 행 취소

이전 최종 명령 반복

 

보관 및 종료 명령어

작업설명

:w

:w filename

:wp

ZZ

:q!

q

e!

변경사항 보관

버퍼를 파일로 보관

변경사항 보관 후 vi 종료

변경사항 보관 후 vi 종료

변경사항 보관하지 않고 종료

수정한 파일을 저장하지 않고 vi 종료

수정한 것을 무시하고 다시 편집상태로

 












출처 : http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=497629&qb=dmkgZWRpdG9y&enc=utf8&section=kin&rank=2&sort=0&spq=0&pid=f006%2BB331xhsscOoK1ossv--296862&sid=S00J8VT-TEsAAGuGFDA



반응형