tail head cat sleep
QR code linking to this page

Man page  — VI

명칭

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 (은)는 같은 프로그램으로 다른 인터페이스를 제공해, 에디트중으로 전환하는 것이 가능합니다. viewvi-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 [QQ] 파일이 덧쓰기되기 전에 백업파일을 작성합니다.
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 스타일에 확장합니다.
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 [QQ] 표시 가능한 캐릭터로서 다루어지지 않는 캐릭터를 지정합니다.
number, nu [off]
  각 행 선두에 행 번호를 붙여 표시합니다.
octal [off]
  표시 할 수 없는 캐릭터를 8 진수로 표시합니다. 디폴트에서는 16 진표시입니다.
open [on]
  ex 마셔. 이 옵션이 설정되어 있지 않으면, open (와)과 visual 명령은 용서되지 않습니다.
optimize, opt [on]
  vi 마셔. dumb terminal에의 텍스트 출력 속도를 최적화합니다. 이 옵션은 아직 실장되고 있지 않습니다.
paragraphs, para [IPLPPPQPP LIpplpipbp]
  vi 마셔. { (와)과 } 명령로 사용하는 단락 경계의 정의를 추가합니다.
path []
  편집하는 파일을 찾는 디렉토리의 추가분을 정의합니다.
print [QQ] 항상 표시 가능한 캐릭터로서 다루어지는 캐릭터를 지정합니다.
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 [~{[*? $`'Q\] 파일명의 확장이 필요한 때, 그 결정을 하는 메타캐라크타를 세트 합니다.
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'' (을)를 읽어들이기 위한 초기 디렉토리 패스로 해서 사용됩니다. 이 값은, vicd 명령의 디폴트 디렉토리로서도 사용됩니다.
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
SIGQUIT
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 Quick 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 에는, 양쪽 모두의 면에 준거해 만들어졌다고 하는 차이가 있습니다.

October 10, 1996 VI (1)

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

I think Unix and snowflakes are the only two classes of objects in the universe in which no two instances ever match exactly.
— Noel Chiappa