Chapter 6. Vi 편집기
Chapter 6. Vi Editor
________________________
screen-oriented(visual) display editor based on ex
(1). vi 편집기의 특징(Visual
Editor Characteristic)
- 전체 화면 모드 편집기(Full Screen Editor, Visual Editor)
- ex 편집기의 기능 확장 편집기(vi editor based on ex.)
[참고]
/root/docs/Fundamental/Ref_vi_example.txt
(2). vi 편집기 실행하기
# vi (: w
filename)
# vi filename
# vi -r filename
(recovery) // 복구 모드
# vi –L //
리스트 찾기 , 에러난 파일
# vi +38 filename // 수정 작업을 38(특정)라인에서 바로 시작할 때!
-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.
[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.
(3). vi 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 // b : back word 이동 , w : word 이동
- 0(^), $ // $ : 라인끝 이동 0(^) : 현재행의 처음으로~
- Ctrl+F / Ctrl+B //
페이지단위 이동
- G, 1G, 10G //
nG : n행으로 이동
- :5, :10 // n : n행으로 이동
(4.2) Delete
- x, dd(=D), 3dd(=3D) //
x : 현재커서의 한글자 삭제
- :1,3d //
1 ~ 3 라인 삭제
- dw //
한 단어 삭제
- d0, d$ //
d0 : 현재커서에서 라인 처음까지 삭제 , d$ : 현재커서에서 라인 끝가지 삭제
- dG //
dG : 현재커서에서 문서의 마지막까지 삭제
- 3dd //
현재에서 3라인 삭제
- d1G //
현재에서 1라인까지 삭제
(4.3) Copy(Yank)
& Paste
- yy(=Y), 3yy(3Y), p or P // yy : 1라인 복사
- :1,3 co 5 //
1라인부터 3라인 까지 복사 5라인아래에 paste
- :1,3 m 5 //
1~ 3 까지 5라인 밑으로 move
(4.4) Search
- /New, n or N // 탐색 결과에서 n -> 정방향 탐색 N -> 역방향
탐색
- ?New, n or N // /pattern -> 현재에서 정방향탐색
//
?pattern -> 현재에서 역방향 탐색
(4.5) Search
& Replace
- :%s/Old/New/g // %s : search
, /g : gloval
문서전체의~
// old 를 찾아 new로 치환
- :5,10s/Old/New/g // 5~ 10 라인 ~ "
EX) : %s/Hello/HELLO/g
1,$ => 5,10s/Hello/HELLO/g
search
globally => %s/Hello/HELLO/
, %s/Hello/HELLO/g
EX) :5,10s/^/#/
:5,10s/^#//
:5,10s/^/ / (4 blank character)
(4.6) Undo
- u, U //실행 취소
(4.7) Join
Line
- J //
아래 라인을 현재 라인으로 붙여 준다.
(4.8) Replace
- r, R //
r : 현재커서의 한문자를 치환 , R : 현재커서부터 치환상태로
(4.9) Save
& Quit
- :w //
저장
- :w filename //
filename으로 저장
- :w! //
강제저장
- :q //
종료
- :q! //
강제 종료
- :wq //
저장 후 종료
- :wq!(root Use) //
강제 저장 종료
- :!CMD //
vi 편집기 에서 쉘 명령어 실행
[참고] Save & Quit
- :x
- :wq
- ZZ
(5). vi 편집기의 환경 설정
(5.1). vi 편집기 사용시 환경설정
# vi filename
.....
: set //
현재 setting 목록
: set all //
설정할수 있는 모든 목록
: set number
(or :set nu) // 라인넘버 부여
: set nonumber (or :set nonu) // 번호 없앰
[EX] vi 편집기의 기능(:set
all)
+- 기능이름---+--- number --> : set number
|
+--- nonumber --> : set
nonumber
+- 기능이름=값 --> : set 기능이름=값
(5.2). vi 편집기 환경파일
* 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 //
자동 들여쓰기
[참고] 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
출처 : http://cafe.daum.net/bscsolaris