VI(1)

명칭
ex, vi, view - 텍스트 문자 편집기

서식
ex [-eFGRrSsv ] [-c cmd ] [-t tag ] [-w size ] [file ...]
vi [-eFGlRrSv ] [-c cmd ] [-t tag ] [-w size ] [file ...]
view [-eFGRrSv ] [-c cmd ] [-t tag ] [-w size ] [file ...]

라이센스
vi 프로그램은 자유롭게 재배포할 수 있습니다. 라이센스 파일에 든 조건의 기로, 카피, 개변, 다른 사람과의 공유는 자유롭게 해 주세요. 어딘가의 회사 (개인이 아닙니다! )(으)로 vi 가 구입을 희망하는 만큼 충분히 유용하다라고 인정했을 경우, 또는 회사에서 재배포를 희망하는 경우, 저자에게 기부를 받을 수 있으면 좋겠습니다.

해설
vi (은)는 스크린 지향의 텍스트 문자 편집기입니다. ex 하행 지향의 에디터입니다. ex (와)과 vi (은)는 같은 프로그램으로 다른 인터페이스를 제공해, 에디트중으로 전환하는 것이 가능합니다. view 하 vi 에 -R (읽기 전용) 옵션 (을)를 붙여 실행했을 경우와 같습니다.

이 메뉴얼은 ex/vi 텍스트 문자 편집기로부터 파생했다 nex/nvi 용무로서 제공되고 있습니다. nex/nvi (은)는 Fourth Berkeley Software Distibution (4BSD) 오리지날의 ex (와)과 vi 의 버그 하나 하나의 호환성도 포함해 옮겨놓으려고 했습니다. 이 메뉴얼에서는, 이후, 전통적인 ex/vi 의 실장과 구별할 필요가 있는 때만, nex/nvi 그렇다고 하는 표현을 사용합니다.

이 메뉴얼 페이지는, ex/vi (을)를 이미 잘 알고 있는 유저를 위한 물건입니다. 그 이외의 사람은, 이 메뉴얼을 읽기 전에 좋은 튜토리얼을 제대로 읽어 두어야 합니다. 당신이 서투른 환경의 아래에서, 가부간의 대답 없고, 게다가 즉시 일을 정리하지 않으면 안 되면, 옵션의 일람의 뒤에 있는,``퍼스트 스타트 업''라고 한다 타이틀의 섹션을 읽어 주세요. 당신이 그 일을 해내려면 , 아마 이것으로 충분하겠지요.

이하의 옵션을 이용할 수 있습니다:

-c  에디트 세션이 스타트 한 다음에 곧바로 cmd (을)를 실행합니다. 특히 파일중의 최초의 위치를 결정하는데 매우 도움이 됩니다만, cmd (은)는 포지죠닝코만드로 한정되지 않습니다. 이것은, 전통적인 ``+cmd'' 구문에 대신하는, POSIX 1003.2 로 규정된 인터페이스입니다. nex/nvi (은)는 신구 어느 쪽의 구문도 서포트하고 있습니다.

-e  명령명이 ex 인것 같이, ex 모드로 편집을 개시합니다.

-F  편집을 개시할 때에 파일 전체의 카피를 작성하지 않습니다 (디폴트에서는, 당신의 편집 작업중에 다른 누군가가 파일을 변경 하는 경우에 대비해 카피를 작성합니다).

-l  lisp 옵션과 showmatch 옵션을 세트 해 편집을 시작합니다.

-G  gtagsmode 옵션이 세트 되고 있을 때 것과 같이, gtags 모드로 편집을 개시합니다.

-R  명령명이 view, 인것 같이, 혹은 readonly 옵션 첨부로 기동되었는지와 같이, 읽기 전용 모드로 편집을 개시합니다.

-r  지정한 파일의 복구를 행합니다. 만약 파일이 지정되지 않았던 경우는, 복구 가능한 파일의 일람을 표시합니다. 만약, 복구 가능한 파일안에 지정한 이름의 것이 없었던 경우는, -r 옵션이 지정되지 않았는지와 같이, 그 파일의 편집을 행합니다.

-S  외부 프로그램에의 모든 액세스를 허락하지 않는다 secure 에디트 옵션을 세트 해 기동합니다.

-s  배치 모드에 들어갑니다. 배치 모드는 ex 에디트 세션때 밖에 사용할 수 없습니다. 배치 모드는 ex 스크립트를 실행할 때에 편리합니다. 이 모드에서는, prompt나, 정보를 전하는 메세지나, 그 외의 유저전용의 메세지는 출력되지 않고, 스타트 업 파일이나 환경 변수는 읽히지 않습니다. 이것은, 전통적인 ``-''인수에 대신하는, POSIX 1003.2 로 규정된 인터페이스입니다. nex/nvi (은)는 신구 어느 쪽의 구문도 서포트하고 있습니다.

-t  지정한 태그의 위치에서 에디트를 개시합니다. ( ctags(1) 참조)

-w  기동시의 윈도우의 크기를 지정한 행수로 합니다.

-v  명령명이 vi 인가 view 인것 같이, vi 모드로 에디트를 개시합니다.

ex/vi 에의 명령 입력은, 표준 입력으로부터 행해집니다. vi 의 인터페이스는, 표준 입력이 단말이 아닌 경우에는 에러가 됩니다. ex 의 인터페이스에서는, ex (은)는, 표준 입력이 단말이 아니어도, 정확히 -s 옵션이 지정되어 있는 경우와 같이 세션이 배치 모드 에서 만나도, 어쨌든 읽어들입니다.

ex/vi (은)는 성공시에 0 을, 에러가 일어났을 때에는 0 보다 큰 값을 돌려줍니다.

퍼스트 스타트 업
이 섹션은, vi (을)를 사용해 간단한 편집 작업을 행하는데 필요한 최저한을 가르쳐 주겠지요. 당신이 이전에 한번도 스크린 에디터를 사용했던 적이 없으면, 이 간단한 소개 의 장조차도 문제가 될지도 모릅니다. 이 경우는, 벌써 vi (을)를 알고 있는 사람을 찾아, 그 사람과 함께 이 섹션을 읽어야 합니다.

vi (은)는 스크린 에디터입니다. 즉, vi (은)는 항상 화면 전체를 사용해, 파일의 일부분을 화면상의 (맨 마지막 줄 이외의) 각각의 행에 표시합니다. 화면의 맨 마지막 줄은, 당신이 vi 에 명령을 주거나 vi 하지만 당신에게 정보를 주거나 하는데 사용됩니다.

또 하나 알아 두어야 할 일로서 vi (은)는 모드를 가진 에디터인 일이 있습니다. 즉, 텍스트를 입력하거나 명령을 실행하거나 하려면 , 각각의 작업을 올바른 모드로 실행하지 않으면 안됩니다. 파일 편집의 처음은 명령 모드가 되어 있습니다. 입력 모드로 한다 명령이 몇인가 있습니다. 입력 모드로부터 빠지는 키는 단 하나, 그것은 <escape> 키입니다. (키의 이름은,<,> 그럼씨로 쓰기로 하겠습니다. 예를 들면,<escape> 은 ``이스케이프''키를 가리켜, 통상 키보드에서는, ``esc''라고 표시되어 있습니다. ) 어느 모드에 있는지가 알지 않게 되었다면, vi 하지만, beep음을 낼 때까지,<escape> 키를 계속 눌러 주세요. (일반적으로, vi (은)는, 용서되지 않은 것을 무엇인가 시도하거나 행하거나 하면(자) beep음을 울립니다. 에러 메세지도 표시합니다. )

파일의 편집을 시작하려면 , ``vi file_name<carriage-return>'' 그렇다고 하는 상태로, 명령을 넣습니다. 편집을 시작하면(자), 우선 즉시, ``:set verbose showmode<carriage-return>'' (와)과 명령을 넣읍시다. 그렇게 하는 것에 의해, 에디터는, 화면의 맨 마지막 줄에 상세한 에러 메세지를 보내게 되고, 현재의 모드도 표시하게 됩니다.

파일내를 이동하는 명령 :

h   커서를 1 캐릭터왼쪽에 작동시킨다.

j   커서를 1 행 하에 움직인다.

k   커서를 1 행 상에 움직인다.

l   커서를 1 캐릭터 오른쪽에 작동시킨다.

<cursor-arrows>
    커서를 화살표가 가리키는 (분)편에 움직인다.

/text<carriage-return>
    파일중의 ``text''를 검색해, 그 최초의 캐릭터에 커서를 이동합니다.

새롭고 문서 입력하는 명령 :

a   입력한 문서 커서의 뒤에 추가합니다.

i   입력한 문서 커서의 전에 삽입합니다.

o   커서아래에 새로운 행을 마련해, 문서의 입력을 개시합니다.

O   커서 위에 행을 마련해, 문서의 입력을 개시합니다.

<escape>
    일단, a, i, O 없고 o 등의 명령로 입력 모드에 들어가고 나서는, 문서의 입력을 종료해 명령 모드에 돌아오기 위해서(때문에)는, <escape> 명령을 이용합니다.

문서를 카피하는 명령 :

yy  커서가 있는 행을 카피합니다.

p   커서가 있는 행아래에 카피한 행을 추가합니다.

문서를 삭제하는 명령 :

dd  커서가 있는 행을 삭제합니다.

x   커서가 있는 캐릭터를 삭제합니다.

파일에 기입하는 명령 :

:w<carriage-return>
    원래 vi 의 명령행으로 지정한 파일에, 파일의 내용을 써 되돌립니다.

:w file_name<carriage-return>
    지정된 ``file_name''에, 파일의 내용을 써냅니다.

편집을 종료해, 에디터를 빠지는 명령 :

:q<carriage-return>
    에디트를 종료해, vi 로부터 빠집니다. (파일 내용이 변경되고 있어 아직 보존되어 있지 않으면, vi (은)는, 종료 지시를 거부합니다)

:q! <carriage-return>
    변경한 내용을 방폐해, 종료합니다.

마지막에 주의해 주셨으면 한 것으로서 통상의 캐릭터가 아닌 캐릭터는, 화면상에서 복수 컬럼을 차지하는 일이 있습니다. 또, 긴 행은, 화면상의 1 행에 들어가지 않는 것도 있습니다. 상기의 명령은,``물리적인''행이나 캐릭터에 대해서 작용합니다. 즉, 행 관계의 명령은 그 행이 화면상에서 몇행이 되려고 행 전체에 영향을 미치고, 캐릭터 관계의 명령은 그 캐릭터가 화면상에서 무슨 컬럼을 차지하고 있어도, 그 캐릭터 전체에 영향을 미칩니다.

VI 명령
이하의 장에서는, vi 의 명령 모드로 나타나는 커멘드에 대해 설명합니다. 각각의 기술에서는, 표제행에 명령의 사용 서식을 일람표 가리킵니다.

[count] <control-A>
    count 그리고 지정한 회수만, 전방에 현재의 단어를 검색합니다.

[count] <control-B>
    count 그리고 지정한 회수만, 화면을 후방에 되돌립니다.

[count] <control-D>
    count 그리고 지정한 행수만큼, 화면을 전방에 스크롤 합니다.

[count] <control-E>
    count 그리고 지정한 행수만큼, 화면을 전방에 스크롤 합니다. 커서는 현재행으로부터 멀어집니다만, 가능한 경우는 원래의 컬럼에 머뭅니다.

[count] <control-F>
    count 그리고 지정한 회수만, 화면을 전방에 스크롤 합니다.

<control-G>
    파일 정보를 표시합니다.

<control-H>

[count] h
    count 그리고 지정한 캐릭터수만큼, 커서를 현재행중에서 되돌립니다.

[count] <control-J>

[count] <control-N>

[count] j
    count 그리고 지정한 행수만큼, 컬럼 위치를 바꾸지 않고 커서를 아래에 이동합니다.

<control-L>

<control-R>
    화면을 재표시합니다.

[count] <control-M>

[count] +
    count 그리고 지정한 행수만큼 아래의 행의, 최초의 공백 이외의 캐릭터의 위치에 커서를 이동합니다.

[count] <control-P>

[count] k
    count 그리고 지정한 행수만큼, 컬럼 위치를 바꾸지 않고 커서를 위에 이동합니다.

<control-T>
    최근의 태그 상태로 돌아옵니다.

<control-U>
    count 그리고 지정한 행수만큼, 화면을 후방에 스크롤 합니다.

<control-W>
    편집중의 다음의 하위의 스크린에 바뀝니다. 편집중의 하위의 스크린이 그 밖에 없는 경우에는, 최초의 스크린에 바꿉니다.

<control-Y>
    count 그리고 지정한 행수만큼, 화면을 후방에 스크롤 합니다. 할 수 있는 한 현재의 행, 컬럼에 커서를 남깁니다.

<control-Z>
    현재의 처리를 중단 (suspend)합니다.

<escape>
    ex 명령을 실행합니다. 혹은, 실행중의 커멘드를 부분적으로 캔슬합니다.

<control-]>
    태그 참조의 내용을 태그 스택에 푸쉬 합니다. gtagsmode 에서는, 행의 최초의 컬럼에 있을 때는 함수의 참조 위치를 찾아, 그렇지 않을 때는 함수의 정의 위치를 찾습니다.

<control-^>
    마지막에 편집한 파일에 바꿉니다.

[count] <space>

[count] l
    count 그리고 지정한 캐릭터수만큼, 커서를 전방에 행을 바꾸지 않고로 이동합니다.

[count] !  motion shell-argument(s)
    쉘 명령의 결과를 이용해 문서를 옮겨놓습니다.

[count] # #|+|-
    커서가 가리키는 장소의 수를 증감합니다.

[count] $
    커서를 현재의 행의 말미로 이동합니다.

%   대가 되는 캐릭터에 커서를 이동합니다.

&   현재행으로, 전회 실행한 치환 명령을 다시 실행합니다.

'<character>

`<character>
    마크 한 캐릭터 <character> 의 장소에 돌아옵니다. <character>.

[count] (
    count 그리고 지정된 수만큼, 전의 문장에 돌아옵니다.

[count] )
    count 그리고 지정된 수만큼, 뒤의 문장에 이동합니다.

[count] ,
    count 그리고 지정된 회수만, 역방향에 캐릭터를 검색합니다.

[count] -
    count 그리고 지정된 회수만, 직전의 행으로 최초로 나타나는 공백이 아닌 캐릭터에의 이동을 행합니다.

[count] .
    직전의 vi 편집 명령을 반복합니다.

/RE<carriage-return>

/RE/ [offset]<carriage-return>

? RE<carriage-return>

? RE?  [offset]<carriage-return>

N

n   전방/후방으로 향해, 정규 표현에 의한 검색을 행합니다.

0   현재행의 최초의 캐릭터로 이동합니다.

:   ex 명령을 실행합니다.

[count] ;
    캐릭터 검색을 count 그리고 지정된 회수만 반복합니다.

[count] < motion

[count] > motion
    현재행을, 좌/우에 쉬프트 합니다.

@ buffer
    버퍼에 보존된 명령을 실행합니다.

[count] A
    입력 모드에 들어가, 문서를 행의 마지막에 추가합니다.

[count] B
    count 그리고 지정된 회수만, 대단어 (bigword)의 선두 캐릭터에의 이동을 반복합니다.

[buffer] [count] C
    현재 위치로부터 줄 끝까지를 변경합니다.

[buffer] D
    현재 위치로부터 줄 끝까지 삭제합니다.

[count] E
    count 그리고 지정된 회수만, 대단어의 말미의 캐릭터에의 이동을 반복합니다.

[count] F <character>
    count 그리고 지정된 회수만, 행의 선두로부터 역방향으로 캐릭터 <character> (을)를 검색/이동을 반복합니다.

[count] G
    파일의 최초부터 세어 count 행목에, 혹은 count (을)를 지정하지 않았을 때는 파일의 말미의 행에, 커서를 이동합니다.

[count] H
    화면의 최초부터 세어 count - 1 행목으로 이동합니다.

[count] I
    입력 모드에 들어가, 행의 선두에 문서를 삽입합니다.

[count] J
    현재행과 다음의 행을 결합합니다.

[count] L
    화면아래로부터 세어 count - 1 행목으로 이동합니다.

M   화면 중앙의 행에 이동합니다.

[count] O
    입력 모드에 들어갑니다. 현재행의 직전에 새로운 행을 만들어, 문서를 추가합니다.

[buffer] P
    버퍼에 보존한 문서를 삽입합니다.

Q   vi (혹은 visual) 모드를 종료해, ex 모드에 바뀝니다.

[count] R
    입력 모드에 들어가, 현재행의 내용을 옮겨놓습니다.

[buffer] [count] S
    count 그리고 지정한 행수만큼, 행을 옮겨놓습니다.

[count] T <character>
    count 그리고 지정한 회수만, 현재행으로 역방향으로 검색해, 지정된 캐릭터 <character> 의 뒤 의 캐릭터로 이동합니다.

U   현재행을, 커서가 마지막에 들어 왔을 때의 직전의 상황에 복원합니다.

[count] W
    count 그리고 지정한 회수만, 대단어 단위로 이동합니다.

[buffer] [count] X
    count 그리고 지정한 회수만, 커서의 전의 캐릭터를 삭제합니다.

[buffer] [count] Y
    행의 카피, (혹은 ``얀크'')를 count 그리고 지정한 행수만큼, 지정한 버퍼에 수중에 넣습니다.

ZZ  파일에 기입해, vi (을)를 종료합니다.

[count] [[
    count 그리고 지정한 회수만, 후방의 섹션의 선두에 이동합니다.

[count] ]]
    count 그리고 지정한 회수만, 전방의 섹션의 말미에 이동합니다.

^   현재행의 공백이 아닌 최초의 캐릭터에 이동합니다.

[count] _
    count - 1 그리고 지정한 행수만큼, 아래의 행의 최초의 공백이 아닌 캐릭터에 이동합니다.

[count] a
    입력 모드에 들어가, 커서의 뒤로 문서를 추가합니다.

[count] b
    count 그리고 지정한 회수만, 후방에 단어 단위로 이동합니다.

[buffer] [count] c motion
    범위 지정한 문서를 변경합니다.

[buffer] [count] d motion
    범위 지정한 문서를 삭제합니다.

[count] e
    count 그리고 지정한 수만큼 전방의 단어의 끝으로 이동합니다.

[count] f<character>
    현재행 중(안)에서, 줄 끝까지 count 그리고 지정한 회수만, <character> (을)를 검색합니다.

[count] i
    입력 모드에 들어가, 커서의 전에 문서를 삽입합니다.

m <character>
    현재 상태 (행과 컬럼)를 <character> 에, 보존합니다.

[count] o
    입력 모드에 들어갑니다. 현재행아래에 새로운 행을 만들어, 문장을 추가합니다.

[buffer] p
    버퍼로부터 문장을 꺼내, 추가합니다.

[count] r <character>
    count 그리고 지정한 캐릭터수만큼, 캐릭터를 치환합니다.

[buffer] [count] s
    현재행 중(안)에서, 커서가 있는 캐릭터로부터 count 그리고 지정하는 회수만, 캐릭터를 바꿔 넣습니다.

[count] t <character>
    현재행 중(안)에서, 전방에 count 그리고 지정하는 회수만, <character> (을)를 검색해, 그 캐릭터의 직전 에 이동합니다.

u   파일에 마지막에 행한 변경을 취소합니다.

[count] w
    count 그리고 지정한 회수만, 전방에 단어 단위로 이동합니다.

[buffer] [count] x
    count 그리고 지정한 회수만, 캐릭터를 삭제합니다.

[buffer] [count] y motion
    count (와)과 motion 로 지정된 범위를 버퍼에 카피 (혹은 ``yank'')합니다.

[count1] z [count2] -|. |+|^|<carriage-return>
    화면을 재표시합니다. 아울러 커서 위치나 화면의 사이즈를 변경하는 일도 할 수 있습니다.

[count] {
    count 그리고 지정한 회수만, 후방에 단락 단위로 이동합니다.

[count] |
    현재행 중(안)에서 count 그리고 지정했다 column 위치로 이동합니다.

[count] }
    count 그리고 지정한 회수만, 전방에 단락 단위로 이동합니다.

[count] ~
    count 그리고 지정한 회수만, 캐릭터 (열)의 대문자, 소문자를 바꿔 넣습니다.

[count] ~ motion
    count (와)과 motion 그리고 지정된 범위의 캐릭터 라인의 대문자 소문자를 바꿔 넣습니다.

<interrupt>
    현재의 작업을 중단합니다.

VI 의 문서 입력 명령
이하의 섹션에서는, vi 에디터의 문서 입력에 용 하는 명령에 관해서 적습니다.

<nul>
    직전의 입력을 반복합니다.

<control-D>
    직전의 shiftwidth 의 컬럼 경계까지 소거합니다.

^<control-D>
    오토 인덴트 캐릭터를 전부 지워, 인덴트 상태를 해제합니다.

0<control-D>
    오토 인덴트 캐릭터를 전부 지웁니다.

<control-T>
    커서가 shiftwidth 옵션의 짝수배의 컬럼수의 직후에 올 때까지, 적당한 수의 <tab> (와)과 <space> 캐릭터를 삽입합니다.

<erase>

<control-H>
    마지막에 입력한 캐릭터를 지웁니다.

<literal next>
    다음의 캐릭터를 인용합니다.

<escape>
    문서를 전부 파일에 격납해, 명령 모드에 돌아옵니다.

<line erase>
    현재행을 지웁니다.

<control-W>

<word erase>
    마지막에 입력한 단어를 지웁니다. 단어의 정의는, altwerase (와)과 ttywerase 의 옵션에 의존합니다.

<control-X>[0-9A-Fa-f]+
    지정한 16 진의 값을 가지는 캐릭터를 삽입합니다.

<interrupt>
    문서 입력 모드를 중단해, 명령 모드로 돌아옵니다.

EX 명령
이하의 섹션에서는, ex 에디터로 이용되는 명령에 관해서 적습니다. 이하의 엔트리 가운데, 찾아내 행에는 명령의 사용 서식을 기재되어 있습니다.

<end-of-file>
    화면을 스크롤 합니다.

!  argument(s)

[range]!  argument(s)
    쉘 명령을 실행하는지, 혹은 쉘 커멘드를 이용해 지정 범위의 행에 필터를 겁니다.

"   코멘트입니다.

[range] nu[mber] [count] [flags]

[range] # [count] [flags]
    지정행을, 그 행 번호를 앞에 두고 붙여 표시합니다.

@ buffer

* buffer
    버퍼의 내용을 실행합니다.

[line] a[ppend][! ]
    지정행의 뒤에, 입력 캐릭터를 추가합니다.

[range] c[hange][! ] [count]
    range 그리고 지정한 범위를 입력 캐릭터로 옮겨놓습니다.

cs[cope] add | find | help | kill | reset
    cscope 명령을 실행한다.

[range] d[elete] [buffer] [count] [flags]
    파일로부터 행을 삭제합니다.

di[splay] b[uffers] | c[onnections] | s[creens] | t[ags]
    버퍼, cscope 접속, 화면, 태그를 표시합니다.

[Ee][dit][! ] [+cmd] [file]

[Ee]x[! ] [+cmd] [file]
    다른 파일을 편집합니다.

exu[sage] [command]
    지정했다 ex 명령의 사용법을 표시합니다.

f[ile] [file]
    파일명을 표시해, 지정이 있으면 파일명을 변경합니다.

[Ff]g [name]
    vi 모드만. 지정한 화면을 foreground에 표시합니다.

[range] g[lobal] /pattern/ [commands]

[range] v /pattern/ [commands]
    패턴에 합치한 (하지 않는다) 행에 명령을 적용합니다.

he[lp]
    헬프 메세지를 표시합니다.

[line] i[nsert][! ]
    입력 문서를 지정한 행의 전에 삽입됩니다.

[range] j[oin][! ] [count] [flags]
    행을 결합합니다.

[range] l[ist] [count] [flags]
    행을 애매함이 없게 표시합니다.

map[! ] [lhs rhs]
    MAP를 정의 혹은 표시합니다. ( vi 마셔)

[line] ma[rk] <character>

[line] k <character>
    행을 <character> (으)로서 마크 합니다.

[range] m[ove] line
    지정한 행을 목표행의 뒤로 이동합니다.

mk[exrc][! ] file
    약어, 에디터의 옵션, MAP를 지정한 파일에 기입합니다.

[Nn][ext][! ] [file ...]
    인수 리스트로 지정한 다음의 파일의 편집으로 이행합니다.

[line] o[pen] /pattern/ [flags]
    오픈 모드에 들어갑니다.

pre[serve]
    다음에 ex -r 옵션을 이용해 파일을 복원할 수 있는 형식으로 해 보존합니다.

[Pp]rev[ious][! ]
    인수 리스트로 지정한 1 개(살)전의 파일을 편집합니다.

[range] p[rint] [count] [flags]
    지정한 행을 표시합니다.

[line] pu[t] [buffer]
    버퍼의 내용을 현재행에 추가합니다.

q[uit][! ]
    편집을 종료합니다.

[line] r[ead][! ] [file]
    파일을 읽어들입니다.

rec[over] file
    사전에 보존되고 있는 경우에, file (을)를 복원합니다.

res[ize] [+|-]size
    vi 모드만. 현재의 화면을 크게 하는지, 혹은 작게 합니다.

rew[ind][! ]
    인수 리스트를 되감아, 최초의 인수의 파일의 편집으로 이행합니다.

rta[g][! ] tagstring
    지정한 태그를 참조하고 있는 파일을 편집합니다. (gtagsmode 에서만 유효)

se[t] [option[=[value]] ...] [nooption ...] [option?  ...] [all]
    에디터의 옵션을 표시, 혹은 설정합니다.

sh[ell]
    쉘 프로그램을 실행합니다.

so[urce] file
    파일로부터 ex 명령을 읽어들여, 실행합니다.

[range] s[ubstitute] [/pattern/replace/] [options] [count] [flags]

[range] & [options] [count] [flags]

[range] ~ [options] [count] [flags]
    치환을 행합니다.

su[spend][! ]

st[op][! ]

<suspend>
    편집을 일시 중단합니다.

[Tt]a[g][! ] tagstring
    지정의 태그를 포함한 파일을 편집합니다.

tagn[ext][! ]
    현재의 태그의 다음의 태그를 포함한 파일을 편집합니다.

tagp[op][! ] [file | number]
    스택으로부터 지정한 태그를 꺼냅니다.

tagp[rev][! ]
    현재의 태그의 전의 태그를 포함한 파일을 편집합니다.

unm[ap][! ] lhs
    지정한 캐릭터 라인의 MAP 정의를 해제합니다.

ve[rsion]
    ex/vi 의 버젼을 표시합니다.

[line] vi[sual] [type] [count] [flags]
    ex 모드만. vi 모드에 들어갑니다.

[Vi]i[sual][! ] [+cmd] [file]
    vi 모드만. 새로운 파일을 편집합니다.

viu[sage] [command]
    vi 명령의 사용법을 표시합니다.

[range] w[rite][! ] [>>] [file]

[range] w[rite] [! ] [file]

[range] wn[! ] [>>] [file]

[range] wq[! ] [>>] [file]
    파일에 써냅니다.

[range] x[it][! ] [file]
    수정되고 있으면, 파일에 써서냅니다.

[range] ya[nk] [buffer] [count]
    지정행을 버퍼에 카피합니다.

[line] z [type] [count] [flags]
    윈도우의 사이즈를 조절합니다.

SET 옵션
set (또는 unset) 하는 것으로써 편집자의 동작을 변경할 수가 있다 옵션이 매우 많이 있습니다. 이 섹션에서는, 이러한 옵션과 그 단축형과 기본값을 설명합니다.

이하의 각 항목에서는, 최초로 옵션을 풀네임으로, 그 다음에 같은 의미를 가지는 단축형이 계속됩니다. 꺽쇄묶음의 부분은, 기본값입니다. 대부분의 옵션은 on 또는 off 와 같은 불리언 값으로, 관련하는 값은 가지지 않습니다.

이러한 옵션은, 특히 거절이 없는 경우는 ex (와)과 vi 의 양쪽 모두의 모드에 적용됩니다.

altwerase [off]
    vi 마셔. 다른 단어 삭제 알고리즘을 선택합니다.

autoindent, ai [off]
    개행시에 자동적으로 인덴트 합니다.

autoprint, ap [off]
    ex 마셔. 자동적으로 현재의 행을 표시합니다.

autowrite, aw [off]
    다른 파일로 전환할 때에, 파일이 변경되고 있다면 자동적으로 세이브합니다.

backup [""]
    파일이 덧쓰기되기 전에 백업파일을 작성합니다.

beautify, bf [off]
    컨트롤·캐릭터를 잘라 버립니다.

cdpath [환경 변수 CDPATH, 또는 커런트 디렉토리]
    cd 명령의 패스접두자로서 사용되는 디렉토리 패스입니다.

cedit [no default]
    코론코만드라인 히스토리를 편집하는 캐릭터를 세트 합니다.

columns, co [80]
    화면의 컬럼수를 세트 합니다.

comment [off]
    vi 마셔. 셸 스크립트, C, C++언어 파일 선두의 코멘트의 읽기를 스킵 합니다.

directory, dir [환경 변수 TMPDIR, 또는 /tmp]
    임시 파일을 작성하는 디렉토리입니다.

edcompatible, ed [off]
    치환 명령의 접미자의 ``c''와 ``g''의 값을 기억하도록(듯이) 합니다. 통상은 새롭게 명령을 실행할 때마다 초기화합니다.

errorbells, eb [off]
    ex 마셔. 에러 메세지를 벨과 함께 알립니다.

exrc, ex [off]
    로컬 디렉토리의 스타트 업 파일을 읽어들입니다.

extended [off]
    정규 표현을 egrep(1)- 스타일에 확장합니다.

filec [no default]
    코론코만드라인상의 파일 패스 보간을 행하는 캐릭터를 세트 합니다.

flash [on]
    에러시에 beep를 울리는 것이 아니라, 화면을 플래시 합니다.

gtagsmode, gt [off]
    tags 대신에 GTAGS 와 GRTAGS 를 사용합니다.

hardtabs, ht [8]
    스페이스를 하드웨어 탭 설정에 맞추어 설정합니다.

iclower [off]
    검색 캐릭터 라인에 대문자가 나타나지 않으면, 모든 정규 표현을 대문자 소문자의 구별 없게 행하도록(듯이) 합니다.

ignorecase, ic [off]
    정규 표현 검색으로 대문자 소문자의 차이를 무시합니다.

keytime [6]
    ex/vi (은)는, 후에 계속되는 키를 앞의 키에 이어 해석해 키 매핑을 행합니다만, 후에 계속되는 키 입력의 대기 시간을1/10초단위로 지정합니다.

leftright [off]
    vi 마셔. 좌우의 스크롤을 행합니다.

lines, li [24]
    vi 마셔. 화면의 행수를 설정합니다.

lisp [off]
    vi 마셔. 다양한 서치 명령와 옵션의 동작을 Lisp 언어 편집용으로 수정합니다. 이 옵션은 아직 실장되고 있지 않습니다.

list [off]
    행을 애매하지 않은 형식에서 표시합니다.

lock [on]
    어느 파일의 편집, 읽어들여, 기입해에 관해서도, 배타적 락을 한다 같게 시도합니다.

magic [on]
    어떤 종류의 캐릭터를 정규 표현중에서 특수 취급합니다.

matchtime [7]
    vi 마셔. showmatch 옵션이 설정되어 있는 경우, ex/vi (은)는 대가 되는 괄호 위에서 일시정지합니다만, 그 정지시간을 1/10 초단위로 지정합니다.

mesg [on]
    다른 유저로부터의 메세지 착신을 허가합니다.

modelines, modeline [off]
    각각의 파일의 최초와 마지막 몇 줄기를 ex 명령로서 읽어들입니다. 이 옵션이 실장되는 것은 결코 없습니다.

noprint [""]
    표시 가능한 캐릭터로서 다루어지지 않는 캐릭터를 지정합니다.

number, nu [off]
    각 행 선두에 행 번호를 붙여 표시합니다.

octal [off]
    표시 할 수 없는 캐릭터를 8 진수로 표시합니다. 디폴트에서는 16 진표시입니다.

open [on]
    ex 마셔. 이 옵션이 설정되어 있지 않으면, open (와)과 visual 명령은 용서되지 않습니다.

optimize, opt [on]
    vi 마셔. dumb terminal에의 텍스트 출력 속도를 최적화합니다. 이 옵션은 아직 실장되고 있지 않습니다.

paragraphs, para [IPLPPP"PP LIpplpipbp]
    vi 마셔. { (와)과 } 명령로 사용하는 단락 경계의 정의를 추가합니다.

path []
    편집하는 파일을 찾는 디렉토리의 추가분을 정의합니다.

print [""]
    항상 표시 가능한 캐릭터로서 다루어지는 캐릭터를 지정합니다.

prompt [on]
    ex 마셔. 명령 prompt를 표시합니다.

readonly, ro [off]
    파일과 그 세션을 읽어들여 전용으로 합니다.

recdir [/var/tmp/vi.recover]
    복원용의 파일을 두는 디렉토리입니다.

redraw, re [off]
    vi 마셔. dumb terminal상에서, 지능 단말기 를 시뮬레이트 합니다. 이 옵션은 아직 실장되고 있지 않습니다.

remap [on]
    해결될 때까지, 키 MAP를 해석합니다.

report [5]
    변경내지 얀크에 대해, 에디터가 보고하는 행수를 설정합니다.

ruler [off]
    vi 마셔. 최하행에 행/컬럼을 나타내는 괘선을 표시합니다.

scroll, scr [window / 2]
    스크롤 하는 행수를 설정합니다.

searchincr [off]
    / (와)과 ? 명령을 인크리멘탈에 세트 합니다.

sections, sect [NHSHH HUnhsh]
    vi 마셔. [[ (와)과 ]] 명령로 사용하는 섹션 경계의 정의를 추가합니다.

secure [off]
    외부 프로그램에의 모든 액세스를 멈춥니다.

shell, sh [환경 변수 SHELL, 또는 /bin/sh]
    에디터상으로부터 사용되는 쉘을 선택합니다.

shellmeta [~{[*? $`'"\]
    파일명의 확장이 필요한 때, 그 결정을 하는 메타캐라크타를 세트 합니다.

shiftwidth, sw [8]
    오토 인덴트, 쉬프트 명령로 이용하는 폭을 설정합니다.

showmatch, sm [off]
    vi 마셔. ``{''와 ``(''에 대해 ``}''와 ``)''의 괄호의 대응을 표시합니다.

showmode, smd [off]
    vi 마셔. 현재의 에디터의 모드라고 ``변경''플래그를 표시합니다.

sidescroll [16]
    vi 마셔. 좌우 스크롤로 움직이는 폭을 설정합니다.

slowopen, slow [off]
    문서를 입력중, 화면 갱신을 늦추어 표시합니다. 이 옵션은 아직 실장되고 있지 않습니다.

sourceany [off]
    현재의 유저의 소유가 아닌 스타트 업 파일을 읽어들입니다. 이 옵션이 실장되는 것은 결코 없습니다.

tabstop, ts [8]
    이 옵션은, 표시로 사용되는 탭의 폭을 설정합니다.

taglength, tl [0]
    태그의 이름을 판별 가능한 최대 캐릭터수를 설정합니다.

tags, tag [tags /var/db/libc.tags /sys/kern/tags]
    태그 파일의 리스트를 설정합니다.

term, ttytype, tty [환경 변수 TERM]
    단말의 형태를 설정합니다.

terse [off]
    이 옵션은 전통적으로 에디터가 가리키는 메세지를 보다 간결한 것으로 한다 위해(때문에) 만들어지고 있습니다. 이 실장에서는 어떤 영향도 주지 않습니다.

tildeop [off]
    ~ 명령이 연계 동작을 하도록(듯이) 수정합니다.

timeout, to [on]
    키를 MAP 할 때의 타임 아웃.

ttywerase [off]
    vi 마셔. 다른 삭제 알고리즘을 선택합니다.

verbose [off]
    vi 마셔. 에러가 일어날 때에 에러 메세지를 표시합니다.

w300 [no default]
    vi 마셔. 전송 레이트가 1200 보 이하의 경우로 설정하는 윈도우 사이즈.

w1200 [no default]
    vi 마셔. 전송 레이트가 1200 보의 경우로 설정하는 윈도우 사이즈.

w9600 [no default]
    vi 마셔. 전송 레이트가 1200 보 이상의 경우로 설정하는 윈도우 사이즈.

warn [on]
    ex 마셔. 이 옵션은, 파일이 마지막에 기입해진 다음에 파일이 수정되고 있는 경우, ! 명령이 실행되기 전에 단말에 경고 메세지 (을)를 내도록(듯이) 합니다.

window, w, wi [환경 변수 LINES]
    화면의 윈도우 사이즈를 설정합니다.

windowname [off]
    아이콘명, 윈도우명을, 비록 에디터 종료시에 되돌릴 수가 없게 된다고 해도, 현재 작업중의 파일명으로 바꿉니다.

wraplen, wl [0]
    vi 마셔. 왼쪽 마진으로부터 지정한 컬럼수로, 행을 자동적으로 되풀이합니다. 만약, wraplen (와)과 wrapmargin 의 양쪽 모두의 편집 옵션이 세트 되면(자), wrapmargin 의 값이 사용됩니다.

wrapmargin, wm [0]
    vi 마셔. 오른쪽 마진으로부터 지정한 컬럼수로, 행을 되풀이합니다. wraplen (와)과 wrapmargin 편집 옵션의 양쪽 모두가 지정되면(자), wrapmargin 의 값이 사용됩니다.

wrapscan, ws [on]
    검색이, 파일의 마지막에 달하면(자) 최초로 돌아옵니다.

writeany, wa [off]
    파일의 덧쓰기 체크를 바꿉니다.

환경 변수

COLUMNS
    화면의 컬럼수. 이 값은, 시스템이나 단말 고유의 어느 값도 덧쓰기합니다. ex/vi 의 기동시에 환경 변수 COLUMNS 하지만 설정되어 있지 않은 경우, 또는 columns 옵션에 의해 유저가 명시적으로 값을 리셋트 했을 경우는, ex/vi (은)는 환경 변수 COLUMNS 에 이 값을 설정합니다.

EXINIT
    ex 의 스타트 업 명령의 리스트. NEXINIT 하지만 설정되어 있지 않은 경우에 읽힙니다.

HOME
    유저의 홈 디렉토리. 기동시에 ``$HOME/.nexrc''와 ``$HOME/.exrc'' (을)를 읽어들이기 위한 초기 디렉토리 패스로 해서 사용됩니다. 이 값은, vi 의 cd 명령의 디폴트 디렉토리로서도 사용됩니다.

LINES
    화면의 행수. 이 값은, 시스템이나 단말 고유의 어느 값도 덧쓰기합니다. ex/vi 기동시에, 환경 변수 LINES 하지만 설정되어 있지 않은지, lines 옵션에 의해 유저가 명시적으로 값을 리셋트 했을 경우는, ex/vi (은)는 환경 변수 LINES 에 이 값을 설정합니다.

NEXINIT
    ex 의 스타트 업 명령의 리스트.

SHELL
    유저가 선택한 쉘. ( shell 옵션을 참조)

TERM
    유저의 단말의 형태. 디폴트의 형태는 ``unknown''입니다. ex/vi 기동시에 환경 변수 TERM 의 값이 설정되어 있지 않은지, 또는, term 옵션에 의해 유저가 명시적으로 값을 리셋트 했을 경우는, ex/vi (은)는 환경 변수 TERM 에 이 값을 설정합니다.

TMPDIR
    임시 파일의 작성되는 장소. ( directory 옵션을 참조)

비동기 이벤트

SIGALRM
    vi/ex (은)는, 파일 편집시의 정기적인 백업을 행하기 (위해)때문에와 처리에 긴 시간이 걸릴 것 같은 때에 화면에 ``busy''의 메세지를 표시하기 위해서, 이 시그널을 사용합니다.

SIGHUP

SIGTERM
    마지막에 파일 전체를 기입한 후, 현재의 버퍼를 변경했을 경우, 후에 복구할 수 있도록(듯이) 편집중의 파일을 보존하려고 시도합니다. 자세한 것은, vi/ex 참조 설명서의 ``Recovery''의 섹션을 참조해 주세요.

SIGINT
    이 세치기가 발생했을 경우, 현재의 조작은 정지되어 명령 레벨로 돌아옵니다. 텍스트 입력중에 이 세치기가 발생했을 경우는, 텍스트 입력을 정상적으로 종료시켰다 인가와 같이, 파일에 입력중의 텍스트를 기입합니다.

SIGWINCH
    스크린의 사이즈 변경을 행합니다. 자세하게는, vi/ex 참조 설명서의 ``Sizing the Screen''의 섹션을 참조해 주세요.

SIGCONT

SIG"UIT

SIGTSTP
    vi/ex (은)는 이러한 시그널을 무시합니다.

관련 파일

/bin/sh
    디폴트의 유저 쉘.

/etc/vi.exrc
    시스템 전체에 있어서의 vi 의 스타트 업 파일.

/tmp
    임시 파일의 디렉토리.

/var/tmp/vi.recover
    디폴트의 복원 파일의 디렉토리.

$HOME/.nexrc
    유저의 홈 디렉토리에 있는 스타트 업 파일로, 1 번 최초로 읽혀지는 파일.

$HOME/.exrc
    유저의 홈 디렉토리에 있는 스타트 업 파일로, 2 번째에 읽혀지는 파일.

.nexrc
    로컬 디렉토리에 있는 스타트 업 파일로, 1 번 최초로 읽혀지는 파일.

.exrc
    로컬 디렉토리에 있는 스타트 업 파일로, 2 번째에 읽혀지는 파일.

관련 항목
ctags(1), more(1), curses(3), dbopen(3)

``Vi "uick Reference''카드.

``An Introduction to Display Editing with Vi''의 섹션. 4.3BSD 로 4.4BSD 의 메뉴얼 세트의 ``UNIX User's Manual Supplementary Documents'' 중(안)에서 발견됩니다. 이것은, 손에 들어 오는 것의 중에서 vi 스크린 에디터의 입문서에 가장 가까운 것입니다.

``Ex Reference Manual (Version 3.7)''의 섹션. 4.3BSD 로 4.4BSD 의 메뉴얼 세트의 ``UNIX User's Manual Supplementary Documents'' 중(안)에서 발견됩니다. 이것은, ex 에디터의 문서로, 전통적인 4BSD 로 System V 로 배포되었다 최종적인 레퍼런스입니다.

``Edit: A tutorial''섹션. 4.3BSD 의 메뉴얼 세트의 ``UNIX User's Manual Supplementary Documents'' 중(안)에서 발견됩니다. 이것은, ex 스크린 에디터의 단순한 판의 입문용 문서입니다.

``Ex/Vi Reference Manual''섹션. 4.4BSD 의 메뉴얼 세트의 ``UNIX User's Manual Supplementary Documents'' 중(안)에서 발견됩니다. 이것은, nex/nvi 텍스트 문자 편집기를 위해서(때문에) 4.4BSD 로 4.4BSD-Lite 로 배포되었다 최종적인 레퍼런스입니다.

nex/nvi 문서의 roff 소스. 이것들은 nex/nvi 의 원시 코드가 놓여져 있는 디렉토리의 nvi/USD.doc 디렉토리안에 함께 배포되고 있습니다.

nex/nvi 의 원시 코드가 놓여져 있다 nvi/docs/internals 디렉토리의 ``autowrite'', ``input'', ``quoting'', ``structures'' 그렇다고 하는 파일군.

역사
ex/vi 에디터에 대신한다 nex/nvi 명령은, 4.4BSD 로부터 등장했습니다.

표준
nex/nvi (은)는, IEEE Std1003. 2 (``POSIX'')에 가깝습니다. 이 문서는, 몇개의 점으로 종래의 ex/vi 의 실제의 동작과는 다릅니다. nex/nvi 에는, 양쪽 모두의 면에 준거해 만들어졌다고 하는 차이가 있습니다.