본문 바로가기
IT만들기/라즈베리파이

Vi editor 단축키

by 커피향처럼 2009. 1. 7.

라즈베리 파이의 nano 와 같은 에디터의 키 설명을 적어보도록 하겠습니다.

vi는 보통 유닉스, 리눅스에서 많이 사용하는 편집기입니다.

 

vi의 실행은 nano와 똑같습니다.

> vi 파일명

 

vi  editor

 

텍스트 입력 모드

 

범위 설정

 

커서 이동

i

커서 앞에서 삽입

1,$

모든

k

위로

a

커서 뒤에서 삽입

1,.

처음부터 현재 줄까지

j

아래로

o

현재 다음부터 삽입

.,$

현재부터 마지막줄까지

l

오른쪽으로

O

현재 앞에서 삽입

.-2

현재부터 두줄까지

h

왼쪽으로

R

텍스트가 대치

.+2

현재부터 두줄까지

^

줄의 시작으로

텍스트 지우기

텍스트 치환

$

줄의 끝으로

x

문자

r

문자

b

단어 앞으로

dw

단어

cw

단어

w

단어 뒤로

dd

cc

Ctrl+d

화면 아래로

D

현재 줄의 끝까지

텍스트 붙이기

Ctrl+f

화면 아래로

:d

블록단위의

y

줄을 버퍼에 복사

Ctrl+u

화면 위로

탐색

pu

현재 다음에 붙이기

Ctrl+b

화면 위로

/sss

뒤쪽으로sss탐색

:nnpu

nn다음에 붙이기

:nn

줄번호 nn으로

?sss

앞족으로 sss 탐색

파일 저장/불러오기

기타

n

마지막 탐색명령 반복

:w

현재 이름으로 저장

Ctrl+l

화면을 다시 그림

탐색/치환

:w mm

mm으로 저장

:!

잠깐 명령 실행

:s/ sss/ ttt/

처음 줄만 치환

:e mm

mm파일 편집

:q

종료

:s/ sss/ ttt/g

모두 치환

:n

다음 파일 편집

:q!

저장않고 종료

 

 

Shell 사용하기

 

:!

shell명령 실행 Enter키로 복귀

f

동일 검색

:sh

Shell prompt실행, exit 복귀

/

순방향 점체 검색

Ctrl+z

Vi process 중지, fg 복귀

?

역방향 전체 검색

화면 커서 이동

;

동일 반복 검색

z

현재 행을 화면의 상단으로 이동

N, n

전체 반복 검색

z.

현재 행을 화면의 중앙으로 이동

/^

검색 문자열을 행의 시작에 한정

Ctrl+E

아래로 이동

/$

검색 문자열을 행의 마지막에 한정

Ctrl+Y

위로 이동

/.

문자를 나타낸다

H

현재 화면의 상단으로 커서를 이동

/[ ]

문자 집합,  ^ 여집합

M

현재 화면의 중앙으로 커서를 이동

/ *

0이상의 반복을 의미

L

현재 화면의 하단으로 커서를

/ \<

패턴을 단어의 시작에 한정

텍스트 수정

/ \>

패턴을 단어의 끝에 한정

r

문자 치환

/ \

\ 뒤의 문자를 에스케이프

R

커서 우측으로 입력되는 문자 치환

병합 / 명명

s

문자를 여러 문자로 치환, Esc종료

J

행을 행으로

cw

단어 치환

m

행을 a에서 z중의 하나로 표시

c$

커서부터 행의 마지막까지 치환

블럭 지정 붙여넣기

c^

행의 시작부터 커서까지 치환

yw

현재 커서가 있는 단어

cc

전체 치환

y$

현재 커서가 있는 곳에서 행의

Vi 옵션

y^

현재 커서가 있는 곳에서 행의 시작

vi –r

임시저장 파일 읽음

yy

현재 커서가 있는 행의 전체

vi –R

Read Only 읽음

p

붙여넣기

vi +n

시동시에 n번째 행을 보여줌

 

 

 

텍스트 복구

vi 사용자의 마지막 9개의 삭제를 9개의 버퍼에 보관함으로써 대부분의 잘못된 삭제를 복구할 있다. p 명령 앞에 버퍼 번호를 주어 해당 버퍼에 있는 내용을 되살릴 있다.

예제)    "2p,    "1p

 

매크로

매크로는 여러가지 기본 명령을 확장해 보다 복잡한 작업을 쉽게 처리하기 위해 제공되는 기능이다.

- Buffer 매크로

  vi a부터 z까지의 버퍼에 명령을 지정하여 실행 있다. 실행 방법은 @이다.
  
매크로 명령을 buffer 저장하기 위해선 해당 매크로 명령을 입력 모드에서 편집한 다음
  "D
명령을 이용해 편집된 매크로 명령을 해당 buffer 저장한다.

  예제)    i\fI^[Ea\fP^[

               "aD

 @a

- Map

  주어진 명령 문자열을 키보드의 키에 지정되도록 해주는 기능이다. 이것은 :map 명령을 사용한다.

  예제)    :map #1 i\fI^VEa\fP^V

- 삽입 모드

  맵은 삽입 모드 동안에는 사용할 없다. 삽입 모드에서 맵을 이용하기 위해선 삽입 모드 맵을
 
사용해야 한다. 이것은 :map! 명령을 사용한다.

  예제)    :map! #1 Changwon

 

- 약어

  약어는 그대로 어떤 문자열에 대한 약어를 지정해 주는 것으로써 좀더 문서의 편집을 쉽게
 
하기 위해 제공되는 기능이다. 이것은 :ab명령을 사용한다.

  예제)     :ab ux UNIX(tm)

 

주요 vi 옵션

autoident(ai) : 새로운 행을 이전 또는 새로운 행이 생길 커서가 어떤 위치에 자동으로 인덴트
           
되도록 한다. c 프로그래밍할 유리하다.

autowrite(aw) : 다른 화일로 옮겨갈 명령을 실행하기 또는 쉘로 잠시 나오기 전에 현재 화일을 강제
            
저장한다. 

ignorecase(ic) : 검색과 대치시 대소문자 구분을 무시한다.

magic : 모든 정규식 문자를 사용할 있게 한다.

mesg : 문서 편집 동안 메시지가 화면에 출력되는 것을 허용한다.

number(nu) : 문서의 행에 행번호를 붙여 화면에 출력한다.

showmach(sm) :  ) { 입력할 때마다 자동으로 커서가 대응하는 ( } 이동하여 1초동안 머문다. 

showmode : 상태 행에 현재 편집 모드를 출력한다. 

wrapscan(ws) : vi 매번 화일 전체를 검색하도록 한다.
           
검색은 항상 현재 행부터 시작해서 화일의 끝으로 진행된다. 

 

예제) 문서의 각행에 행번호를 출력하는 예제      :set number

      번호 출력을 해제하는 예제                 :set nonumber

      현재 vi 모드를 출력하는 예제              :set showmode

댓글