VI 편집기 다루기

Vi 편집기(Visual Editor)

screen-oriented(visual) display editor based on ex

 

■ vi 편집기의 특징

■ vi 편집기의 실행

■ vi 모드 변경

■ Command 모드

■ vi 편집기의 환경 파일

 

 

 

(1). vi 편집기의 특징(Visual Editor Characteristic)

 

- 전체 화면 모드 편집기(Full Screen Editor, Visual Editor)
- ex 편집기의 기능 확장 편집기(vi editor based on ex.)

 

 

 

(2). vi 편집기 실행하기

 

초기에 vi 명령어를 통해서 파일을 열게 되면 Command Mode가 기본값이다. 그렇기 때문

에 입력을 하기 위해서는 Input Mode로 전환하고 입력하여야 한다. 또한 편집 작업을 수행

할려면 다시 Command Mode로 전환해야 한다.

 

vi 편집기를 실행하는 방법은 다음과 같다.

# vi  (: w filename)
# vi filename
# vi -r filename (recovery)
# vi -L
# vi +38 filename

 

     -L    Lists the name of all files saved as the result of  an
           editor or system crash.

     -r filename
           Edits  filename  after  an  editor  or  system  crash.
           (Recovers  the  version  of  filename  that was in the
           buffer when the crash occurred.)

 

[EX] vi -r filename 형식의 예

# mailx
..... (중략) .....
A copy of an editor buffer of your file "/etc/vfstab" was saved on solaris254
when the system went down.
This buffer can be retrieved using the "recover" command of the editor.
An easy way to do this is to give the command "vi -r /etc/vfstab".
This works for "edit" and "ex" also.

-> /etc/vfstab 파일을 편집하다가 시스템이 다운된 경우 에디터 버퍼에 있던 내용을 복사

    하고, 사용자에게 메일로 전송함.

 


[EX] vi -L 형식의 예
# vi -L
/usr/preserve/root:
On 목  1월 01 at 09:00, saved 0 lines of file ""
On 목  1월 17 at 12:27, saved 61 lines of file "/.kshrc"
On 금  2월 15 at 10:13, saved 21 lines of file "/etc/dfs/dfstab"
On 목  1월 31 at 19:48, saved 11 lines of file "/tmp/crontabVwaWPh"
/var/tmp:
No files saved.

->  /tmp/crontabVwaWPh 시스템 클래쉬(System Crash)시에 발생한 파일

 

 

 

(3). vi Mode 변경

 

vi 편집기는 3가지 모드가 존재한다. Command Mode는 주로 입력 작업외의 작업을 할수

있는 모드로, 편집, 복사, 이동, 삭제등의 많은 명령어를 수행 할 수 있다.    Input Mode는

입력작업을 수행할 수 있는 모드이다. Last Line Mode는 편집내용을 파일에 저장하고 빠

져 나갈수 있는 모드이다.

 

- Command Mode (ESC Mode), Edit Mode
- Input/Insert Mode
- Last Line Mode(Ex Mode)


<Command Mode>  ----- (i, a, o, I, A, O) -----> <Input Mode>
   A   |                     <---- (    ESC         ) ------
   |   |
   |   |
   |   +------------- (<Shift+:>, /, ? ) -----> <Last Line Mode>
   +----------------- (    Enter       ) ------
  
* insert, append, open line
 
               [그림] vi 편집기 모드 변환

 

 

 

(4). Command Mode

 

 

(4.1) 위치 이동(Move)

- h, j, k, l
- b, w
- 0(^), $
- Ctrl+F / Ctrl+B

- G, 1G, 10G
- :5, :10

 

한 라인상에서 이동 하는 경우

h     한 문자 외쪽으로

j      한 문자 아래로

k     한 문자 오른쪽으로

l      한 문자 위로

b     한 단어 왼쪽으로

w    한 단어 오른쪽으로

0(^) 라인의 처음으로

$     라인의 마지막으로

 

라인간에 이동하는 경우

<Ctrl + F>  한 페이지 다음으로

<Ctrl + B>  한 페이지 이전으로

G              문서의 마지막 라인으로

1G            문서의 첫번째 라인으로

10G          문서의 10번째 라인으로

 

 

(4.2) Delete
- x, dd(=D), 3dd(=3D)
- :1,3d
- dw
- d0, d$
- dG

 

한 라인상에서 삭제 하는 경우

x     현재 커서의 한 글자 삭제

dw  현재 커서의 한 단어 삭제

d$   현재 커서부터 라인의 마지막까지 삭제

d0   현재 커서부터 라인의 처음까지 삭제

 

다중 라인을 삭제하는 경우

dd     현재 커서의 라인을 삭제

3dd   현재 커서를 포함한 3 라인 삭제

:3,5d 3번째 라인부터 5번째 라인까지 삭제

d1G  현재 커서 라인부터 문서의 처음까지 삭제

dG    현재 커서 라인부터 문서의 마지막까지 삭제

 

 

(4.3) Copy(Yank) & Paste
- yy(=Y), 3yy(3Y), p or P
- :1,3 co 5
- :1,3 m 5

 

yy             현재 라인 복사

3yy           현재 커서를 포함한 3개의 라인 복사

p              현재 커서 아래에 붙이기

P              현재 커서 위에 붙이기

:1,3 co 5   1번째 라인부터 3번째 라인까지 5번째 라인 밑에 붙이기

:1,3 m 5    1번째 라인부터 3번째 라인까지 5번째 라인 밑에 옮기기

 

 

(4.4) Search
- /New, n or N
- ?New, n or N

 

/검색단어     검색 할 단어를 현재 커서 아래쪽으로 찾아줌

?검색단어     검색 한 단어를 현재 커서 위쪽으로 찾아줌

n                  정방향으로 다음번째 검색 단어를 찾아줌

N                  역방향으로 다음번째 검색 단어를 찾아줌

 

 

(4.5) Search & Replace
- :%s/Old/New/g
- :5,10s/Old/New/g

 

EX) : %s/Hello/HELLO/g           -> 모든 문서에서 Hello를 찾아서 HELLO로 바꾸어 준다.
     1,$ => 5,10s/Hello/HELLO/g -> 5,10 : 5번째 라인부터 10번째 라인까지 Hello을 검

                                                     하여 HELLO로 바꾼다.
     search                                         
     globally => %s/Hello/HELLO/ , %s/Hello/HELLO/g    (g: 전역적으로 적용한다.)

 

EX) :5,10s/^/#/                  ->  5번째 라인부터 10번째 라인까지 라인의 처음에 '#' 표시

                                               를 한다.
    :5,10s/^#//                    -> 5번째 라인부터 10번째 라인까지 라인의 처음에 있는 '#'

                                               표시를 지운다.

    :5,10s/^/    / (4 blank character)  -> 5번째 라인부터 10번째 라인까지 공백 4칸을 띄

                                                            운다.

 

 

(4.6) Undo
- u, U

 

u    커서가 존재하는 라인에서 Undo 명령어 수행, 바로 이전 명령어를 실행 취소할 때 사용 

U    커서가 존재하는 라인에서 Undo 명령어 수행, 라인상에서 실행한 명령어 모두 실행 취

      소할 때 사용

 

 

(4.7) Join Line
- J

 

J    커서 아래의 라인을 현재 라인에 붙여 주는 역할

 

 

(4.8) Replace
- r, R

 

r     현재 커서의 한 문자를 다른 문자로 대치할 때 사용

R    현재 커서의 문자부터 다른 문자로 대치할 때 사용, 이 경우 ESC 키를 치기 전까지 대

      치된다.

 

 

(4.9) Save & Quit
- :w                 -> 열고 들어온 파일 이름에 저장하기
- :w filename   -> 특정한 파일(filename)에 저장하기
- :w!                -> 현재 작업내용을 강제적으로 저장하기
- :q                  -> 파일에서 빠져 나가기
- :q!                 -> 파일에서 강제적으로 빠져나가기
- :wq               -> 저장하고 빠져 나가기
- :wq!              -> 강제적으로 저장하고 빠져 나가기
- :!CMD           -> vi 편집기에서 빠져 나가지 않은 상태에서 쉘 명령어 수행하기

 

[참고] Save & Quit

저장하고 빠져나가는 기능은 다음과 같다. 모두 같은 기능이다.
- :x
- :wq
- ZZ

 

 

 

(5). vi 편집기의 환경 설정

 

 

(5.1). vi 편집기 사용시 환경설정

 

vi 편집기도 하나의 프로그램이다. vi  편집기의 기능을 바꿀수가 있는 기능들이 존재한다.

vi 편집기의 기능을 설정 하기 위해서는 Last Line Mode에서 작업을 해야 한다.

 

최하위행 모드에서

set  all                            기능의 전체 목록을 확인할 수 있다.

set                                  기능이 ON 되어져 있는 것들만 확인이 가능하다.

set  <기능의 이름>           기능을 ON 시키기 위해서 사용한다.

set  no<기능의 이름>       기능을 OFF 시키기 위해서 사용한다.

 

# vi filename
.....
: set
: set all
: set number     (or  :set nu)
: set nonumber (or  :set nonu)

 

[EX] vi 편집기의 기능

+- 기능이름---+--- number     --> : set number
|                     +--- nonumber --> : set nonumber
+- 기능이름=값                         --> : set 기능이름=값

 

 

(5.2). vi 편집기 환경파일

 

vi 편집기는 ex 편집기에 기반하고 있기 때문에 ex 편집기가 사용하고 있던 ~/.exrc 파일

을 그대로 사용할 수 있다.

 

* ex editor  =>  vi editor  => vim editor (iMprove vi)
 ~/.exrc                           ~/.vimrc

 

# vi ~/.exrc
set nu showmode sm ai

 

or

 

# vi ~/.exrc
set number           -> 편집기의 라인 번호를 출력한다.
set showmode      -> 편집기의 모드 표시를 편집기 오른쪽 하단에 한다.
set showmatch     -> 편집기 작업시 매칭되는 문자들을 표시한다.({}, [], (), ...)
set autoindent      -> 자동 들여쓰기 기능을 ON 한다.

 


[참고] set list, set ic
set list - Display invisible charaters, such as ^I for a Tab and as $ for end-of-line
set ic   - Instructs searches to ignore case

by 그쟈잉 | 2009/10/10 14:19 | System | 트랙백(1)

트랙백 주소 : http://wtkim.egloos.com/tb/4548886
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from at 2014/03/11 00:31

제목 : garcinia cambogia extract
line2...more

※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

<< 이전 페이지다음 페이지 >>