잠시만 기다려주세요
요청하신 글로벌웹호스팅코리아™ 웹페이지를 Loading 중 입니다...

서비스 소개
이용요금 안내
서비스 환경
세부 설비
연동망 구성
서비스 신청
잦은 질문과 답변
판매왕
이미지/파일 호스팅
멀티 도메인 연결
데이터베이스
이메일(E-mail) 추가
서비스 전환
(2005-02-03 [16:15], Hit : 7093)
VI(VIM) 편집기 사용하기



이 문서는 vi 에디터의 이름은 들어 보았으나, 사용법을 잘 모르는 사용자를 위한 것입니다. 자세한 설명서는 http://www.vim.org 에서 찾아 보시기 바랍니다.

 

 

1. vi 실행 방법


커맨드 라인에서 다음과 같이 입력하면, 인자로 입력한 이름의 파일을 편집할 수 있습니다.


$ vi 파일_이름...


파일의 이름에는 다수의 파일 이름을 넣을 수 있으며, vi 내에서 :n 명령으로 다음 파일로 넘어 갈 수 있습니다.



2. vi 실행 모드


vi 에디터는 크게 명령 모드와 입력 모드로 나눌 수 있고, 명령 모드에는 vi 명령 모드와 ex 명령 모드가 있습니다. vi 시작시, vi 명령 모드로 시작하며, 특정 키를 눌러, 입력 모드 및 ex 명령 모드로 전환할 수 있습니다. vi 명령 모드로 돌아오기 위해서는, Esc(Escape)키를 누르면 됩니다.


아래에, 입력 모드 및 명령 모드에서, 자주 사용되는 명령어를 적어 보았습니다(이것은 제가 선호하는 명령들로, 실제로는 훨씬 다양한 명령들이 있습니다).


실질적으로 vi 에디터를 이용하여 편집 작업을 하기 전에, 아래의 명령들을 전부 다 사용해 보시기 바랍니다. 어떤 명령들은 너무 강력해서 수습하기 어려운 경우도 있으니, 각각의 명령들의 특성을 미리 알아 두는 것이 필요합니다.



1) 입력 모드 전환 키 : 실질적으로 문서에 글자를 입력하기 위해서는 명령 모드에서 입력 모드로 모드 전환이 이루어져야 합니다. 이 때 사용할 수 있는 키가 여러 가지가 있는데, 여기서는 그것들에 대해 설명하겠습니다. 단순 입력 작업이 끝나고, 커서 이동이나 편집 작업 등을 하려고 할 때는 Esc키를 눌러서 입력 모드에서 빠져 나와야 합니다.


i : 현재 커서 위치에 글자 삽입이 가능해 짐, i 키를 누르고 난 이후에 쓰는 글은 커서 위치에 쓰여지게 됨
I : 현재 줄 처음에 삽입
a : 현재 커서 다음 위치에 추가
A : 현재 줄 마지막에 추가
o : 아랫 줄에 추가
O : 윗 줄에 추가
s : 현재 커서 글자 지우고 입력 모드로 전환
r : 현재 커서 글자 지우고 한 글자 입력 받아 명령 모드로 돌아감
Esc : 입력 모드 또는 ex 명령 모드에서 vi 명령 모드로 전환, vi 명령 모드에서 Esc키를 누르면 삑 소리가 남



2) vi 명령 모드 키: Esc키를 눌러서 들어 올 수 있는 모드입니다. vi 에디터 시작할 때의 초기 모드이기도 합니다. 키 앞에 숫자를 입력하면 그 명령이 숫자 만큼 반복됩니다. 입력 모드에서 입력 작업 완료 후, 커서 이동이나 삭제, 복사, 붙여 넣기 등의 편집 작업 등을 할 때는 Esc키를 눌러 vi 명령 모드로 전환시킨 후에 해야 합니다.


 

[ 커서 이동 ]

h : 한 문자 왼쪽으로 커서 이동(도스용이나 윈도우즈용 vi 에디터의 경우는 대부분, 커서 이동에 방향키를 사용할 수 있으나, 방향키가 없는 터미널 키보드에서 vi 에디터를 사용하기 위해서는 여기서 설명하는 키들을 알아둘 필요가 있습니다)
j : 한 줄 아래쪽으로 커서 이동
k : 한 줄 위쪽으로 커서 이동
l : 한 문자 오른쪽으로 커서 이동
w : 다음 단어 첫 문자로 커서 이동
b : 이전 단어 첫 문자로 커서 이동
Ctrl+f : 한 페이지 아래로 커서 이동
Ctrl+b : 한 페이지 위로 커서 이동
G : 마지막 줄로 커서 이동, 숫자G로 눌렀을 때, 숫자에 해당되는 줄로 커서 이동
^ : 공백 문자가 아닌, 현재 줄의 첫 문자로 커서 이동
0 : 공백 문자를 포함한, 현재 줄 첫 문자로 커서 이동
$ : 현재 줄 마지막 문자로 커서 이동

 

[ 삭제 ] : 삭제된 것은 버퍼에 저장되므로 p나 P 명령으로 붙여 넣기가 가능함

x : 현재 커서 위치 문자 삭제
X : 현재 커서 위치 이전 문자 삭제
dw : 현재 커서 위치 단어 삭제, 숫자dw로 쓰면 숫자만큼의 단어가 삭제됨, 다른 삭제 명령도 마찬가지로 숫자 입력 방식이 적용됨
db : 현재 커서 위치 이전 단어 삭제
dd : 현재 커서 위치 줄 삭제, 숫자dd로 쓰면 숫자만큼의 줄이 삭제됨
d^ : 현재 줄에서 현재 커서 위치 이전 문자열 삭제
d$ : 현재 줄에서 현재 커서 위치 이후 문자열 삭제
D : d$와 같음


[ 복사, 붙여 넣기 ] : 여기서의 복사란, 버퍼로의 복사를 말함, 실제로 붙여 넣기를 하려면 p나 P키를 눌러야 함

yw : 현재 커서 이후 단어 복사, 숫자yw로 쓰면 숫자만큼의 단어가 복사됨, 다른 복사 명령에도 이와 같은 숫자 입력 방식이 적용됨
yb : 현재 커서 이전 단어 복사
yy : 현재 줄 복사, 숫자yy로 쓰면 숫자만큼의 줄이 복사됨
p : 복사된 항목을 현재 커서 위치 이후에 붙여 넣기, 삭제된 항목도 붙여 넣기 가능
P : 복사된 항목을 현재 커서 위치 이전에 붙여 넣기, 삭제된 항목도 붙여 넣기 가능


[ 검색 ]

/검색어 : 전진 검색
?검색어 : 후진 검색
n : 검색 반복

N : 반대 방향 검색 반복


[ 되돌리기(undo) ]

u : 되돌리기(undo). u키를 계속 치게되면, undo 버퍼가 빌 때까지 계속 되돌리기할 수 있음. 유용함
U : 라인 되돌리기. 한 줄에 대해서 모든 편집을 없던 것으로 하고 원상태로 되돌림

Ctrl+r : Redo(undo undo)


[ 기타 ]

J : 커서 위치 아랫줄을 현재 줄에 붙임. 커서 이동의 j와 혼동될 수가 있으므로, 대소문자 구별에 유의해야 함

. : 이전 실행 명령 반복. 같은 명령을 빠르게 반복하고자 할 때 유용함. 참고로, 문자열 입력 후, 명령 모드로 돌아와서 .을 입력하면 입력된 문자열이 커서 위치에 삽입됨

ZZ : 현재 문서 저장하고, 종료하기



3) ex 명령 모드 : ex 라인 에디터의 명령어를 사용할 수 있습니다. vi 명령 모드 상태에서, : 키를 눌러서 들어가고, Esc키를 눌러서 다시 vi 명령 모드로 나옵니다. 아래에 제가 자주 사용하는 명령들을 적어 봅니다. 각각의 명령을 입력한 후, 실행을 하기 위해서는 엔터키를 누르면 됩니다.


시작줄번호,끝줄번호d : 시작줄번호에서 끝줄번호까지의 줄을 지움, 붙여 넣기 가능, 문서의 처음 줄은 1, 현재 줄은 . , 마지막 줄은 $로 지정 가능, 줄번호 입력없이 d만 입력했을 경우에는, 현재 줄을 지움


시작줄번호,끝줄번호y : 시작줄번호에서 끝줄번호까지의 줄을 복사


시작줄번호,끝줄번호s/찾을문자열/바꿀문자열/g : 시작줄번호에서 끝줄번호까지 '찾을문자열'을 찾아 '바꿀문자열'로 바꿈, g를 사용하지 않으면, 한 줄에 '찾을문자열'이 여러 개 있더라도, 그 줄에 대해서는 한 번만 바꿔짐. 유닉스 정규 표현식을 써서 강력한 검색 및 치환이 가능함


se nu : 줄 번호 표시


n : 다음 파일 편집, vi 실행시 인자로 입력한 파일이 여러 개일 경우에 해당


r 파일이름 : '파일이름'의 파일을 읽어 와서 현재 커서 아랫줄에 삽입


sh : 쉘로 잠깐 빠져 나가기, 쉘에서 exit 치면, 다시 vi로 돌아옴. vi를 백그라운드로 돌려서(Ctrl+z), 쉘로 나가 다른 작업을 한 후, fg로 돌아오는 방법도 있음

! 명령 : 밖으로 빠져 나가지 않고 바로 '명령'을 실행시킴


w : 저장하기, w!로 쓰면, 강제로 저장하기
w 파일이름 : '파일이름'으로 저장하기
q : vi 종료하기, q!로 쓰면 강제로 종료하기
wq : 저장하고, 종료하기. wq!로 쓰면 강제로 저장하고 종료하기


 


이상이 vi 에디터에서 자주 사용하는 명령들입니다. 이 정도만 익숙하게 쓰실 수 있으면, 웬만한 편집 작업은 문제없이 할 수 있습니다. 이 외에도, 아주 많은 명령들이 있습니다. 그런 명령들을 잘 사용하시면 vi 에디터를 아주 편리하게 사용하실 수 있습니다.

특히, 최근의 vi 에디터는 기능이 아주 다양해져서 Syntax highlighting 기능 등을 비롯하여 여러 가지 최신 기능들을 지원하고 있습니다.


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

N에 *가 있는 경우 숫자를 사용할 수 있고, -의 경우 사용할 수 없다.
N명령어기능
*h or ^H or <erase> 커서를 한칸(N칸) 왼쪽으로 이동시킨다.
*j 커서를 한행(N행) 아래로 이동시킨다.
*l or <sp> 커서를 한칸(N칸) 오른쪽으로 이동시킨다.
*k or ^P 커서를 한행(N행) 위로 이동시킨다.
*$ 커서가 위치한 행(N번째 행)의 끝으로 이동한다.
-^ 커서가 위치한 행의 처음으로 이동한다.
*+ or <enter> 다음행(N행 아래)의 처음으로 이동한다.
-0 커서가 위치한 행의 처음으로 이동한다.
*| N번째 column으로 이동한다.
*f<char> 오른쪽으로 N번째 char를 찾는다.
*F<char> 왼쪽으로 N번째 char를 찾는다.
*w 커서부터 오른쪽 N번째 단어의 첫부분.
*W 커서부터 오른쪽 N번째 WORD(tab,space,linefeed 뒤에 있는 단어)의 첫부분.
*b 커서부터 왼쪽 N번째 단어의 첫부분.
*B 커서부터 왼쪽 N번째 WORD의 첫부분.
*e 커서부터 오른쪽 N번째 단어의 끝부분.
*E 커서부터 오른쪽 N번째 WORD의 끝부분.
*G 커서부터 N번째 라인으로.(default 화일의 끝).
*H Screen의 위에서부터 N번째 라인으로.
*L Screen의 아래에서부터 N번째 라인으로.
-M Screen의 중간으로.
*) N개의 문장 뒤로.
*( N개의 문장 앞으로.
*} N개의 paragraphs 뒤로.
*{ N개의 paragraphs 앞으로.
-]] 뒤의 N번째 section으로(default 화일의 끝).
-[[ 앞의 N번째 section (default 화일의 처음).
-`<a-z> Mark한 곳으로.
-'<a-z> Mark가 있는 라인의 첫번째 CHAR로.
- `` 가장 최근의 jump(예를 들어 `/'나 `G'를 사용한 jump)를 하기 직전의 위치로.
- '' 가장 최근의 jump(예를 들어 `/'나 `G'를 사용한 jump)를 하기 직전의 라인의 첫 CHAR로.
- /<문자열> 다음으로 <문자열>이 나오는 위치로.
- ?<문자열> /를 반대방향으로 수행.
- n 가장 최근의 `/'|`?' 를 반복한다.
- N n을 반대방향으로의 수행.
- % Braket( { } or [ ] or ( ) )을 찾고 그것의 match를(괄호가 닫힌 쌍)찾는다.


<HR>

찾기(Searching)


/<문자열> 다음으로 <문자열>이 나오는 위치로.
?<문자열> /를 반대방향으로 수행.
:[x,y]g/<문자열>/<명령어> x에서 y까지 <문자열>을 찾고(globally) <명령어>를 실행한다.
:[x,y]v/<문자열>/<명령어> x에서 y까지 문자열과 match되지 않는 라인에 <명령어>를 실행한다.


<HR>

취소(Undoing changes)


u 가장 최근에 한 작업을 취소한다.
U 만약 작업을 한 라인에서 벗어나지 않았다면, 그 라인에서 한 작업들을 모두 취소한다.
:q! Save하지 않고 vi를 끝낸다.
:e! 현재 편집중인 화일을 버리고 다시 편집한다.


<HR>

문자열 삽입(Appending text)

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


* a 커서의 오른쪽에 쓰기 시작한다.
* A 커서가 위치한 라인의 맨 끝에 쓰기 시작한다.
* i 커서의 위치부터 쓰기 시작한다.
* I 커서가 위치한 라인의 맨 처음부터 쓰기 시작한다.
* o 커서가 위치한 라인 밑에 새로운 라인을 만들고 거기에 쓰기 시작한다.
* O 커서가 위치한 라인 위에 새로운 라인을 만들고 거기에 쓰기 시작한다.
* . 앞에 실행했던 명령을 N번 반복한다.


<HR>

문자열 삭제(Deleting text)

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


* x 커서 오른쪽의 N개의 문자를 지운다.
* X 커서 왼쪽의 N개의 문자를 지운다.
* d<move> 커서가 위치한 곳에서부터 <move>로 인해 움직인 위치까지 지운다.
* dd 커서의 위치로부터 밑으로 N개의 라인을 지운다.
- D 커서의 위치로부터 오른쪽의 문자를 모두 지운다.
* . 최근에 실행했던 명령을 N번 반복한다.


<HR>

문자열 수정(Changing text)

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


* r<char> 커서의 위치로부터 N개의 문자를 <char>로 바꾼다.
* R 라인의 나머지를 덮어쓴다.
* s N개의 문자를 교체한다.
* S N개의 라인을 교체한다.
* c<move> 커서의 위치로부터 <move>의 위치까지 바꾼다. 예를 들어 cw는 한 단어를 바꾸는 명령이다.
* cc N개의 라인을 바꾼다.
* C 라인의 나머지 부분을 바꾼다.
- ~ 대문자와 소문자를 각각 소문자와 대문자로 바꾼다.
* J N개의 라인을 연결한다.
* . 가장 최근의 명령을 N번 반복한다.
- & 가장 최근의 `ex'의 교체명령을 반복한다.
- :[x,y]s/<p>/<r>/<f> x번째 라인에서 y번째 라인까지 <p>의 문자열을 <r>이라는 문자열로 교체한다. <f>는 여러가지 옵션인데, c는 확인을 요하는 옵션이고 g는 무조건 교체하라는 옵션이다.


<HR>

문자열 기억(yanking)

Yanking하기 전에 a-z, A-Z 까지의 문자중 하나를 친 후 yanking하는 경우 기억된 문자열이 각 문자에 해당하는 buffer에 저장된다. 그렇지 않은 경우 단순히 undo를 위한 buffer에 저장된다.


* y<move> 커서의 위치로부터 <*><move>후 움직인 위치까지 저장한다.
* yy N개의 라인을 저장한다.
* Y yy와 같은 역할.
- m<a-z> 커서의 위치를 문자로 마크한다.


<HR>

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


:q Buffer가 변하지 않은 경우 vi를 끝낸다.
:q! 강제로 vi를 종료한다.
^Z vi를 종료한다.
:w 화일에 저장한다.
:w <화일명> <화일명>으로 저장한다.
:w >> <화일명> Buffer의 내용을 <화일명>에 붙인다.
:w! <화일명> 편집하고 있는 화일을 <화일명>에 강제로 저장한다.
:x,y w <화일명> x부터 y번째 라인의 내용을 <name>에 저장한다.
:wq 화일에 저장하고 vi를 끝낸다. 어떤 version에서는 저장이 제대로 되지 않는 경우도 있으므로 그 경우는 ZZ를 사용하면 된다.
ZZ Buffer의 내용이 변한 경우 화일에 저장하고 vi를 끝낸다.
:x [<file>] ZZ와 같지만, <file>에 저장하고 끝낸다.
:x! [<file>] `:w![<file>]' + `:q'.
:f <화일명> 현재 편집하고 있는 화일명을 <화일명>으로 바꾼다.
:cd [<dir>] 현재 작업하고 있는 디렉토리에서 <dir>로 바꾼다. (default는 홈 디렉토리이다.)
:cd! [<dir>] cd와 같지만, 변화를 저장하지 않는다.
:e<화일명> <화일명>으로 지정한 화일을 편집한다.
:e!<화일명> 현재 편집중인 변경된 화일을 버리고 <화일명>으로 지정한 화일을 편집한다.
:rew 최초의 화일로 돌아간다.
:rew! 현재 편집중인 변경된 화일을 버리고 최초의 화일로 돌아간다.
:n [<files>] 다음의 화일을 편집한다.
:n! [<files>] 현재 편집중인 변경된 화일을 버리고 다음의 화일을 편집한다.iting the current buffer.


<HR>

Display 명령어


^G 화일명, 현재 라인의 위치, 전체 화일에 대한 상대적인 위치 등을 나타낸다.
^L 스크린을 새롭게 한다.(refresh)
[*]^E 커서는 자기 자리에 그대로 있고(화면의 바깥으로 나가지 않는 이상) 화면 전체가 밑에서 N라인 위로 이동한다.
[*]^Y 커서는 자기 자리에 그대로 있고 화면 전체가 위에서 N라인 밑으로 내려온다.
[*]^D N라인 밑으로 scroll한다.(default: page의 반)
[*]^U N라인 위로 scroll한다.(default : page의 반)
[*]^F N 페이지 밑으로 간다.
[*]^B N 페이지 위로 간다.


<HR>

명령어와 문자열의 간단한 지정.(Mapping and abbreviation)


:map <생략형> <문자형> <생략형>에 해당하는 문자(키보드의 키)에 대해 <문자형>에 해당하는 기능으로 변경한다. 예를 들어 :map V 'ap 라고 쓴다면 앞으로 명령모드에서 P라고 칠때마다 a에 해당하는 buffer를 붙이게 된다.(paste) 한가지 중요한 점은 만약 기존의 명령을 mapping하는 경우 기존의 명령보다 mapping한 것을 우선으로 취급하게 되므로 주의해야 한다.
:map 모든 mapping을 보여준다.
:unmap <문자열> 문자열에 해당하는 mapping을 취소한다.
:map! <생략형> <문자형> Append 모드에서 <생략>을 입력하면 무조건 <문자형>으로 치환된다.
:map! 모든 append 모드에서의 mapping을 보여준다.
:unmap! <string> Deprive <string> of its mapping (see `:unmap').
:ab <생략형> <문자형> Append 모드에서 <생략형>을 입력한 후 ESC나 space, return키를 입력하면 <문자형>으로 전개된다.
:ab 모든 생략형을 보여준다.
:unab <string> 생략형을 취소한다.


<HR>

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


Q vi에서 ex 명령으로 전환한다.
: ex명령어를 vi상에서 사용할 수 있게 한다.
:vi ex 에서 vi로 전환한다.
:sh 잠시 shell환경으로 나간다. 다시 vi로 돌아오려면 exit를 치면 된다.
:[x,y]!<명령어> x에서 y까지의 라인을 input으로 해서 shell의 <cmd>를 수행하여 그 output으로 대체한다.
:[x,y]!! [<args>] 가장 최근의 shell명령어를 수행하고 <args>를 붙인다.
[*]!<move><cmd> <move>까지의 라인을 input으로 하여 shell의 <cmd>를 수행하고 그 output으로 대체한다.
[*]!<move>!<args> <args>를 가장 최근의 <cmd> and execute it, using the lines described by the current <*><move>.
[*]!!<cmd> N 라인을 shell의 <cmd>명령어의 input으로 하여 그 output으로 그 라인들을 대체한다.
:x,y w !<cmd> x에서 y까지의 라인을 <cmd>의 input으로 한다. (w와 !사이에 space가 있는것에 주의.)
:r!<cmd> <cmd>의 output을 새로운 라인에 붙인다.
:r <화일명> <화일명>의 화일을 buffer에서 읽어들인다.


<HR>

vi를 시작할 때.(option)


vi [<files>] file의 첫 페이지에서부터 edit하기 시작한다.

앞서 설명했던 `:set'이나 `:map', `:ab' 등의 설정은 일단 vi를 종료하면 없어진다. 만약 이 설정이 매회 사용하는 것이라면 vi를 가동할 때 마다 이들 명령어를 입력하지 않으면 안된다. vi는 이들 설정을 홈 디렉토리의 `.exrc'라는 화일에 기술해 놓으면 가동시에 자동적으로 `.exrc'를 참조하여 set이나 map, ab등을 설정해 준다. .exrc에는 :이 필요없다. 다음의 예를 살펴보자. <PRE> set ai aw nu 자동 인덴트, 자동쓰기, 행 번호의 지정.
set ts=4 탭 정지를 4로 지정.
map! PO POSTECH PO라고 입력하면 자동적으로 POSTECH으로 변환.
이런 식으로 .exrc 화일을 만들면 된다. 만약 .exrc가 아닌 새로운 설정화일을 사용하려면, vi를 실행시킨 상태에서 <PRE> :so file
이라고 쓰면 된다. 간단한 설정의 경우라면 `vi +<cmd> file', 의 형태로 vi를 시작할 수 있다.

<PRE>vi +x file
커서가 x번째 라인으로 위치한 상태에서 vi가 시작된다.

<PRE>vi +/<문자열> file
<문자열>이 처음 나타나는 위치에서 vi가 시작된다.

<PRE>vi -t <tag>
지정한 tag를 사용하여 vi가 시작된다.

가끔씩 시스템의 에러로 vi가 비정상적으로 종료할 경우가 있는데, 이때에는 `vi -r file'의 명령을 사용하여 잃어버린 데이타를 찾을 수 있다. 그냥 `vi -r'을 치면 복구할 수 있는 화일의 리스트가 나타난다. 그리고 text를 단순히 보기만 할 경우(no change) `view'를 사용하거나 `vi -R'을 사용해서 text를 볼 수 있다.


<HR>

중요한 옵션들(The most important options)


ai autoindent - Indent(단락구분)을 한다. 되돌가갈 때는 <Ctrl>+<d>
aw autowrite - 자동적으로 화일을 쓰기 시작한다.
dir=<string> directory - 임시 화일을 만들 디렉토리.(default /tmp)
eb errorbells - 실수를 한 경우 Beeps 음을 울린다.(모든 터미날에서 되는 것은 아니다.
handtabs vi의 단말 탭수를 설정한다.
ic ignorecase - 정규표현에서 대문자, 소문자의 구별을 하지 않는다.
list 탭(<lf>), 행말(`$')을 표시한다.
mesg vi가 발생하는 이외의 메시지도 화면에 표시한다.
nu number - 행 번호를 표시한다.
readonly 편집 화일을 write 금지 상테에서 read한다. 예외로서, `w!'를 실행했을 경우는 강제적으로 write된다.
redraw 편집에서의 삭제, 삽입시에 적극적으로 화면을 재표시한다. noredraw(초기설정값)일 때에 삭제, 삽입을 하면 공백분은 @표 표시되며 재표시되지 않는다. redreaw로 설정할 때는 통신 속도가 빠른 상태가 아니면 재표시를 하기 위하여 반응이 둔해지므로 주의해야 한다.
remap :map으로 치환된 문자/명령어를 :map에서 다시 다른 문자/명령어로 등록하는 것을 허가한다.
report 변경/삭제/대피에 의해 영향받았던 행수가 지정차를 초과하였을 경우, 화면 한단에 그 행수를 표시한다.
showmatch 대응하는 괄호끼리 커서를 뛰어넘는 `match 기능'을 ON으로 한다.
showmode 화면 우측 아래에 현재의 vi mode를 표시한다.
terse 에러 메시지를 약식 표시로 한다.
warm 편집에서 변경한 내용을 기록하지 않은 상태에서 `:!'로 시작되는 명령을 실행하였을 때에 `NO write since last change'라는 경고 메시지를 표시하도록 한다.
wrapscan 커서 위치에 관계 없이 버퍼 내 모두를 문자열 검색 대상으로 한다. now로 하였을 경우 문자열 검색은 현재의 커서 위치에서 최후의 문자까지 종료한다.
writeany 편집한 내용을 화일에 기록할 때의 vi에 의한 안전 체크를 해제한다.
scroll <Ctrl>+<Ctrl> <Ctrl>+<u>로 스크롤할 행수를 설정한다.
tabstop 화면에 표시되는 외관상의 탭수를 설정한다.
wrapmargin 오른쪽 마진을 설정한다. 설정한 마진수를 초과하면 화면이 옆으로 밀리지 않고 리턴으로 개행된다. 0(초기설정치)를 설정하면 이 기능을 OFF로 한다.
paragraphs 편집 텍스트 중 단락의 구분을 나타내는 문자조를 설정한다. vi는 이것에 의해 설정된 문자로 둘러싸인 블록을 하나의 단락으로 인식하여 문자조의 사이를 }과 {으로 이동시킬 수 있다. 이 이동에서는 섹션으로 설정된 문자조도 단락으로 간주한다. Default의 설정에서는 .IP, .LP, .PP, .P, .LI, .pp, .lp, .ip, .bp 10개의 문자조가 설정되어 있다.
ections paragraphs의 단락에 대해서 섹션은 절을 구획짓는 문자를 설정한다. 절 사이의 이동에는 [과 ]을 사용한다. 이 때 paragraph로 설정된 문자조를 단락으로 간주하지 않는다. Default로는 NH, .SH, .H, .HU, .us, .sh, .+c 의 7문자조가 설정되어 있다.


<HR>

옵션의 세팅과 확인.


:set <option> <option>을 사용함.
:set no<option> <option>을 사용하지 않는다.
:set <option>=<value> <option>을 <value>값으로 지정한다.
:set Default가 아닌 모든 옵션들의 값들을 보여준다.
:set <option>? <option>에 해당하는 값을 보여준다.
:set all 모든 option과 각각의 값들을 보여준다.



MSIE 6.0 (Windows NT 5.1) 210.105.172.170

윗글파일의 퍼미션(Permission : 접근권한) 에 대하여...
아랫글나모웹에디터를 이용하여 파일 전송하기

판매왕 바로가기
무료 게시판, 프로그램 서비스