| HOME / 정보공유 / AIX 명령어 모음

vedit
vedit vi 또는 vedit 명령 목적 전화면 표시장치로 파일을 편집합니다. 구문
{ vi | vedit } [ -l ] [ -R ] [ -tTag ] [ -v ] [ -wNumber] [ -yNumber ] [ -r [ File ] ] [{ + | -c } { Subcommand } ] [ File ... ]
설명
vi 명령은 기본이 되는 ex 편집기를 기반으로 전화면 편집기를 시작합니다. 따라서 ex 부속명령을 vi 편집기에서 사용할 수 있습니다. vedit 명령은 초보자를 위한 vi 편집기의 버전을 시작합니다. vedit 편집기에서 report 옵션을 1로 설정하고 showmode 옵션을 설정하며 novice 옵션을 설정하면 이는 행 편집기가 됩니다.
편집할 파일 또는 파일들의 이름을 지정하여 vi 편집기를 시작합니다. 명령행에 하나 이상의 File 매개변수를 지정하면 vi 편집기는 지정된 순서대로 각 파일을 편집합니다. 기존 파일에 대해 vi 편집기는 파일 이름, 행 수 및 문자 수를 화면 아래에 표시합니다. 다중 바이트 로케일의 경우, 문자 수를 바이트 수로 해석해야 합니다.
vi 편집기가 전화면 편집기이기 때문에, 텍스트를 화면 단위로 편집할 수 있습니다. vi 편집기는 편집 버퍼에서 편집하고 있는 파일의 사본을 만들며, 그 내용은 변경사항을 저장할 때까지 변경되지 않습니다. 표시화면에서 커서 위치가 파일에 있는 커서의 위치이고 부속명령은 커서가 위치하고 있는 파일에 영향을 줍니다.
vi 편집기 제한사항
다음은 vi 편집기의 최대 한계에 대한 설명입니다. 최대 한계의 문자 수는 단일 바이트 문자를 의미합니다.
행 당 {LINE_MAX} 문자
전역 명령 리스트 당 256 문자
이전에 삽입되거나 삭제된 텍스트에서 128 문자
쉘 에스케이프 명령에서 128 문자
문자열 값 옵션에서 128 문자
태그 이름에서 30 문자
총 2048 문자의 128 맵 매크로
자동 강제된 행 당 {LINE_MAX} 문자의 1,048,560 행
주: 64MB 이상 파일에서 vi 편집기를 수행하면 다음과 같은 오류 메세지가 표시될 수 있습니다.
0602-103 파일이 /tmp에 너무 큽니다.
vi 편집 모드
vi 편집기는 다음과 같은 모드에서 조작됩니다.
명령 모드 vi 편집기는 명령 모드에서 시작합니다. 텍스트 입력 모드 전용인 부속명령을 제외하고는 어떤 부속명령이라도 입력할 수 있습니다. 부속명령 및 다른 모드가 종료되면 vi 편집기는 명령 모드로 돌아갑니다. 부속명령을 취소하려면 Esc 키를 누르십시오.
텍스트 입력 모드 이 모드는 vi 편집기로 텍스트를 추가하는 데 사용하십시오. 다음의 부속명령 중 하나와 함께 텍스트 입력 모드를 입력하십시오. :a 부속명령, A 부속명령, i 부속명령, I 부속명령, o 부속명령, O 부속명령, cx부속명령(여기서 x는 부속명령의 유효범위임), C 부속명령, s 부속명령, S 부속명령, R 부속명령. 이 부속명령 중 하나를 입력한 후에 텍스트를 편집 버퍼에 입력할 수 있습니다. 명령 모드로 돌아가기 위해 정상 종료하려면 Esc 키를 누르거나, 비정상으로 종료하려면 인터럽트(Ctrl-C 키 열)를 누르십시오.
최종 라인 모드 접두어 :(콜론), /(슬래쉬), ?(물음표), !(느낌표) 또는 !!(두 개의 느낌표)는 화면의 맨 아래 표시된 행에서 입력을 읽습니다. Enter 키를 눌러 부속명령을 수행하거나, 인터럽트(Ctrl-C 키 열)를 눌러 취소하십시오. !! 접두어를 사용하면 느낌표 두 개를 모두 입력한 후에만 커서가 이동합니다. 마지막 행 모드를 입력하기 위해 : 접두어를 사용할 경우, vi 편집기는 회수를 지정하는 명령 앞에 사용할 때 다음 문자에 특별한 의미를 부여합니다.
%
커서 위치에 관계없이 모든 행
$
최종 행
.
현재 행
vi 편집기 조정
다음을 통해 vi 편집기를 조정할 수 있습니다.
vi 편집기 옵션 설정
매크로 정의
키 맵핑
약어 설정
vi 편집기 옵션 설정
다음 리스트는 set 명령으로 변경할 수 있는 vi 편집기 옵션을 설명합니다. 이 옵션의 디폴트 설정은 off입니다. 이러한 토글 옵션 중 하나를 온 상태로 전환하는 경우에는 옵션 앞에 no를 입력하여 다시 오프 상태로 전환할 수 있습니다. autowrite vi 옵션을 중지하려면 noaw를 입력하십시오. 여기서 no는 옵션을 오프 상태로 전환하며 aw는 autowrite 옵션을 지정합니다.
주: vi 옵션을 입력할 때 괄호를 포함시키지 마십시오.
vi 옵션(약어) 설명
autoindent (ai) shiftwidth 옵션에서 지정한 탭 정지 간의 공간을 사용하여 텍스트 입력 모드에서 이전 행의 들여쓰기로 자동으로 들여씁니다. 디폴트는 noai입니다. 이전의 탭 정지까지 커서를 뒤로 이동하려면, Ctrl-D 키를 누르십시오. 이 옵션은 전역 명령에는 해당되지 않습니다.
autoprin (ap) 편집 버퍼를 변경하는 명령 다음에 현재 행을 인쇄합니다. 디폴트는 ap입니다. 이 옵션은 단일 행에서 일련의 명령 중 마지막 명령에만 적용되고 전역 명령에는 해당되지 않습니다.
autowrite (aw) :n 부속명령, :ta 부속명령, Ctrl-A 키 시퀀스 및 ! 부속명령 이전에 편집 버퍼를 파일에 자동으로 기록하며, 이는 최종 write 부속명령 이후에 편집 버퍼가 변경된 경우에 수행됩니다. 디폴트는 noaw입니다.
beautifying text (bf) 텍스트 입력중 편집 버퍼에 사용자가 제어 문자를 입력하지 못하게 합니다(탭, 새로운 행 및 서식 이송 표시기는 제외). 디폴트는 nobf으로 명령 입력에 적용되는 옵션입니다.
closepunct (cp=) 특히 텍스트 랩을 수행하는 경우에 마감 구두점 리스트를 처리합니다(wraptype 옵션). 복수 문자 구두점 이전에 여러 문자가 선행됩니다. 예를 들면 cp=3..;)}. vi 명령은 줄을 넘길 때 닫기 구두점을 분리하지 않습니다.
directory (dir=) 편집 버퍼가 들어 있는 디렉토리를 표시합니다. 디폴트는 dir = /var/tmp입니다.
edcompatible (ed) 다중 대체를 수행하는 동안 g(전역) 및 c(확인) 부속명령 접미사를 보유하며, r(읽기) 접미사가 r 부속명령과 유사하게 작동하도록 합니다. 디폴트는 noed입니다.
exrc (exrc) 설정되어 있지 않은 경우, 현재 디렉토리가 HOME 환경 변수에서 이름을 지정한 디렉토리가 아니면 설치를 수행하는 동안 현재 디렉토리의 모든 .exrc 파일이 무시됩니다. 디폴트는 noexrc입니다.
hardtabs (ht=) 표시화면에서의 하드웨어 탭 정지 사이의 거리를 vi 편집기에 알려줍니다(이 옵션은 기본 터미널 또는 터미널 에뮬레이터의 탭 설정값과 일치해야 합니다). 디폴트는 ht=8입니다. 디폴트는 ht=8입니다.
ignorecase (ic) 정규식을 탐색할 때 대문자와 소문자를 구별하지 않습니다. 디폴트는 noic입니다.
linelimit (ll=) -y 명령행당 옵션에서와 같이 행의 최대 수를 설정합니다. 이 옵션은 .exrc 파일 또는 EXINIT 환경 변수와 함께 사용되는 경우에만 유효합니다.
lisp (lisp) ( ), { }, [ [ 및 ] ]의 특별한 의미를 없애고 s-식에 =(형식화된 인쇄) 연산자를 사용하여, 리스트 처리(LISP) 프로그램의 편집을 가능하게 합니다. 디폴트는 nolisp입니다.
list (list) 탭(^I) 및 행에 종료 표시($)를 해서 텍스트를 나타냅니다. 디폴트는 nolist입니다.
magic (magic) 패턴을 탐색할 때, .(마침표), [(왼쪽 대괄호)와 *(별표) 문자를 특수 문자로 취급합니다. 오프 모드에서 괄호()와 달러 기호($)만이 특별한 의미를 유지합니다. 그러나 다른 문자도 앞에 \(백슬래쉬)가 오면 특별한 의미를 갖게 됩니다. 디폴트는 magic입니다.
mesg (mesg) 비주얼 모드에서 설정되어야 터미널에 쓰기 권한을 줍니다. 이 옵션은 .exrc 파일이나 EXINIT 환경 변수와 함께 사용하는 경우에만 유효합니다. 디폴트는 on입니다.
modeline (modeline) 파일의 처음 5행 또는 마지막 5행에 이 옵션이 있을 경우, vi 편집기 명령행이 수행됩니다. vi 편집기 명령행은 행의 어디에라도 올 수 있습니다. vi 편집기가 명령행을 인식하려면 해당 행에서 스페이스 또는 탭과 함께 그 뒤에 ex: 또는 vi: 문자열이 포함되어야 합니다. 명령행은 두 번째 :(콜론)으로 종료됩니다. vi 편집기는 첫 번째와 두 번째 콜론 사이의 데이터를 vi 편집기 명령으로 해석하려고 합니다. 디폴트는 nomodeline입니다.
novice 사용자가 novice 모드인지 지시합니다. set 명령을 사용하여 값을 변경할 수 없습니다.
number (nu) 행 번호가 앞에 있는 행들을 표시합니다. 디폴트는 nonu입니다.
optimize (opt) 커서 주소지정이 부족한 터미널의 조작 속도를 높입니다. 디폴트는 noopt입니다.
paragraphs (para=) 단락을 시작하는 vi 매크로 이름을 정의합니다. 디폴트는 para=IPLPPPQPP\ LIpplpipnpbp입니다. 단락을 재지정할 경우, .P 매크로와 같은 단일 문자 nroff 매크로에는 인용 문자로서 공백을 넣어야 합니다.
partialchar (pc=) 두배 너비 문자가 완전하게 표시되지 않은 마지막 표시 열에 나타납니다. 디폴트 문자는 -(빼기 부호)입니다.
prompt :(콜론)을 인쇄함으로써 명령 모드에서 새로운 vi 편집기 명령에 대해 프롬프트를 제시합니다. 디폴트는 on입니다.
readonly (ro) 영구적인 읽기 전용 모드를 설정합니다. 디폴트는 noreadonly입니다.
redraw (redraw) 작동하지 않는 워크스테이션에서 작동 상태가 우수한 워크스테이션을 시뮬레이트합니다. 디폴트는 nore입니다.
remap 다른 매크로로 매크로 정의를 허용합니다. 디폴트는 on입니다.
report (re=) 메세지가 표시되기 전에 명령을 몇 번 되풀이 할지 설정합니다. 전역 부속명령과 같이 많은 메세지를 만드는 부속명령의 경우, 명령의 순서가 완료되어야 메세지가 표시됩니다. 디폴트는 report=5입니다.
scroll (scr=) 사용자가 위 또는 아래로 스크롤할 때 이동되는 행의 수를 지정합니다. 디폴트는 창 크기의 1/2이며 이때 소수자리는 버립니다.
sections (sect=) 절을 시작하는 vi 매크로 이름을 정의합니다. 디폴트는 sect=NHSHHH\ HUuhsh+c입니다. 단락을 재지정하는 경우에 .P와 같은 단일 문자 nroff 매크로는 인용된 문자로 공백을 포함해야 합니다.
shell (sh=) ! 부속명령 또는 :! 부속명령에 대해 쉘을 정의합니다. 디폴트는 로그인 쉘입니다.
shiftwidth (sw=) autoindent 옵션, 시프트 명령(> 및 <) 및 텍스트 입력 명령(Ctrl-D 및 Ctrl-T 키 시퀀스)에 의해 사용되는 소프트웨어 탭 정지에 대해 간격을 설정합니다. 이 vi 옵션은 행을 시작할 때 들여쓰기에만 영향을 줍니다. 디폴트는 sw=8입니다.
showmatch (sm) 사용자가 )(오른쪽 괄호) 또는 }(오른쪽 대괄호)를 입력할 때 그에 대응하는 ((왼쪽 괄호) 또는 {(왼쪽 대괄호)를 표시합니다. 디폴트는 nosm입니다.
showmode (smd) vi 편집기가 입력 모드에 있는 때를 가리키는 메세지를 표시합니다. 디폴트는 nosmd입니다.
slowopen (slow) 삽입을 하는 동안 표시화면 갱신을 연기합니다. 디폴트는 noslow입니다.
tabstop (ts=) 표시된 파일에서 탭 정지 사이의 거리를 설정합니다. 디폴트는 ts=8입니다.
tags (tags =) ctags 명령으로 작성된 기능 이름의 데이터베이스 파일에 대해 탐색 경로를 정의합니다. 디폴트는 tags=tags\ /usr/lib/tags입니다.
term (term=) 사용하고 있는 워크스테이션의 유형을 지정합니다. 디폴트는 term=$TERM이며, 여기서 $TERM은 TERM 쉘 변수의 값입니다.
terse (terse) vi 편집기가 축약형 메세지를 표시할 수 있게 합니다. 디폴트는 noterse입니다.
timeout (to) 문자 항목에서 시간 한계를 2초로 설정합니다. timeout 옵션이 설정되면 이 제한으로 매크로의 개별 문자가 분리 문자로서 입력되고 처리될 수 있습니다. 매크로를 다시 사용하려면 notimeout 옵션을 지정하십시오. 디폴트는 to입니다.
ttytype 사용되고 있는 터미널의 tty 유형을 표시합니다. vi 편집기에서 이 값을 변경할 수 없습니다.
warn (warn) 편집 버퍼에 변경이 발생했지만 파일에 기록하지 않은 이후 처음으로 쉘 명령을 실행하는 경우, ! 부속명령이 쉘 명령을 수행하기 전에 경고 메세지를 표시합니다. 디폴트는 warn입니다.
window (wi=) 하나의 텍스트 창에 표시될 행 수를 설정합니다. 디폴트는 운용하고 있는 전송률에 좌우됩니다. 즉, 600 보오(baud) 이하이면 8 행, 1200 보오에서는 16 행, 더 높은 속도일 때는 전체 화면에서 1 행을 뺍니다.
wrapmargin (wm=) 단어를 한 행에서 다음 행으로 자동 줄넘김할 여백을 설정합니다. 디폴트는 wm=0입니다. 값 0은 단어 줄넘김 기능을 해제합니다.
wrapscan (ws) 편집 버퍼의 끝에서 시작까지 문자열 탐색을 되돌리게(wrap) 합니다. 디폴트는 ws입니다.
wraptype (wt=) 행 끝에서 다음 행에 단어 줄넘김을 하는 데 사용되는 방법을 표시합니다. 디폴트 값은 general입니다. 다음 네 값 중 하나를 지정할 수 있습니다.
general
두 문자 사이에 공백 문자가 있는 단어에서 단어 줄넘김을 합니다. 이것이 디폴트 값입니다.
word
단어 줄넘김을 합니다.
rigid
열과 닫기 구두점 앞에서 줄넘김을 합니다.
flexible
열에서 줄넘김을 하지만 한 문자로 된 구두점이 여백을 넘어선 곳까지 확장될 수 있습니다.
writeany (wa) write 부속명령 이전에 일반적으로 작성된 검사를 오프 상태로 전환합니다. 디폴트는 nowa입니다.
디폴트 설정에서 바뀐 vi 편집기 설정값 리스트를 보려면, set을 누르고 스페이스 바를 누르십시오. 명령 모드로 돌아가려면 Enter 키를 누르십시오.
vi 편집기 설정값 전체 리스트를 보려면, set all을 입력하십시오. 명령 모드로 돌아가려면 Enter 키를 누르십시오.
vi 편집기 옵션을 사용하려면 set 옵션을 입력하십시오. 이 명령으로 명령 모드로 자동으로 돌아갑니다.
여러 개의 vi 편집기 옵션을 사용하려면 set 옵션을 입력하십시오. 이 명령은 지정된 3개의 vi 편집기 옵션을 시작하고 명령 모드로 돌아가게 합니다.
vi 편집기 옵션을 해제하려면 set noOption을 입력하십시오. 이 명령으로 명령 모드로 자동으로 돌아갑니다.
vi 편집기 옵션 값을 변경하려면, setOption=Value을 입력하십시오. 이 명령으로 명령 모드로 자동으로 돌아갑니다.
vi 편집기의 :set 부속명령을 사용하여 현재 편집 세션 전용 옵션을 설정하거나 현재 편집 세션 및 미래의 모든 편집 세션에 대한 옵션을 설정할 수 있습니다.
이 편집 세션에 대해서만 vi 편집기 옵션을 설정하거나 변경하려면 명령행에서 :set 부속명령을 입력하십시오.
모든 편집 세션에 대해 vi 옵션을 설정하려면, :set 부속명령을 .profile 파일의 EXINIT 환경 변수에 두거나 set 부속명령을 .exrc 파일에 두십시오. vi 편집기는 먼저 EXINIT 환경 변수를 찾아 해당 명령을 수행합니다. EXINIT 환경 변수가 없을 경우에 vi 편집기는 $HOME/.exrc 파일을 찾아 해당 명령을 실행합니다. 마지막으로 이전 결과에 상관없이, vi 편집기는 국지 .exrc 파일을 찾아 해당 명령을 실행합니다.
주: 이러한 처리는 tvi 명령(신뢰된 vi)을 제외하고는 모두 적용됩니다. 위의 예에서 vi 편집기는 /etc/.exrc 파일만을 찾아 실행합니다.
EXINIT 환경 변수를 설정하여 옵션을 변경하는 방법에 대한 정보는 environment 파일에서 환경 변수에 대한 설명을 참조하십시오.
.exrc 파일에는 set Option=Value 형식의 부속명령이 포함될 수 있으며, 이에 대한 예는 다음과 같습니다.
set cp=3 . . ;
.exrc 파일에 주석을 포함시키려면 행의 첫 번째 문자로 "(인용부호)를 사용하십시오.
매크로 정의
부속명령 또는 일련의 부속명령을 자주 사용할 경우, vi 편집기를 사용하여 반복되는 부속명령 또는 부속명령 그룹을 실행하는 매크로를 정의할 수 있습니다.
매크로를 정의하려면, 일련의 부속명령을 알파벳 중 한 문자로 이름 붙여진 버퍼에 입력하십시오. 소문자 a에서 z까지는 버퍼의 내용을 위에 덮어 쓰고 대문자 A부터 Z까지는 버퍼의 이전 내용에 텍스트를 추가하여, 매크로를 부분적으로 구축하게 됩니다.
예를 들면, corner라는 단어를 찾아서 단어 corner 뒤에서 세 번째 행을 현재 행으로 만드는 버퍼 매크로를 c라는 이름으로 정의하려면 다음 명령을 입력하십시오.
o /corner/+3
그리고 난 후, Esc 키를 누르고 다음 명령을 입력하십시오.
"c
c는 버퍼 매크로 이름입니다.
텍스트를 정의된 버퍼의 이전 내용에 추가하려면 o viSubcommand를 입력하고 Esc 키를 누른 후에 "CapitalLetter를 입력하십시오. 여기서 CapitalLetter 변수는 대문자 A에서 Z를 지정합니다. 예를 들면 corner라는 단어를 찾고 명령을 추가할 수 있도록 하는 이름이 T인 버퍼 매크로를 구성하려면 다음 명령을 입력하십시오.
o corner
그리고 난 후, Esc 키를 누르고 다음 명령을 입력하십시오.
"T
T는 버퍼 매크로 이름입니다. 동일한 버퍼에 더 많은 vi 부속명령을 추가할 때마다 이 프로세스를 반복할 수 있습니다.
예를 들면, 커서를 이전 행으로 이동하고 현재 행에 삭제하는 명령을 추가하려면, 다음 명령을 입력하십시오.
o -dd
-(빼기 기호)는 커서를 한 행 위로 이동한다는 뜻이고 dd는 현재 행을 삭제한다는 의미입니다. Esc 키를 누르고 다음 명령을 입력하십시오.
"Tdd
매크로를 시작하려면 @Letter를 입력하십시오. 여기서 Letter 변수는 사용할 버퍼 매크로의 문자 이름을 지정합니다. 동일한 매크로를 다시 사용하려면 @@를 입력하십시오. 예를 들면 @T를 입력하여 T 버퍼 매크로를 시작하고 search, move cursor 및 delete line 명령을 수행하십시오. T 버퍼 매크로를 다시 시작하려면 @@T를 입력하십시오.
시스템에서 사용한 문자 설정은 배열(collating) 테이블에 의해 정의됩니다. 이 테이블은 vi 매크로 성능에 영향을 줍니다.
키 맵핑
:map, :map!, 및 :ab 부속명령을 사용하면 키 누름을 하나의 명령이나 일련의 명령으로 맵핑할 수 있습니다. :map 부속명령은 명령 모드에서 사용됩니다. :map! 및 :2ab 부속명령은 텍스트 입력 모드에서 사용됩니다. 현재 편집 세션 및 향후 모든 편집 세션용 또는 둘 중 한 쪽의 모드에서 현재 편집 세션 전용 키를 맵핑할 수 있습니다.
향후의 모든 편집 세션용 키를 맵핑하려면, 부속명령을 $HOME/.exrc 파일에 넣으십시오. vi 편집기를 시작할 때마다, 편집기는 이 파일을 읽습니다. 맵핑은 모든 편집 세션에 대해서만 유효합니다.
명령 모드에서 현재 편집 세션 전용 키를 맵핑하려면, vi 편집 세션 중에 부속명령을 시작하십시오. 텍스트 입력 모드에서 현재 편집 세션용 키를 맵핑하려면, vi 편집기 세션 중 명령행에 부속명령을 입력하십시오. 맵핑은 현재 편집 세션에 대해서만 유효합니다.
주의:IBM 3161 ASCII 표시장치, IBM 3163 ASCII 표시장치 또는 IBM 3101 ASCII 표시장치를 사용하는 경우, vi 편집기의 디폴트 키 맵핑으로 데이터가 손실될 수 있습니다. 디폴트 맵핑을 보려면 :map 부속명령을 실행하십시오. Esc-J 또는 Shift-J 키 열로 고유의 문제가 발생합니다. 이 키 열은 커서의 현재 위치에서 파일 끝까지의 모든 정보를 삭제합니다. 이 문제를 피하려면, .exrc 파일을 사용하여 키 열을 변경하십시오.
:map, :map! 및 :ab 부속명령은 다음과 같이 정의되고 사용됩니다.
:map 명령 모드로 매크로를 정의합니다. :map 부속명령을 사용하면 vi 편집기에서 단일 키를 눌러 지정된 명령 또는 일련의 명령 집합을 실행할 수 있습니다.
명령 모드로 키를 맵핑하려면, 빈 편집 버퍼에서 vi 편집기를 시작하고 vi 명령을 사용하여 vi 파일을 명명하거나 vi 편집기 시작 후 버퍼에 아무것도 입력을 하지 않아야 합니다. :map 부속명령을 사용하여 다음을 수행할 수 없습니다.
일련의 편집 명령 집합에 한 문자를 맵핑하려면 다음과 같이 입력하십시오.
:map Letter viSubcommand
명령 모드로 이전에 맵핑이 된 문자 맵핑을 해제하려면, 다음과 같이 입력하십시오.
:unmap Letter
명령 모드의 현재 맵핑 리스트를 표시하려면, 다음과 같이 입력하십시오.
:map
다음과 같은 키는 vi 편집기에서는 사용되지 않지만 명령 모드에서 :map 부속명령과 사용할 수 있습니다.
문자 g, K, q, V, v
제어 키 조합 Ctrl-A, Ctrl-K, Ctrl-O, Ctrl-T, Ctrl-W, Ctrl-X
기호 _(밑줄긋기), *(별표), \(백슬래쉬), =(등호)
vi 편집기에서 이미 사용한 키를 맵핑할 수는 있지만 그 맵핑이 작용하는 동안에는 해당 키의 일반적인 기능을 사용할 수 없습니다. 기능 키에 명령 순서 맵핑을 허용하는 터미널도 있습니다. LISP 모드에 있는 경우, vi 편집기에서 =(등호)를 사용하고 있기 때문에 등호를 사용할 수 없습니다.
문자 v를 단어 map이 다음에 나타나는 위치를 지정하는 일련의 명령으로 맵핑하고 이를 단어 MAP으로 변경하려면 다음 명령을 입력하십시오.
:map v /mapcwMAP
위의 예는 vi 편집기가 다음에 오는 map(/map) 위치를 찾고, map을 MAP(cwMAP)으로 변경하고, change-word 부속명령을 종료하며(), 명령을 입력하도록 지시합니다().
주:vi 편집기가 Enter 키를 해석하지 않도록 하려면, 맵핑될 때 Ctrl-V 키가 앞에 와야 합니다. 이는 Esc, 백스페이스 및 Del 키에도 적용됩니다.
제어 문자 Ctrl-A, Ctrl-K 및 Ctrl-O를 맵핑하려면, Ctrl 키와 해당 문자를 동시에 눌러야 합니다. 예를 들면, 순서대로 한 파일을 저장하고 다음 파일을 편집하는 명령열에 Ctrl-A 키를 맵핑하려면, 다음 명령을 입력하십시오.
:map :w:n
제어 문자 Ctrl-T, Ctrl-W 및 Ctrl-X를 맵핑하려면, Ctrl-V 키로 먼저 해당 제어 문자를 해제해야 합니다.
|(파이프 기호)를 맵핑하려면, 쉘로 가서 /etc/motd 파일을 병합하고 wc 명령에 출력을 파이프하는 일련의 명령 집합에 문자 g를 맵핑하는 다음 예에서와 같이, 먼저 두 개의 Ctrl-V 키로 파이프 기호를 해제해야 합니다.
:map g :!cat /etc/motd | wc
터미널에서 기능 키 맵핑을 허용하는 경우, 맵핑하려는 기능 키 번호를 지정하려면 #number 키 조합으로 기능 키를 참조해야 합니다. 다음 예에서, F1 기능 키는 한 단어를 삭제하고 커서를 세 단어 아래로 이동하는 일련의 명령에 맵핑됩니다.
:map #1 dwwww
작업하려는 기능 키 맵핑을 위해, 사용자의 터미널 유형에 대한 기능 키 출력은 terminfo 파일에서 정의한 출력과 일치해야 합니다. 이러한 정의는 kfnumber 항목에 의해 선언되며, 여기서 kf1은 F1 기능 키, kf2는 F2 기능 키와 같이 표현됩니다. 기능 키를 눌러 얻은 출력이 이 항목과 일치하지 않을 경우, 맵핑하기 전에 터미널의 설정 모드를 사용해서 터미널 데이터베이스 항목을 일치시킬 수 있도록 설정을 정정하십시오.
또한 Home, End, Page Up 및 Page Down 키와 같은 키보드 특수 키도 맵핑할 수 있습니다. 대부분의 터미널에서, 이러한 특수 키는 vi 편집기에 이미 맵핑되어 있습니다. 이 맵핑은 :map 부속명령을 사용하여 검증할 수 있습니다. 이런 특수 키가 맵핑되어 있지 않을 경우, 다음과 같이 :map 부속명령을 사용할 수 있습니다.
:map G
:map 1G
:map
:map
명령 모드에서 모든 현재 맵의 리스트를 가져 오려면 :map 부속명령을 입력하십시오. 위의 예는 다음과 같이 표시됩니다.
v v /mapcwMAPCtrl-M>
:w:n
g g :!cat /etc/motd | wc
주: Ctrl-V와 Enter 키 배열은 Ctrl-M 키 배열로 표시되고, Ctrl-V와 Esc 키는 Ctrl-[ 키 배열로 표시됩니다.
:map! 텍스트 입력 모드에서 문자열을 단일 키에 맵핑합니다. 텍스트 입력 모드에서 키를 맵하려면, 빈 편집 버퍼로 vi 편집기를 시작하고, vi 명령을 사용하여 vi 파일을 명명하거나 편집기가 시작한 후 버퍼에 어떠한 것도 입력하지 마십시오. :map! 부속명령을 사용하여 다음을 수행할 수 있습니다.
텍스트 입력 모드에서 한개 이상의 vi 문자열을 하나의 문자에 맵핑하려면 다음과 같이 입력하십시오.
:map! Letter String
이전에 텍스트 입력 모드에서 맵핑된 문자 맵을 해제하려면, 다음과 같이 입력하십시오.
:unmap! Letter
텍스트 입력 모드에서 특수 키로 맵핑된 기존의 문자열 리스트를 표시하려면, 다음과 같이 입력하십시오.
:map!
텍스트 입력 모드에서 맵핑된 키를 입력하면 문자열을 지정하게 됩니다. Ctrl-V 및 Esc 키 시퀀스를 수행하면 명령 모드로 이동되고, 현재 단어의 시작으로 백업되며(bbw), cw(단어 변경) 부속명령이 시작됩니다. 예를 들면, 다음과 같습니다.
:map! % bbwcw
텍스트를 입력할 때, 단어를 잘못 입력했으면 % (퍼센트)키를 누르고 단어를 다시 입력하여 정정할 수 있습니다. 자동으로 삽입 모드로 돌아갑니다.
주: :map! 부속명령에 사용될 키를 선택할 때 신중하십시오. 키를 맵하면 먼저 :unmap! 확장됩니다.
:ab 텍스트 입력 모드에서 사용할 용도로 문자열에 키 또는 일련의 키 집합을 맵핑합니다. :ab 부속명령은 몇몇 반복 구, 이름 또는 제목을 처리하는 텍스트를 입력할 때 유용합니다.
다음 예에서와 같이 다음을 텍스트 입력 모드에서 입력하고 그 뒤에 공백 문자, 마침표 또는 쉼표를 사용하면 단어 city가 구문 Austin, Texas 78759로 대체됩니다.
:ab city Austin, Texas 78759
예를 들면, 텍스트를 입력할 때 다음과 같이 입력하십시오.
My current residence is city.
탭 키를 누르면 단어 city가 다음과 같이 확장됩니다.
My current residence is Austin, Texas 78759.
단어에 약어가 있으면 확장되지 않습니다. 예를 들면, My current residence iscity라고 입력할 경우, iscity라는 단어는 확장되지 않습니다.
:map! 부속명령이 삽입 모드에서 약어 맵핑에 사용된 경우에는 약어가 있는 위치에 관계없이 어디서든지 확장됩니다. :map! 부속명령을 이전 예(:map! city Austin, Texas 78759)에 대해 사용한 경우, 단어 앞뒤에 관계없이 단어 city를 입력하면 이 단어가 Austin, Texas 78759로 확장됩니다. 따라서 단어 iscity는 isAustin, Texas 78759로 변환됩니다.
주::ab 부속명령으로 사용할 키는 주의해서 선택하십시오. 키를 맵핑시키고 나면 먼저 :unab 부속명령을 발행해야 텍스트로서 입력이 가능합니다.
약어 설정
set 명령은 map! 명령과 유사한 동작을 수행하며, 단 set 명령은 약어가 독립적인 단어인 경우에만 약어 대신 문자열을 사용합니다. vi 편집기의 set 명령을 사용하여 다음을 수행할 수 있습니다.
기존의 약어 나열
약어 삭제
약어 설정(정의)
주: 빈 편집 버퍼와 함께 vi 편집기를 사용하십시오. vi 명령을 사용하여 vi 파일을 명명하거나 vi 편집기를 시작한 후에 버퍼에 어떠한 것도 입력하지 마십시오. Esc 키를 눌러 명령 모드에 있음을 확인하십시오.
약어 리스트 표시 :ab 명령을 입력하면 기존의 약어가 나열됩니다. 다시 명령 모드로 돌아가려면 다시 Enter 키를 누르십시오.
약어 삭제 :anabAbbreviation 명령을 입력하면 약어가 삭제됩니다. 여기서 Abbreviation 변수는 더 이상 생략하지 않으려는 문자열을 지정합니다.
약어 설정(정의) :ab Abbreviation String 명령을 입력하면 약어를 설정할 수 있습니다. 여기서 Abbreviation 변수는 약어로 정의되는 문자열을 지정하며, String 변수는 축약되는 문자열을 지정합니다. 약어가 별개의 단어일 경우에만 약어를 문자열로 대체할 수 있습니다.
:ab kn upper 명령을 입력하고 텍스트 입력 모드 상태에서 acknowledge를 입력하면, 단어 확인시 kn 문자열이 별개의 문자가 아니기 때문에 약어 문자열 설정이 시작되지 않습니다.
그러나 :ab kn upper 명령을 입력한 후에 텍스트 입력 모드에서 make the kn line all kncase를 입력하면 결과는 make the upper line all uppercase가 됩니다.
플래그
-cSubcommand vi를 사용하여 열람을 시작하기 전에 ex 편집기 부속명령를 수행합니다. 커서는 마지막으로 수행될 부속명령의 영향을 받는 행으로 이동합니다. -c' '에서와 같이 널(null) 피연산자가 입력되는 경우, vi 편집기는 커서를 파일의 맨 처음 행에 지정합니다. -c 플래그는 + 플래그와 호환되지 않습니다. 두 플래그를 동시에 지정하지 마십시오.
-l LISP 모드에서 vi 편집기를 시작합니다. 이 모드에서 vi 편집기는 LISP 코드에 적절하게 들여쓰기하고 (,),{,},[[ 그리고 ]] 부속명령은 LISP에 적절하게 행동하도록 수정됩니다.
-r[File] vi 편집기 또는 시스템 장애 후에 파일을 복원합니다. File 변수를 지정하지 않을 경우, vi 편집기는 저장된 모든 파일을 보여줍니다.
-R 파일 겹쳐쓰기를 방지하기 위해 readonly 옵션을 설정합니다.
-tTag Tag 변수가 포함된 파일을 편집하고 해당 정의대로 vi 편집기를 위치시킵니다. 이 플래그를 사용하려면, 먼저 ctags 명령을 사용하여 기능 이름과 그 위치에 대한 데이터베이스를 작성해야 합니다.
-v 상세 모드로 vi 편집기를 시작합니다.
-wNumber 디폴트 창 크기를 Number 변수에서 지정한 설정합니다. 이 플래그는 저속 행으로 vi 편집기를 사용할 때 유용합니다.
-yNumber 최대 행 설정값인 1,048,560을 1024보다 큰 임의의 값으로 대체합니다. vi 편집기가 버퍼 조작을 위해 여분의 행을 사용하기 때문에 행 수를 두 번 요청해야 합니다.
+[Subcommand] 편집 시작 전에 ex 편집기 부속명령을 수행합니다. Subcommand 변수를 사용하지 않을 경우, 커서는 파일의 첫 행에 놓입니다. + 플래그는 -c 플래그와 호환됩니다. 두 플래그를 동시에 지정하지 마십시오.
vi 일반 부속명령 구문
다음과 같은 일반 구문을 사용하여 부속명령들을 입력합니다.
[Named_Buffer] [Operator] [Number] Object
주: 대괄호가 있으면 선택 항목입니다.
[Named_Buffer] 임시 텍스트 기억장치 영역을 지정합니다.
[Operator] 부속명령 또는 조치를 지정하고 vi 편집기에게 명령을 내립니다.
[Number] 조치의 범위 또는 한 행 주소를 전체 번호로서 지정합니다.
Object 텍스트 오브젝트(문자, 단어, 문장, 단락, 절, 문자열) 또는 텍스트 위치(행, 현재 행 위치, 화면 위치) 등에 취할 조치를 지정합니다.
부속명령 이전의 계수
많은 부속명령 앞에 숫자를 놓을 수 있습니다. vi 편집기는 그 수를 다음과 같은 방법 중 하나로 해석합니다.
Number 매개변수에서 지정한 행으로 이동합니다.
5G
10Z
Number 매개변수에서 지정한 열로 이동합니다.
25|
Number 매개변수에 지정한 행 수만큼 위 또는 아래로 스크롤합니다.
10Ctrl-U
10Ctrl-D
vi 편집기 부속명령
부속명령을 사용하여 다음과 같은 조치를 수행할 수 있습니다.
커서 이동
텍스트 편집
파일 조작
기타 조치
커서 이동
부속명령을 사용하여 다음 방법으로 파일 내에서 커서를 이동할 수 있습니다.
행에서 이동
문자 위치에 의한 행에서 이동
단어로 이동
행 위치에 의한 이동
문장, 단락 또는 섹션으로 이동
화면 재작도에 의한 이동
페이징 및 스크롤링
패턴 탐색
파일에서 고유의 위치 표시 및 리턴
행에서 이동
명령 모드에서 다음 부속명령을 입력하십시오. 완료되지 않은 명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
왼쪽 화살표 또는 h, Ctrl-H 커서를 왼쪽으로 한 문자 이동합니다.
아래 화살표 또는 j, Ctrl-J, Ctrl-N 커서를 한 행 밑으로 이동합니다(동일한 열에 남아 있음).
위 화살표 또는 k, Ctrl-P 커서를 한 행 위로 이동합니다(동일한 열에 남아 있음).
오른쪽 화살표 또는 l 커서를 오른쪽으로 한 문자 이동합니다.
문자 위치에 의한 행에서 이동
명령 모드에서 다음 부속명령을 입력하십시오. 완료되지 않은 명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
^ 공백이 아닌 첫 번째 문자로 커서를 이동합니다.
0 행의 처음으로 커서를 이동합니다.
$ 행의 끝으로 커서를 이동합니다.
fx 커서를 다음 x 문자로 이동합니다.
Fx 커서를 최종 x 문자로 이동합니다.
tx 다음 x 문자의 한 열 이전으로 커서를 이동합니다.
Tx 최종 x 문자의 한 열 이후로 커서를 이동합니다.
; 최종 f, F, t 또는 T 부속명령을 반복합니다.
, 최종 f, F, t 또는 T 부속명령을 반대 방향으로 반복합니다.
Number| 지정한 열로 커서를 이동합니다.
단어로 이동
명령 모드에서 다음 부속명령을 입력하십시오. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
w 다음 소단어로 커서를 이동합니다.
b 이전의 소단어로 커서를 이동합니다.
e 다음 소단어 끝으로 커서를 이동합니다.
W 다음 연속 단어로 커서를 이동합니다.
B 이전의 연속 단어로 커서를 이동합니다.
E 다음 연속 단어 끝으로 커서를 이동합니다.
행 위치에 의한 이동
명령 모드에서 다음 부속명령을 입력하십시오. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
H 화면의 맨 위 행으로 커서를 이동합니다.
L 화면의 마지막 행으로 커서를 이동합니다.
M 화면의 중간 행으로 커서를 이동합니다.
+ 첫 문자가 공백이 아닌 다음 행으로 커서를 이동합니다.
- 첫 문자가 공백이 아닌 이전 행으로 커서를 이동합니다.
Enter 첫 문자가 공백이 아닌 다음 행으로 커서를 이동합니다.
문장, 단락 또는 섹션으로 이동
명령 모드에서 다음 부속명령을 입력하십시오. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
( LISP 모드에 있을 경우, 커서를 이전 문장의 맨 앞 또는 이전의 s-식으로 이동합니다.
) LISP 모드에 있을 경우, 커서를 다음 문장의 맨 앞 또는 다음 s-식으로 이동합니다.
{ LISP 모드에 있을 경우, 커서를 이전 단락의 맨 앞 또는 다음 리스트에 놓습니다.
} LISP 모드에 있을 경우, 커서를 다음 단락의 맨 앞 또는 다음 절에 놓습니다.
]] LISP 모드에 있을 경우, 커서를 다음 절 또는 함수에 놓습니다.
[[ LISP 모드에 있을 경우, 커서를 이전 절 또는 함수에 놓습니다.
화면 재작도에 의한 이동
명령 모드에서 다음 부속명령을 입력하십시오. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
z 화면 맨 위를 현재 행으로 하여 화면을 다시 구성합니다.
z- 화면 맨 아래를 현재 행으로 하여 화면을 재구성합니다.
z. 화면 중앙을 현재 행으로 하여 화면을 재구성합니다.
/Pattern/z- 맨 아래에서 Pattern 매개변수에 의해 지정된 문자열을 포함하는 행으로 화면을 재작도합니다.
페이징 및 스크롤링
명령 모드에서 다음 부속명령을 입력하십시오. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
Ctrl-U 반 화면 위로 스크롤합니다.
Ctrl-D 반 화면 아래로 스크롤합니다.
Ctrl-F 한 화면 앞으로 스크롤합니다.
Ctrl-B 한 화면 뒤로 스크롤합니다.
Ctrl-E 창을 한 행 아래로 스크롤합니다.
Ctrl-Y 면을 한 행 위로 스크롤합니다.
z+ 페이지를 위로 올립니다.
z^ 페이지를 아래로 내립니다.
패턴 탐색
명령 모드에서 다음 부속명령을 입력하십시오. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
[Number]G Number 매개변수에서 지정한 행 번호에 커서를 위치하거나, Number 매개변수가 지정되지 않은 경우에는 최종 행에 커서를 위치합니다.
/Pattern Pattern 매개변수에서 지정한 문자열을 포함하는 다음 행에 커서를 위치합니다.
?Pattern Pattern 매개변수에서 지정한 문자열을 포함하는 다음 이전 행에 커서를 위치합니다.
n 동일 방향의 Pattern 매개변수에서 지정한 텍스트에 대해 최종 탐색을 반복합니다.
N 반대 방향의 Pattern 매개변수에서 지정한 텍스트에 대해 최종 탐색을 반복합니다.
/Pattern/+Number Pattern 매개변수에서 지정한 문자열과 일치하는 행에서 지정된 행 수 이후에 커서를 위치합니다.
?Pattern?-Number Pattern 매개변수에서 지정한 문자열과 일치하는 행에서 지정된 행 수 이전에 커서를 위치합니다.
% 현재 커서 위치에 있는 것과 일치하는 괄호 또는 중괄호를 찾습니다.
텍스트 편집
편집용 부속명령을 사용하여 다음과 같은 타스크를 수행할 수 있습니다.
파일에서 고유의 위치를 표시하고 리턴
파일에 텍스트 추가
입력 모드에서 텍스트 변경
명령 모드에서 텍스트 변경
텍스트 복사 및 이동
변경 복원 및 반복
파일에서 고유의 위치를 표시하고 리턴
다음 부속명령을 명령 모드에서 입력하십시오. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
" 현재 행의 이전 위치로 커서를 이동합니다.
" 현재 행의 이전 위치를 포함하는 행 맨 앞으로 커서를 이동합니다.
mx 현재 위치를 x 매개변수에서 지정한 문자로 표시합니다.
`x x 매개변수에서 지정한 표시로 커서를 이동합니다.
'x x 매개변수에서 지정한 표시를 포함하는 행의 맨 앞으로 커서를 이동합니다.
파일에 텍스트 추가(텍스트 입력 모드)
명령 모드에서 다음 부속명령을 입력하면 vi 편집기가 텍스트 입력 모드로 변경됩니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
aText
Text 매개변수에서 지정한 텍스트를 커서 뒤에 삽입합니다. Esc 키를 누르면 텍스트 입력 모드가 종료됩니다.
AText
Text 매개변수에서 지정한 텍스트를 행의 마지막에 추가합니다. Esc 키를 누르면 텍스트 입력 모드가 종료됩니다.
iText
Text 매개변수에서 지정한 텍스트를 커서 앞에 삽입합니다. Esc 키를 누르면 텍스트 입력 모드가 종료됩니다.
IText
Text 매개변수에서 지정한 텍스트를 행의 첫 번째 공백이 아닌 문자 앞에 삽입합니다. Esc 키를 누르면 텍스트 입력 모드가 종료됩니다.
o
현재 행 밑에 공백 행을 추가합니다. Esc 키를 누르면 텍스트 입력 모드가 종료됩니다.
O
현재 행 위에 공백 행을 추가합니다. Esc 키를 누르면 텍스트 입력 모드가 종료됩니다.
입력 모드에서 텍스트 변경
다음 부속명령은 텍스트 입력 모드에서만 사용됩니다. 이들 명령은 명령 모드에서 다른 의미를 갖습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
Ctrl-D
이전의 자동 들여쓰기(autoindent) 정지로 이동합니다.
^ Ctrl-D 현재 행 전용 자동 들여쓰기(autoindent)를 종료합니다.
0Ctrl-D 커서를 좌측 여백으로 이동합니다.
Esc 삽입을 종료하고 명령 상태로 리턴합니다.
Ctrl-H 마지막 문자를 삭제합니다.
Ctrl-Q xon이 사용 불가능하면 어떤 문자라도 입력합니다.
Ctrl-V 임의의 문자를 입력합니다.
Ctrl-W 마지막 소단어를 삭제합니다.
\ erase 및 kill 문자를 따옴표로 묶습니다.
Ctrl-? 삽입 또는 Ctrl-D 키를 중단 및 종료합니다.
명령 모드에서 텍스트 변경
다음 부속명령을 명령 모드에서 사용합니다. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
C
행의 나머지를 변경합니다(c$와 동일함).
cc
한 행을 변경합니다.
cw 한 단어를 변경합니다.
cwText Text 매개변수에서 지정한 텍스트로 단어를 변경합니다.
D 행의 나머지를 삭제합니다(d$와 동일함).
dd 한 행을 삭제합니다.
dw 한 단어를 삭제합니다.
J 행들을 결합합니다.
rx 현재 문자를 x에 의해 지정된 문자로 대체합니다.
RText
Text 매개변수에서 지정한 텍스트로 문자를 겹쳐씁니다.
s
문자를 대체합니다(cl과 동일함).
S
행을 대체합니다(cc와 동일함).
u 이전 변경을 취소합니다.
x 커서에 있는 문자를 삭제합니다.
X 커서 앞의 문자를 삭제합니다(dh와 동일함).
<< 왼쪽으로 한 행 자리 이동합니다.
>> 오른쪽으로 한 행 자리 이동합니다.
>L 커서에서 화면의 오른쪽 끝으로 모든 행을 자리 이동합니다.
~ 커서에 있는 문자의 대/소문자를 반대로 변경합니다.
! LISP를 위해 들여씁니다.
텍스트 복사 및 이동
다음 부속명령을 명령 모드에서 사용합니다. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
p 커서 다음에 취소 버퍼에서 텍스트를 다시 넣습니다.
P 커서 앞에 취소 버퍼에서 텍스트를 다시 넣습니다.
"xp x 버퍼에서 텍스트를 되돌립니다.
"xd x 버퍼로 텍스트를 삭제합니다.
y 다음에 오는 오브젝트(예를 들면, 단어에 대해 w)를 실행 취소 버퍼에 위치합니다.
"xy 다음에 오는 오브젝트를 x 버퍼에 위치하며, 여기서 x는 임의의 문자입니다.
Y 취소 버퍼에 해당 행을 넣습니다.
변경 복원 및 반복
다음 부속명령을 명령 모드에서 사용합니다. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
u 최종 변경을 취소합니다.
주: 취소 조작 후, 커서는 갱신된 현재 행에서 공백이 아닌 첫 번째 문자로 이동합니다.
U 최종 변경 후 커서 왼쪽에 행이 없을 경우, 현재 행을 복원합니다.
. 최종 변경을 반복하거나 "np 명령을 증분합니다.
주:
이 부속명령은 취소를 포함한 최종 변경을 반복합니다. 그러므로 취소 후, 최종 변경을 반복하기보다는 취소 반복해서 수행하십시오.
이 부속명령을 매크로용으로 사용하려는 것이 아닙니다. 매크로를 반복하려면 @@를 입력하십시오.
"n p 전체 행 또는 행의 블록에서 n 번째 최종 삭제를 검색합니다.
파일 조작
파일 조작에 대한 부속명령을 사용하여 다음에 설명된 타스크를 수행할 수 있습니다.
파일에 변경사항 저장
두 번째 파일 편집
파일 리스트 편집
파일 정보 찾기
파일에 변경사항 저장
다음 부속명령을 명령 모드에서 사용합니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
:w 원래 파일에 편집 버퍼 내용을 씁니다. 이 부속명령을 ex 편집기에서 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:wFile File 매개변수에서 지정한 파일에 편집 버퍼 내용을 기록합니다. 이 부속명령을 ex 편집기에서 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:w! File File 매개변수에서 지정한 파일을 편집 버퍼 내용으로 겹쳐씁니다. 이 부속명령을 ex 편집기에서 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
두 번째 파일 편집
다음 부속명령을 명령 모드에서 입력합니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
:e File 지정된 파일을 편집합니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:e! 현재 파일을 재편집하고 변경된 모든 것을 버립니다.
:e + File 지정된 파일을 끝에서 시작하여 편집합니다.
:e + Number File 지정한 파일을 지정한 행 번호에서 시작하여 편집합니다.
:e # 대체 파일을 편집합니다. 대체 파일은 보통 :e 명령으로 다른 파일에 액세스하기 전의 이전 파일 이름입니다. 그러나 새로운 파일이 호출될 때 변경사항이 현재 파일에 남아 있을 경우, 새로운 파일이 대체 파일이 됩니다. 이 부속명령은 Ctrl-A 부속명령과 동일합니다.
:r File 현재 행 밑에 새로운 행을 추가하여 파일을 편집 버퍼로 읽어 들입니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:r !Command 지정된 명령을 수행하고 현재 커서 위치 아래에 새로운 행을 추가함으로써 해당 출력을 파일에 위치합니다.
:ta Tag 태그의 위치에서 시작하는 Tag 태그를 포함하는 파일을 편집합니다. . 이 부속명령을 사용하려면 우선 ctags 명령을 사용하여 기능 이름 및 그 위치에 대한 데이터베이스를 작성해야 합니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
Ctrl-A 대체 파일을 편집합니다. 대체 파일은 보통 이전의 현재 파일 이름입니다. 그러나 새로운 파일이 호출될 때 변경사항이 현재 파일에 남아 있을 경우, 새로운 파일이 대체 파일이 됩니다. 이 부속명령은 :e # 부속명령과 동일합니다.
파일 리스트 편집
다음 부속명령을 명령 모드에서 입력합니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
:n 명령행에 입력된 리스트에 다음 파일을 편집합니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:n Files 편집할 새로운 파일 리스트를 지정합니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)이 필요하지 않습니다.
파일 정보 찾기
다음 부속명령을 명령 모드에서 입력합니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
Ctrl-G 현재 파일 이름, 현재 행 번호, 파일의 행 수 및 커서가 위치한 파일로 통하는 경로의 퍼센트를 보여줍니다.
기타 조치
vi 편집기는 다음에 설명된 부속명령을 제공합니다.
화면 조정
쉘 명령 입력
vi 편집기 인터럽트 및 종료
화면 조정
다음 부속명령을 명령 모드에서 입력합니다. 완료되지 않은 부속명령은 Esc 키를 눌러 취소할 수 있습니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
Ctrl-L 화면 지우기 및 재구성을 합니다.
Ctrl-R 화면을 재구성하고 @가 표시된 공백 행을 삭제합니다.
zNumber 창의 길이를 숫자에 지정한 행 수로 합니다.
쉘 명령 입력
다음과 같은 부속명령을 사용하여 vi 편집기에서 명령을 수행할 수 있습니다. 명령 모드에서 이 부속명령을 입력하십시오. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
:sh 하나 이상의 명령을 수행할 수 있도록 허용하는 쉘을 입력합니다. Ctrl-D 키를 눌러 vi 편집기로 돌아갈 수 있습니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:!Command 지정된 명령을 수행하고 vi 편집기로 리턴합니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
주: #(대체 파일), %(현재 파일) 및 !(이전 명령) 특수 문자는 :! 부속명령을 따르는 경우에 확장됩니다. 이러한 문자가 확장되지 않도록 하려면 \(백슬래쉬)를 사용하십시오.
:!! 최종 :!Command 부속명령을 반복합니다.
Number!!Command 지정된 명령을 수행하고 Number에서 지정한 행을 명령의 출력으로 대체합니다. . 번호가 지정되지 않은 경우 디폴트 값은 1입니다. 명령이 표준 출력되어야 할 경우 지정된 행들이 입력으로 사용됩니다.
!Object Command 지정된 명령을 수행하고 Object 매개변수에서 지정한 오브젝트를 명령의 출력으로 대체합니다. 명령이 표준 입력되어야 할 경우 지정된 오브젝트가 입력으로서 사용됩니다.
vi 편집기 중단 및 종료
다음 부속명령을 명령 모드에서 입력합니다. vi 부속명령의 형식에 대한 정보가 필요하면 "vi 일반 부속명령 구문"을 참조하십시오.
Q 명령 모드에서 ex 편집기를 입력합니다.
ZZ vi 편집기를 종료하고 변경사항을 저장합니다.
:q vi 편집기에서 나갑니다. 편집 버퍼의 내용을 변경한 경우, vi 편집기는 경고 메세지를 표시하고 편집기를 종료하지는 않습니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
:q! vi 편집기를 종료하고 편집 버퍼를 버립니다. ex 편집기에서 이 부속명령을 사용하는 경우에는 :(콜론)을 입력할 필요가 없습니다.
Esc 텍스트 입력을 종료하거나 완료되지 않은 부속명령을 종료합니다.
Ctrl-? 부속명령을 중단합니다.
종료 상태
다음과 같은 종료 값으로 복귀합니다.
0 성공적인 완료를 표시합니다.
>0 오류 발생을 표시합니다.
입력 파일
입력 파일은 텍스트 파일이거나 또는 길이가 LINE_MAX -1바이트 이하이고 널(null) 문자를 포함하지 않는 마지막 미완료 행을 제외하고는 텍스트 파일과 유사한 파일이어야 합니다.
.exrc 파일은 ex 명령을 구성하는 텍스트 파일이어야 합니다.
디폴트 값에 의해, vi 편집기는 편집 파일에서 행을 읽을 때, vi 편집기 명령 형식에 따라 행을 중단하지 않고 읽습니다.
관련 정보
ctags 명령, ed 명령, ex 명령, sed 명령, tvi 명령, view 명령.
.profile 파일.