영어프랑스어스페인어

Ad


온웍스 파비콘

exposix - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 exposix를 실행하세요.

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 exposix 명령입니다.

프로그램:

이름


ex — 텍스트 편집기

개요


ex [-rR] [-s|-v] [-c 명령] [-t 태그스트링] [-w 크기] [파일...]

기술


XNUMXD덴탈의 ex 유틸리티는 줄 기반 텍스트 편집기입니다. 편집기에는 두 가지 다른 모드가 있습니다.
개방적이고 시각적이며 화면 지향 편집이 가능합니다. 이것은 더 설명되어 있습니다
완전히 ex 열 수시각 명령 및 vi.

피연산자가 '-', 결과가 지정되지 않았습니다.

이 섹션에서는 용어를 사용합니다. 편집 버퍼 현재 작업 텍스트를 설명합니다. 구체적이지 않음
구현은 이 용어에 의해 암시됩니다. 모든 편집 변경은 편집 시 수행됩니다.
버퍼에 대한 변경 사항은 편집기 명령이 다음을 작성할 때까지 파일에 영향을 미치지 않습니다.
파일.

특정 터미널에는 완전한 지원에 필요한 모든 기능이 없습니다. ex
전체 화면 편집 명령과 같은 정의(시각 모드 or 열 수 모드). 언제
이러한 명령은 해당 터미널에서 지원될 수 없습니다. 이 조건은
'편집기 명령이 아닙니다''와 같은 오류 메시지를 표시하거나 구문 오류를 보고합니다. 그만큼
구현은 명령을 수락하고 화면에 결과를 생성할 수 있습니다.
이 볼륨의 요구 사항을 충족하려는 실패한 시도의 결과
POSIX.1-2008 또는 터미널 관련 결함을 설명하는 오류를 보고하십시오.

옵션


XNUMXD덴탈의 ex 유틸리티는 POSIX.1-2008의 기본 정의 볼륨을 준수해야 합니다. 섹션 12.2,
유틸리티 통사론 가이드 라인, 의 명시되지 않은 사용법을 제외하고 '-', 그 '+'
옵션 구분 기호로 인식됩니다. '-'.

다음 옵션이 지원됩니다.

-c 명령
로드된 첫 번째 편집 버퍼에서 실행될 초기 명령을 지정합니다.
기존 파일(확장된 설명 섹션 참조) 구현은 다음과 같습니다.
하나 이상 지원 -c 옵션. 이러한 구현에서는 지정된
명령은 명령줄에 지정된 순서대로 실행됩니다.

-r 명명된 파일을 복구합니다(확장 설명 섹션 참조). 회복
파일에 대한 정보는 편집기 또는 시스템 충돌 중에 저장됩니다(
예를 들어, 편집기가 포착할 수 있는 신호에 의해 편집기가 종료되는 경우)
또는 사용 후 ex 보존 명령.

A 추락 이러한 맥락에서 시스템이나 유틸리티의 예상치 못한 오류가 발생합니다.
실패한 시스템이나 유틸리티를 다시 시작해야 합니다. 시스템 충돌은 다음을 의미합니다.
당시 실행 중인 모든 유틸리티도 충돌합니다. 에디터나 시스템의 경우
크래시, 편집 버퍼에 대한 변경 횟수(가장 최근 보존
명령)을 복구할 대상이 지정되지 않았습니다.

없는 경우 파일 피연산자가 주어지고 -t 옵션이 지정되지 않았습니다. 기타 모든 항목
옵션, 종료 변수 및 임의 .exrc 파일은 무시됩니다. 목록
호출하는 사용자가 사용할 수 있는 모든 복구 가능한 파일이 기록되어야 하며
편집기는 추가 조치 없이 정상적으로 종료됩니다.

-R 세트 읽기 전용 편집 옵션.

-s Prepare ex 일괄 사용하려면 다음 조치를 취하세요.

* 쓰기 프롬프트 및 정보(진단은 아님) 메시지를 억제합니다.

* 값을 무시한다 TERM 모든 구현 기본 터미널 유형 및
터미널이 개방형 또는 시각적 모드를 지원할 수 없는 유형이라고 가정합니다.
~을 보아라. 시각 명령과 설명 vi.

* 사용을 억제한다 종료 환경 변수 및 읽기
.exrc 파일; 확장된 설명 섹션을 참조하세요.

* 값을 무시하고 자동 들여쓰기를 억제합니다. 자동 들여쓰기 편집 옵션.

-t 태그스트링
지정된 내용을 포함하는 파일을 편집합니다. 태그스트링; 만나다 c태그. 태그 기능
에 의해 대표되는 -t 태그스트링 그리고 태그 명령은 선택 사항입니다. 그것은 될 것이다
다음을 준수하는 구현을 제공하는 모든 시스템에 제공됩니다. c태그;
그렇지 않으면, -t 정의되지 않은 결과가 생성됩니다. 어떤 시스템에서든
하나 이상을 지정하는 오류 -t 옵션을 선택합니다.

-v 시각적 모드에서 시작합니다(참조 vi).

-w 크기 값을 설정합니다. 편집기 옵션 크기.

피연산자


다음 피연산자가 지원됩니다.

파일 편집할 파일의 경로 이름입니다.

STDIN


표준 입력은 다음에 설명된 대로 일련의 명령과 입력 텍스트로 구성됩니다.
확장된 설명 섹션. 구현에서는 표준 입력의 각 행을 다음으로 제한할 수 있습니다.
길이는 {LINE_MAX}입니다.

표준 입력이 터미널 장치가 아닌 경우에는 다음과 같습니다. -s 옵션은 있었다
지정되었습니다.

표준 입력의 읽기가 오류를 반환하거나 편집기가 끝을 감지하는 경우
표준 입력의 파일 조건은 SIGHUP 비동기와 동일합니다.
행사.

입력 파일


입력 파일은 텍스트 파일이거나 불완전한 파일을 제외하고 텍스트 파일인 파일이어야 합니다.
길이가 {LINE_MAX}-1바이트보다 길지 않고 NUL을 포함하지 않는 마지막 줄
문자. 기본적으로 불완전한 마지막 줄은 후행이 있는 것처럼 처리됩니다.
. 다른 형식의 파일 편집은 선택적으로 허용될 수 있습니다. ex
구현.

XNUMXD덴탈의 .exrc 파일과 소스 파일은 다음으로 구성된 텍스트 파일이어야 합니다. ex 명령; 참조
확장 설명 섹션.

기본적으로 편집기는 편집할 파일의 줄을 해석하지 않고 읽어야 합니다.
모든 형태의 편집기 명령으로 해당 행을 사용할 수 있습니다.

환경 변수


다음 환경 변수는 실행에 영향을 미칩니다. ex:

COLUMNS 시스템이 선택한 수평 화면 크기를 재정의합니다. 기본 정의 보기
POSIX.1-2008의 볼륨, 8, 환경 변수 유효한 값과
설정되지 않았거나 null일 때 발생합니다.

종료 목록을 결정합니다 ex 에디터 시작 시 실행되는 명령입니다. 참조
초기화 단계에 대한 자세한 내용은 확장 설명 섹션을 참조하세요.

편집기 시작을 위해 검색할 디렉터리의 경로 이름을 결정합니다.
up 파일 이름 .exrc; 확장된 설명 섹션을 참조하세요.

설정되지 않은 국제화 변수에 대한 기본값을 제공하거나
없는. (POSIX.1-2008의 기본 정의 볼륨을 참조하십시오. 섹션 8.2,
국제화 변수 국제화를 위해
로케일 범주의 값을 결정하는 데 사용되는 변수)

LC_ALL 비어 있지 않은 문자열 값으로 설정된 경우 다른 모든 값을 재정의합니다.
국제화 변수.

LC_COLLATE
범위, 등가 클래스 및 다중 동작의 로케일 결정
정규 표현식 내의 문자 조합 요소.

LC_CTYPE 텍스트 데이터의 바이트 시퀀스 해석을 위한 로케일 결정
문자로(예: 다중 바이트 문자가 아닌 단일 바이트
인수 및 입력 파일), 일반 내에서 문자 클래스의 동작
표현, 문자를 대문자 또는 소문자로 분류,
문자의 대소문자 변환 및 단어 경계 감지.

LC_메시지
의 형식과 내용에 영향을 주는 데 사용해야 하는 로케일을 결정합니다.
표준 오류에 기록된 진단 메시지.

LINES 줄 수로 사용되는 시스템이 선택한 세로 화면 크기를 재정의합니다.
화면 크기와 시각적 모드의 세로 화면 크기. 베이스 보기
POSIX.1-2008의 정의 볼륨, 8, 환경 변수 유효한
설정되지 않았거나 null인 경우 값과 결과입니다.

NLS경로 처리를 위한 메시지 카탈로그의 위치를 ​​결정합니다. LC_메시지.

PATH 다음에 지정된 쉘 명령에 대한 검색 경로를 결정합니다. ex 편집자
명령 !, 껍질, 읽기쓰다및 개방형 및 시각적 모드 명령 !; 만나다
명령어 검색 및 실행에 대한 설명 섹션 2.9.1.1, 명령
검색 실행.

SHELL 기본값으로 사용할 기본 명령줄 해석기를 결정합니다.
전에, 껍질 편집 옵션.

TERM 터미널 유형의 이름을 결정합니다. 이 변수가 설정되지 않았거나 null인 경우
지정되지 않은 기본 터미널 유형이 사용됩니다.

비동기 이벤트


다음 용어는 이 섹션과 다음 섹션에서 명령과 명령을 지정하는 데 사용됩니다.
비동기 이벤트 작업:

완전한 쓰다
전체 쓰기는 편집 버퍼의 전체 내용을 파일에 쓰는 것입니다.
터미널 장치가 아닌 유형의 장치이거나 편집 버퍼 저장으로 인해
사용자가 실행함으로써 ex 보존 명령. 편집 내용 작성
편집기가 종료될 때 제거될 임시 파일에 대한 버퍼는
완전한 쓰기로 간주됩니다.

신호를 수신하면 다음 조치를 취해야 합니다.

SIGINT 표준 입력이 터미널 장치가 아닌 경우 ex 파일을 쓰지 않거나
명령 또는 텍스트 입력 모드로 돌아가고 XNUMX이 아닌 종료로 종료됩니다.
상태.

그렇지 않고 개방형 또는 시각적 텍스트 입력 모드 명령을 실행하는 경우, ex 수령 중
SIGINT는 수신과 동일하게 작동합니다. 성격.

그렇지 않으면:

1. 실행하는 경우 ex 텍스트 입력 모드 명령, 입력된 모든 입력 라인
완전히 입력된 내용은 편집 버퍼로 확인되며 부분적으로 입력된 내용은 편집 버퍼로 확인됩니다.
입력된 라인은 폐기됩니다.

2. 현재 실행 중인 명령이 있으면 해당 명령이 중단되고 메시지가 나타납니다.
표시됩니다. 별도의 규정이 없는 한, ex or vi 명령 설명,
실행 명령에 의해 수정된 행이 나타나는지 여부는 지정되지 않습니다.
수정되었거나 실행 명령에 의해 수정되기 전의 상태로
버퍼.

현재 실행 중인 명령이 모션 명령인 경우 관련
명령은 폐기됩니다.

3. 공개 또는 시각적 명령 모드인 경우 터미널에 경고가 표시됩니다.

4. 그런 다음 편집기는 명령 모드로 돌아갑니다.

SIGCONT 열려 있거나 시각적 모드인 경우 화면이 새로 고쳐집니다.

SIGHUP 마지막 전체 쓰기 이후 편집 버퍼가 수정된 경우, ex 하여야 한다
나중에 복구할 수 있도록 편집 버퍼를 저장하려고 시도합니다. -r
옵션 또는 ex 복구 명령. 편집자는 파일을 작성하거나 반환해서는 안 됩니다.
명령 또는 텍스트 입력 모드로 전환하고 XNUMX이 아닌 종료 상태로 종료됩니다.

SIGTERM SIGHUP을 참조하세요.

다른 모든 신호에 대해 수행되는 작업은 지정되지 않습니다.

표준 출력


표준 출력은 정보 제공을 위해 사용자에게 프롬프트를 작성하는 데에만 사용됩니다.
메시지 및 파일에서 줄을 쓰는 데 사용됩니다.

STDERR


표준 오류는 진단 메시지에만 사용해야 합니다.

출력 파일


출력 ex 텍스트 파일이어야 합니다.

확장 기술


오직 ex 이 섹션에서는 편집기 모드에 대해 설명합니다. 보다 vi 추가 편집을 위해
사용 가능한 기능 ex.

오류가 발생하면, ex 메시지를 쓰게 됩니다. 단말기가 눈에 띄는 모드를 지원하는 경우
(역상 비디오 등) 메시지는 눈에 띄는 모드로 작성되어야 합니다. 터미널의 경우
눈에 띄는 모드를 지원하지 않으며 편집 옵션은 오류 벨 설정되면 경고 조치
오류 메시지 앞에 옵니다.

기본적으로, ex 명령 모드에서 시작되며 다음과 같이 표시됩니다. : 즉각적인; 보다
전에, 신속한 명령. 텍스트 입력 모드는 다음을 통해 들어갈 수 있습니다. 추가, 삽입하다이전 단계로 돌아가기
명령; 다음을 입력하여 종료할 수 있습니다(그리고 명령 모드로 다시 들어갈 수 있습니다). ('.') 홀로
줄의 시작 부분에.

초기화 in ex vi
다음 기호는 이 섹션과 다음 섹션에서 위치를 지정하는 데 사용됩니다.
버퍼 편집:

대체 current 경로명
이름이 지정된 두 개의 경로 이름 current대체, 편집자가 관리합니다. 어느 ex
파일 이름을 인수로 취하는 명령은 이를 다음과 같이 설정해야 합니다:

1. 파일 인수는 ex 편집, ex복구 명령을 내리거나
an ex 태그 명령은 편집 버퍼의 내용을 대체합니다.

ㅏ. 명령이 편집 버퍼의 내용을 대체하는 경우 현재
경로 이름은 파일 인수 또는 태그로 표시된 파일,
대체 경로 이름은 현재 경로의 이전 값으로 설정됩니다.
경로명.

비. 그렇지 않으면 대체 경로 이름이 다음으로 설정됩니다. 파일 논의.

2. 파일 인수는 ex 다음 것 명령:

ㅏ. 명령이 편집 버퍼의 내용을 대체하는 경우 현재
경로 이름은 첫 번째로 설정되어야 합니다 파일 인수 및 대체 경로 이름
현재 경로 이름의 이전 값으로 설정됩니다.

3. 파일 인수는 ex 파일 명령, 현재 경로 이름
으로 설정됩니다. 파일 인수이며 대체 경로 이름은 다음으로 설정됩니다.
현재 경로명의 이전 값.

4. 파일 인수는 ex 읽기쓰다 명령(즉,
파일을 읽거나 쓰는 것이지, 이름이 지정된 프로그램에는 쓰지 않습니다. 껍질 편집
옵션) 또는 파일 인수는 ex XIT 명령:

ㅏ. 현재 경로 이름에 값이 없으면 현재 경로 이름은 다음으로 설정됩니다.
전에, 파일 논의.

비. 그렇지 않으면 대체 경로 이름이 다음으로 설정됩니다. 파일 논의.

대체 경로 이름이 현재 경로 이름의 이전 값으로 설정된 경우
현재 경로 이름에 이전 값이 없으면 대체 경로 이름은 다음을 갖습니다.
결과적으로 가치가 없습니다.

current
커서가 참조하는 편집 버퍼의 라인입니다. 각 명령 설명
명령이 실행된 후 현재 행을 지정합니다. current
가치. 편집 버퍼에 줄이 없으면 현재 줄은 XNUMX이 됩니다. 보다
주소 지정 in ex.

current 칼럼
커서가 차지하는 현재 표시 줄 열입니다. (열은
1부터 시작하여 번호가 지정됩니다.) 각 명령 설명은 현재 열을 지정합니다.
명령이 실행된 후 다음과 같이 current 칼럼 값. 이 칼럼은
이상 편집자의 수명 동안 기억되는 열입니다. 실제 디스플레이
커서가 있는 행 열은 현재 열과 다를 수 있습니다.
커서 위치 지정에 대한 설명을 참조하세요. 명령 설명 in vi.

세트
현재 열 값에 대한 설명입니다. 즉, 현재 열은
첫 번째 부분이 표시되는 마지막 표시 줄 열로 설정
비 라인의. 라인에 비-가 없는 경우 비 캐릭터,
현재 열은 마지막 표시 줄 열로 설정됩니다.
마지막이 아닌 부분을 표시했습니다. 라인의 문자. 만약 라인이
비어 있으면 현재 열이 열 위치 1로 설정됩니다.

편집 버퍼의 줄 길이는 {LINE_MAX}바이트로 제한될 수 있습니다. 개방형 및
시각적 모드에서는 편집 버퍼의 줄 길이가 줄 수로 제한될 수 있습니다.
디스플레이에 들어갈 문자. 편집 중에 한도를 초과하면
오류 메시지가 기록됩니다. 파일에서 읽은 행이 한도를 초과하는 경우,
오류 메시지가 기록되고 편집 세션이 종료될 수 있습니다.

사용자 명령 이외의 이유로 에디터 실행이 중지된 경우, 편집 내용은 다음과 같습니다.
버퍼는 마지막 전체 쓰기 이후 수정되었으며 SIGHUP과 동일합니다.
비동기 이벤트. 시스템이 충돌하는 경우 SIGHUP 비동기식과 동일합니다.
행사.

초기화 중(첫 번째 파일이 편집 버퍼에 복사되거나 사용자가
터미널의 명령이 처리됨) 다음이 발생합니다.

1. 환경변수의 경우 종료 설정되면 편집자는 다음을 실행해야 합니다. ex 명령
해당 변수에 포함되어 있습니다.

2. 경우 종료 변수가 설정되지 않았으며 다음 사항이 모두 true입니다.

ㅏ. 그만큼 환경 변수가 null이 아니고 비어 있지 않습니다.

비. 파일 .exrc 에서 참조하는 디렉토리에 환경 변수:

나. 존재한다

ii. 프로세스의 실제 사용자 ID와 동일한 사용자 ID가 소유되어 있거나
프로세스에 적절한 권한이 있습니다

iii. 소유자 외에는 누구도 쓸 수 없습니다.

편집자는 ex 해당 파일에 포함된 명령입니다.

3. 다음 사항이 모두 참인 경우에만:

ㅏ. 현재 디렉토리는 환경 변수.

비. 의 명령 종료 환경 변수 또는 명령 .exrc 에 파일을
에 의해 참조되는 디렉토리 환경 변수는 편집기 옵션을 설정합니다.
exrc.

씨. 그만큼 .exrc 현재 디렉터리의 파일:

나. 존재한다

ii. 프로세스의 실제 사용자 ID와 동일한 사용자 ID 또는 다음 중 하나가 소유합니다.
구현에 정의된 사용자 ID 세트

iii. 소유자 외에는 누구도 쓸 수 없습니다.

편집자는 다음을 실행하려고 시도해야 합니다. ex 해당 파일에 포함된 명령입니다.

어떤 라인이라도 .exrc 빈 줄인 파일은 무시됩니다. 만약에 어떠한 .exrc 파일이 존재,
그러나 소유권이나 허가의 이유로 읽히지 않으면 오류가 됩니다.

종료 변수 및 임의 .exrc 파일이 처리되면 첫 번째 파일이 지정됩니다.
사용자는 다음과 같이 편집됩니다.

1. 이용자가 다음 사항을 명시한 경우 -t 옵션을 사용하면 효과는 다음과 같습니다. ex 태그 명령은
태그 처리가 수행되는 경우를 제외하고 지정된 인수와 함께 입력되었습니다.
편집할 파일이 생성되지 않는 경우 효과는 아래 3단계에 설명된 것과 같습니다.

2. 그렇지 않은 경우, 사용자가 명령줄을 지정한 경우 파일 주장, 효과는 다음과 같습니다
마치 ex 편집 해당 인수 중 첫 번째 인수를 사용하여 명령이 입력되었습니다. 파일
논의.

3. 그렇지 않으면 효과는 다음과 같습니다. ex 편집 명령이 다음과 함께 입력되었습니다.
존재하지 않는 파일 이름 파일 논쟁. 이번 조치가 취해질지는 미정이다.
현재 경로 이름을 설정합니다. 이 작업이 설정되지 않은 구현에서는
현재 경로 이름을 사용하는 경우 현재 경로 이름을 사용하는 모든 편집기 명령은
편집기 명령은 현재 경로 이름을 설정합니다.

경우 -r 옵션이 지정되면 초기 인수 목록의 파일이 처음으로 지정되거나
에 의해 지정된 파일 -t 복구 정보가 이전에 편집된 경우 옵션이 편집됩니다.
저장되면 해당 정보는 복구되며 편집자는 다음과 같이 행동해야 합니다.
편집 버퍼의 내용이 이미 수정되었습니다. 인스턴스가 여러 개 있는 경우
복구할 파일 중 가장 최근에 저장된 파일을 복구하며,
복구할 수 있는 파일의 이전 버전이 있다는 정보 메시지
쓰여질 것이다. 파일에 대한 복구 정보를 사용할 수 없는 경우 정보
이 효과에 대한 메시지가 작성되고 편집은 평소대로 진행됩니다.

경우 -c 옵션이 지정되었을 때 이미 존재하는 파일(
존재하지 않을 수도 있지만 복구 정보를 사용할 수 있는 파일 -r
옵션이 지정됨) 현재 편집 버퍼의 내용을 대체하거나 초기화합니다.
행은 편집 버퍼의 마지막 행으로 설정되어야 하며, 현재 열은 다음으로 설정되어야 합니다.
비 , 그리고 ex 다음으로 지정된 명령 -c 옵션이 실행됩니다. 이에
이 경우 현재 행과 현재 열은 명령에 설명된 대로 설정되지 않습니다.
편집 버퍼 내용의 교체 또는 초기화와 관련됩니다. 그러나 만일
전에, -t 옵션 또는 태그 명령은 이 작업과 연관되어 있으며, -c 옵션 명령
실행된 후 태그로 이동이 수행됩니다.

현재 인수 목록은 처음에 사용자가 지정한 파일 이름으로 설정됩니다.
명령줄. 사용자가 파일 이름을 지정하지 않으면 현재 인수 목록
비어있을 것입니다. 만약 -t 옵션이 지정되었지만 파일 이름이 지정되었는지 여부는 지정되지 않았습니다.
태그 처리의 결과는 현재 인수 목록 앞에 추가됩니다. 경우에
여기서 파일 이름은 현재 인수 목록에 접두사로 추가되며, 현재 인수는
목록 참조는 해당 파일 이름으로 설정됩니다. 파일명이 추가되지 않은 경우
현재 인수 목록에 대한 접두사로서 현재 인수 목록 참조는 다음과 같습니다.
논리적으로 명령줄에 지정된 첫 번째 파일 이름 앞에 위치해야 합니다(예:
예를 들어, 후속 ex 다음 것 명령은 명령의 첫 번째 파일 이름을 편집합니다
선). 만약 -t 옵션이 지정되지 않았습니다. 현재 인수 목록 참조는 다음과 같습니다.
명령줄의 첫 번째 파일 이름입니다.

주소 지정 in ex
주소 지정 ex 현재 행 및 현재 열과 관련됩니다. 라인의 주소
은 1부터 시작하는 줄 번호이고, 열의 주소는 1부터 시작하는 개수입니다.
줄의 시작. 일반적으로 현재 줄은 명령의 영향을 받는 마지막 줄입니다.
현재 줄 번호는 현재 줄의 주소입니다. 각 명령 설명에는
현재 줄 번호와 현재 열에 대한 명령의 효과가 설명됩니다.

주소는 다음과 같이 구성됩니다.

1. 캐릭터 '.' (마침표)는 현재 줄을 지정합니다.

2. 캐릭터 '$' 편집 버퍼의 마지막 줄을 지정해야 합니다.

3. 양의 십진수 n 주소를 n편집 버퍼의 th 라인.

4. 주소 "'엑스" 마크 이름 문자로 표시된 라인을 나타냅니다. '엑스', 그
이식 가능한 문자 집합의 소문자, 역따옴표 문자,
또는 작은따옴표 문자. 표시된 줄이 그렇지 않으면 오류가 됩니다.
현재 편집 버퍼에 있거나 마크가 설정되지 않았습니다. 라인을 표시할 수 있습니다.
와 더불어 ex or k 명령 또는 vi m 명령.

5. 다음으로 묶인 정규 표현식 문자('/') 첫 번째 줄을 다루어야합니다
현재 줄 다음 줄부터 끝 부분을 향해 앞으로 검색하여 찾습니다.
편집 버퍼를 삭제하고 해당 행을 제외한 첫 번째 행에서 중지합니다.
종료 정규식과 일치합니다. 에 명시된 바와 같이 정규병
in ex, 다음으로 구분된 널 정규 표현식으로 구성된 주소
문자("//")는 다음 행을 제외한 행을 주소로 지정해야 합니다.
종료 마지막으로 발견된 정규식과 일치합니다. 게다가,
두번째 명령줄 끝에서는 생략할 수 있습니다. 만약 랩스캔 편집
옵션이 설정되면 검색은 편집 버퍼의 시작 부분까지 반복되며
현재 줄까지 계속해서 전체 편집 버퍼가
검색했습니다. 정규식 내에서 시퀀스 "\/" 리터럴을 나타내야 한다
정규식 구분 기호 대신.

6. 정규 표현식 문자('?')는
현재 줄 앞 줄부터 역방향으로 검색하여 첫 번째 줄을 찾습니다.
편집 버퍼의 시작 부분으로 이동하고 첫 번째 줄에서 중지됩니다.
종료를 제외한 줄 정규식과 일치합니다. 주소
다음으로 구분된 null 정규식으로 구성됩니다. 문자("??")
종료를 제외한 행이 있는 이전 행을 지정해야 합니다.
마지막으로 발견된 정규식과 일치합니다. 또한, 두 번째
mark>는 명령줄 끝에서 생략될 수 있습니다. 만약 랩스캔 편집 옵션이 설정되어 있습니다.
검색은 편집 버퍼의 시작 부분부터 끝 부분까지 순환됩니다.
버퍼를 편집하고 현재 줄까지 계속하여 전체 편집이
버퍼가 검색됩니다. 정규식 내에서 시퀀스 "\?" 대표한다
오자 RE 구분 기호 대신.

7. 아 ('+') 또는 빼기 기호('-') 뒤에 XNUMX진수가 표시됩니다.
현재 줄에 숫자를 더하거나 뺀 값입니다. ㅏ '+' or '-' 뒤에 소수가 붙지 않음
숫자는 현재 줄에 1을 더하거나 빼는 주소를 지정해야 합니다.

주소 뒤에는 XNUMX개 이상의 주소 오프셋이 올 수 있으며 선택적으로 -분리.
주소 오프셋은 다음과 같이 구성됩니다.

1. '+' or '-' 바로 뒤에 XNUMX진수를 더하거나 빼야 합니다.
주소까지의 행 수를 나타냅니다. ㅏ '+' or '-' 뒤따르지 않는
1진수는 주소에 XNUMX을 더(빼기)해야 합니다.

2. 십진수는 표시된 행 수를 주소에 추가해야 합니다.

중간 주소 값이 XNUMX보다 작거나 큰 것은 오류가 아닙니다.
편집 버퍼의 마지막 줄보다 까지의 최종 주소값은 에러가 됩니다.
XNUMX보다 작거나 편집 버퍼의 마지막 줄보다 커야 합니다.

명령은 XNUMX개, XNUMX개 또는 XNUMX개의 주소를 사용합니다. 설명을 참조하세요 1주소2주소 in
명령 설명 in ex. 필요한 개수 이상의 주소를 제공한 경우
XNUMX개의 주소가 필요한 명령은 오류가 됩니다. 그렇지 않은 경우, 그 이상이면
필요한 수의 주소가 명령에 제공되고 주소가 먼저 지정됩니다.
유효한 주소의 최대 개수가 남을 때까지 평가된 후 폐기됩니다.

주소는 a로 서로 분리됩니다. (',') 또는 (';').
앞이나 뒤에 주소가 지정되지 않은 경우 또는 분리기, 그것은 것입니다
마치 현재 행의 주소가 구분 기호 앞이나 뒤에 지정된 것처럼 보입니다. 에서
의 경우 구분 기호, 현재 줄('.')를 첫 번째로 설정해야 합니다.
주소를 입력한 후에만 다음 주소가 계산됩니다. 이 기능은 다음과 같은 용도로 사용할 수 있습니다.
정방향 및 역방향 검색의 시작선을 결정합니다(규칙 5 및 6 참조).

ㅏ ('%')는 두 개의 주소를 입력하는 것과 같습니다. "1,$".

모든 구분 주소, 주소 구분 기호 또는 주소 사이의 문자
오프셋은 폐기됩니다.

명령 라인 파싱 in ex
이 섹션과 다음 섹션에서는 구문 분석 동작을 설명하기 위해 다음 기호가 사용됩니다.

탈출 문자가 ``로 언급되는 경우 -탈출'' 또는 `` -V-
escaped''는 문자가 특별한 의미를 획득하거나 상실했음을 의미합니다.
각각 앞에 a가 있기 때문에 또는 -V
성격. 달리 지정하지 않는 한 이스케이프 문자는 삭제됩니다.
그 당시에는 어떤 목적으로도 더 이상 고려되지 않습니다.

명령줄 구문 분석은 다음 단계로 수행됩니다. 각 단계마다 캐릭터
이미 평가된 내용은 무시됩니다. 즉, '주요 인물'이라는 문구는 다음을 의미합니다.
아직 평가되지 않은 다음 문자입니다.

1. 선도 문자는 건너뜁니다.

2. 선도 문자는 건너뜁니다.

3. 선행 문자가 큰따옴표 문자인 경우 및
다음 비 포함 -탈출 폐기되어야 하며, 모든
후속 문자는 별도의 명령으로 구문 분석됩니다.

4. 주소로 해석될 수 있는 선두 문자가 평가됩니다. 보다
주소 지정 in ex.

5. 선도 문자는 건너뜁니다.

6. 다음 문자가 문자 또는 :

ㅏ. 다음 문자가 다음 문자인 경우 :

나. 만약에 ex 개방형 또는 시각적 모드인 경우 현재 행은 마지막 행으로 설정됩니다.
주소가 지정되었습니다(있는 경우).

ii. 그렇지 않고 마지막 명령이 다음에 의해 종료된 경우 성격,
아무런 조치도 취하지 않습니다. 예를 들어 다음 명령은 "|| " 하여야 한다
세 개가 아닌 두 개의 암시적 명령을 실행합니다.

iii. 그렇지 않은 경우 6.b단계를 따르세요. 적용한다.

비. 그렇지 않으면 암시된 명령은 다음과 같습니다. 인쇄 명령. 마지막 #, pl
임의의 플래그로 지정됨 ex 명령은 기억되고 여기에 적용됩니다
암시적 명령. 실행 ex 번호, 인쇄명부 명령은
기억된 플래그 #, 아무것도 그리고 l, 각각 및 기타 플래그
해당 실행을 위해 지정된 번호, 인쇄명부 명령.

If ex 현재 수행하고 있지 않은 글로벌 or v 명령, 주소나 개수 없음
지정되면 명령이 실행되기 전에 현재 행이 1씩 증가합니다.
실행. 현재 줄을 증가시키면 주소가 다음 줄을 넘어서게 되는 경우
편집 버퍼의 마지막 라인에서는 명령이 실패하고 증분은 수행되지 않습니다.
우연히 있다.

씨. 그만큼 또는 문자는 폐기되고 이후의 모든 문자는 삭제됩니다.
문자는 별도의 명령으로 구문 분석됩니다.

7. 명령어 이름은 다음 문자로 구성됩니다(문자가 아닌 경우).
알파벳) 또는 다음 문자와 그 이후의 알파벳 문자(해당되는 경우)
문자는 알파벳입니다. 단, 다음은 예외입니다.

ㅏ. 명령 이름에 있는 문자의 접두어로 구성된 명령 삭제,
바로 뒤에 임의의 문자가 옵니다. '엘', 'NS', '+', '-''#' 한다
로 해석됨 삭제 명령 다음에 , 그 뒤에 문자가 옵니다.
접두사에 포함되지 않은 것 삭제 명령. 최대 수
문자는 명령 이름과 일치해야 합니다. 삭제; 예를 들어 "델" 하여야 한다
로 대우받지 못한다 "데" 이어서 플래그 l.

비. 문자로 구성된 명령 '케이', 그 뒤에는 다음과 같은 문자가 옵니다.
마크의 이름으로 사용되는 것은 mark 명령 뒤에 a가 오는 것과 동일합니다.
, 그 뒤에 오는 문자가 옵니다. '케이'.

씨. 문자로 구성된 명령 'NS', 그 뒤에는 다음과 같은 문자가 올 수 있습니다.
유효한 옵션으로 해석됩니다. s 명령은 다음과 동일합니다. s
패턴이나 대체 값 없이 명령 뒤에 ,
그 뒤에 문자가 온다. 'NS'.

8. 명령 이름은 가능한 명령 이름과 일치해야 하며 명령은
사용자가 지정한 문자와 일치하는 접두사가 포함된 이름은
실행된 명령. 사용자가 지정한 문자를 사용하는 명령의 경우
모호할 수 있는 경우 실행되는 명령은 다음과 같습니다.

┌───┬────────┬┬───┬───────┬┬───┬───────┐
a추가 ││n다음 것 ││tt
c이전 단계로 돌아가기 ││p인쇄 ││u취소
ch이전 단계로 돌아가기 ││pr인쇄 ││un취소
e편집 ││r읽기 ││vv
m움직임 ││re읽기 ││w쓰다
ma ││ss ││ │ │
└───┴────────┴┴───┴───────┴┴───┴───────┘
유사한 모호성을 유발하는 이름을 가진 구현 확장은 확인되지 않습니다.
POSIX.1‐2008에 지정된 명령에 대해 가능한 모든 일치가 이루어질 때까지 일치를 위해
확인되었습니다.

9. 명령이 다음과 같은 경우 ! 명령이거나 명령이 다음과 같은 경우 읽기 명령 뒤에 XNUMX이 옵니다.
이상 캐릭터와 !, 또는 명령이 쓰다 명령 뒤에
하나 이상 캐릭터와 !, 나머지 명령에는 모든 항목이 포함됩니다.
최대 문자 -탈출 . 그만큼 한다
폐기되고 후속 문자는 별도의 문자로 구문 분석됩니다. ex 명령.

10. 그렇지 않은 경우 명령이 편집, ex다음 것 명령 또는 시각 동안 명령
개방형 또는 시각적 모드에서 명령의 다음 부분은 다음과 같이 구문 분석됩니다.

ㅏ. 어느 '!' 명령 바로 뒤의 문자는 건너뛰고 일부가 됩니다.
명령의.

비. 어떤 선도 문자는 건너뛰고 명령의 일부가 됩니다.

씨. 다음 문자가 다음 문자인 경우 '+', 첫 번째 비 문자까지 -탈출
아니면- -탈출 건너뛰고
명령.

디. 명령의 나머지 부분은 단락에 지정된 단계에 따라 결정됩니다.
12.

11. 그렇지 않은 경우 명령이 글로벌, 열 수, sv 명령, 다음 부분
명령은 다음과 같이 구문 분석됩니다.

ㅏ. 어떤 선도 문자는 건너뛰고 명령의 일부가 됩니다.

비. 다음 문자가 영숫자가 아닌 경우 큰따옴표, ,
, 또는 성격:

나. 다음 문자는 명령 구분 기호로 사용됩니다.

ii. 명령이 다음과 같은 경우 글로벌, 열 수v 명령, 첫 번째 문자까지
비 -탈출 , 또는 첫 번째 비- -이스케이프 구분 기호
문자는 건너뛰고 명령의 일부가 됩니다.

iii. 명령이 s 명령, 첫 번째 문자까지
비 -탈출 또는 두 번째 비 -탈출
구분 문자는 건너뛰고 명령의 일부가 되어야 합니다.

씨. 명령이 다음과 같은 경우 글로벌 or v 명령, 첫 번째 문자까지
비 -탈출 건너뛰고 명령의 일부가 됩니다.

디. 그렇지 않으면 명령의 나머지 부분은 다음에 지정된 단계에 따라 결정됩니다.
단락 12.

12. 그렇지 않은 경우:

ㅏ. 명령이 지도, 지도 해제, 줄여 쓰다축약하지 않다 명령, 문자
첫 번째 비 ‐V-이스케이프 , , 또는 이중-
따옴표 문자는 건너뛰고 명령의 일부가 되어야 합니다.

비. 그렇지 않으면 첫 번째 비-문자까지의 문자는 -탈출 ,
, 또는 큰따옴표 문자는 건너뛰고
명령.

씨. 명령이 추가, 이전 단계로 돌아가기삽입하다 명령 및 12.b 단계. 끝났다
에 문자, 후속 문자, 다음 문자까지
비 -탈출 명령에 대한 입력 텍스트로 사용됩니다.

디. 명령이 큰따옴표 문자로 끝난 경우 모든 후속 문자는
다음 비까지 -탈출 , 폐기됩니다.

이자형. 종료 또는 캐릭터는 폐기되며,
후속 문자는 별도의 문자로 구문 분석됩니다. ex 명령.

명령 인수는 각 인수의 개요 및 설명에 설명된 대로 구문 분석됩니다.
개인 ex 명령. 이 구문 분석은 - 다음을 제외하고는 민감합니다. !
인수는 개입하지 않고 명령 이름 뒤에 와야 합니다. 캐릭터와
그렇지 않으면 모호할 것입니다. 예를 들어, 계산플래그 인수는 필요하지 않습니다
- 때문에 헤어졌다 "d22p" 모호하지는 않지만 파일 주장 ex 다음 것
명령은 하나 이상으로 구분되어야 합니다. 문자. 어느 지휘 중
에 대한 주장 줄여 쓰다, 축약하지 않다, 지도지도 해제 명령은 다음과 같습니다 -V-
탈출했는데, 이 경우 인수 구분 기호로 사용하면 안 됩니다. 어느
다른 명령의 명령 인수에는 다음이 포함될 수 있습니다. -이스케이프된 경우
저것 인수 구분 기호로 사용하면 안 됩니다.

에 대한 명령 인수 내에서 줄여 쓰다, 축약하지 않다, 지도지도 해제 명령, 임의
성격은 그럴 수 있다 ‐V-탈출. 이러한 이스케이프된 문자는 모두 처리됩니다.
문자 그대로이며 특별한 의미는 없습니다. 다른 모든 명령 인수 내에서 ex
정규식이나 대체 문자열이 아닌 명령,
그렇지 않으면 특별한 의미를 가질 수 있습니다. -탈출. 이스케이프된 문자는 다음과 같습니다.
특별한 의미 없이 문자 그대로 쉘 확장 문자로 취급됩니다. '!', '%'
'#' 확장 문자. 보다 정규병 in ex바꿔 놓음 문자열 in ex for
정규식 또는 대체 문자열인 명령 인수에 대한 설명입니다.

비 -탈출 '%' 에 등장하는 캐릭터들 파일 어떤 것에 대한 주장 ex 명령은 다음과 같다
현재 경로 이름으로 대체됩니다. 이스케이프되지 않은 '#' 문자는 다음으로 대체됩니다.
대체 경로 이름. 다음과 같은 경우 오류가 발생합니다. '%' or '#' 문자는 이스케이프되지 않은 것으로 나타납니다.
인수와 해당 값이 설정되지 않았습니다.

비 -탈출 '!' 둘 중 하나에 대한 인수의 문자 ex ! 명령 또는
개방형 및 시각적 모드 ! 명령 또는 인수에 대한 ex 읽기 명령, 여기서
첫 번째 비 명령 이름 뒤에는 '!' 성격이나 주장에 있어서
ex 쓰다 명령 이름 뒤에 하나 이상의 명령이 오는 명령 캐릭터와
첫 번째 비 명령 이름 뒤에는 '!' 문자는 다음으로 대체됩니다.
이 세 가지 명령 중 마지막 명령에 대한 인수는 모두 이스케이프되지 않은 후에 나타납니다.
'%', '#''!' 문자가 교체되었습니다. 다음과 같은 경우 오류가 발생합니다. '!' 문자
이 명령 중 하나에서 이스케이프되지 않은 것으로 나타나고 이전에 명령을 실행한 적이 없습니다.
이러한 명령 중.

구문 분석이나 실행 중에 오류가 발생한 경우 ex 명령:

* 이에 대한 정보 메시지가 작성됩니다. 실행 ex 명령
중지되고 커서(예: 현재 행 및 열)가 중지됩니다.
추가로 수정되었습니다.

* 경우 ex 지도 확장으로 인한 명령, 해당 지도의 모든 캐릭터
확장은 에 의해 달리 지정되지 않는 한 폐기됩니다. 지도 명령.

* 그렇지 않은 경우 ex 명령은 다음 처리의 결과로 발생했습니다. 종료 환경
변수, .exrc 파일, :원천 명령, a -c 옵션 또는 +명령 에 지정
ex 편집, ex, 다음 것시각 명령, 소스에서 더 이상 명령이 없습니다.
명령이 실행됩니다.

* 그렇지 않은 경우 ex 명령은 버퍼 또는 글로벌 or v
명령, 버퍼 실행으로 인한 추가 명령은 없습니다. 글로벌 or v
명령이 실행됩니다.

* 그렇지 않은 경우 ex 명령이 다음에 의해 종료되지 않았습니다. , 최대 모든 문자
다음 비 포함 -탈출 폐기됩니다.

입력 편집 in ex
다음 기호는 이 섹션과 다음 섹션에서 명령을 지정하는 데 사용됩니다.
행위:

워드 POSIX 로케일에서 단어는 최대 문자, 숫자, 문자의 순서로 구성됩니다.
밑줄은 문자 이외의 문자로 양쪽 끝을 구분합니다.
숫자, 밑줄, 줄의 시작이나 끝 또는 편집 버퍼로 표시됩니다.

사용자로부터 입력 문자를 받아들일 때, ex 명령 모드 또는 ex 텍스트 입력
모드, ex 시스템 인터페이스에 정의된 대로 표준 모드 입력 처리를 활성화해야 합니다.
POSIX.1-2008 볼륨.

있는 경우 ex 텍스트 입력 모드:

1. 경우 번호 편집 옵션이 설정되어 있습니다. ex 다음 줄 번호를 사용하여 입력하라는 메시지를 표시합니다.
라인에 지정된 형식으로 라인이 입력되면 해당 라인에 할당됩니다. ex
번호 명령.

2. 경우 자동 들여쓰기 편집 옵션이 설정되어 있습니다. ex 다음을 사용하여 입력하라는 메시지를 표시합니다. 자동 들여쓰기
문자는 설명대로 자동 들여쓰기 편집 옵션. 자동 들여쓰기 캐릭터는
줄 번호가 있으면 따라가세요.

있는 경우 ex 명령 모드:

1. 경우 신속한 편집 옵션이 설정되면 단일 입력을 사용하라는 메시지가 표시됩니다. ':'
성격; 그렇지 않으면 프롬프트가 표시되지 않습니다.

다음 섹션의 입력 문자는 다음과 같은 효과를 갖습니다.
입력 라인.

스크롤
개요:
eof

설명을 참조하십시오. 스티 eof 에 문자 스티.

있는 경우 ex 명령 모드:

경우 eof 문자는 줄에 입력된 첫 번째 문자입니다.
두 문자가 포함된 것처럼 평가됩니다. ‐D와 .

그렇지 않으면, eof 문자에는 특별한 의미가 없습니다.

있는 경우 ex 텍스트 입력 모드:

커서가 자동 들여쓰기 성격, 자동 들여쓰기 에 등장하는 캐릭터들
다음 텍스트 입력 문자의 일부가 되도록 줄을 수정해야 합니다.
이전 행 다음 줄의 첫 번째 열에 표시됩니다. 시프트 폭 편집 옵션
열 경계가 바뀌고 사용자에게 동일한 줄에 대한 입력을 다시 묻는 메시지가 표시됩니다.

그렇지 않은 경우 커서가 '0', 다음은 자동 들여쓰기 캐릭터,
전에, '0' 이전 텍스트 입력 문자였고, '0' 모든 자동 들여쓰기
해당 줄의 문자는 삭제되고 사용자에게 다시 묻는 메시지가 표시됩니다.
같은 라인에 대한 입력입니다.

그렇지 않은 경우 커서가 '^', 다음은 자동 들여쓰기 캐릭터,
전에, '^' 이전 텍스트 입력 문자였고, '^' 모든 자동 들여쓰기
해당 줄의 문자는 삭제되고 사용자에게 다시 묻는 메시지가 표시됩니다.
같은 라인에 대한 입력입니다. 또한, 자동 들여쓰기 다음 입력 라인의 레벨
은 다음과 같은 라인에서 파생됩니다. 자동 들여쓰기 현재 수준
입력라인이 도출되었습니다.

그렇지 않은 경우에는 자동 들여쓰기 또는 라인의 텍스트 입력 문자, eof
캐릭터는 폐기됩니다.

그렇지 않으면, eof 문자에는 특별한 의미가 없습니다.


개요:

-제이

있는 경우 ex 명령 모드:

명령줄을 구문 분석합니다. ‐J는 다음에 매핑되어야 합니다.
이 목적을 위해.

있는 경우 ex 텍스트 입력 모드:

현재 줄을 종료합니다. 이외의 문자가 없는 경우 자동 들여쓰기
해당 줄의 문자가 있으면 해당 줄의 모든 문자가 삭제됩니다.

현재 줄 다음의 새 줄에 텍스트를 입력하라는 메시지를 표시합니다. 만약 자동 들여쓰기 편집
옵션이 설정되면 적절한 수의 자동 들여쓰기 문자는 다음과 같이 추가됩니다.
설명된 대로 줄의 접두사 ex 자동 들여쓰기 편집 옵션.


개요:


후속 항목의 입력을 허용합니다. 또는 ‐J를 문자 그대로 사용하여 제거
텍스트 입력 모드 중에 편집기에 있을 수 있는 특별한 의미입니다. 그만큼
문자는 명령줄을 구문 분석할 때 유지되고 평가되어야 합니다.
입력 텍스트가 편집 버퍼의 일부가 될 때 포함됩니다.

-V
개요:
-V

후속 문자를 리터럴 문자로 입력하도록 허용하고 특수 문자를 제거합니다.
이는 텍스트 입력 모드 중에 편집기에 필요할 수 있음을 의미합니다. 그만큼 ‐V 캐릭터
명령줄이 구문 분석되거나 입력 텍스트가
편집 버퍼.

``리터럴 다음'' 기능이 하부 시스템에 의해 수행된다면, 그것은
구현에서 정의된 문자 이외의 문자인지 여부 ‐V가 이 기능을 수행합니다.

-W
개요:
-W

폐기 ‐W 및 입력 줄에서 그 이전 단어(모든 항목 포함)
단어 뒤와 그 앞에 오는 문자 ‐W. ``라는 단어가 있는 경우
지우기'' 기능은 기본 시스템에 의해 수행되며 구현에 따라 정의됩니다.
이외의 문자인지 여부 ‐W가 이 기능을 수행합니다.

명령 설명 in ex
이 섹션에서는 명령 수정자를 나타내기 위해 다음 기호가 사용됩니다. 일부
이러한 수정자는 생략될 수 있으며, 이 경우 지정된 기본값이 사용됩니다.

1주소 다음에 설명된 형식으로 제공되는 단일 행 주소입니다. 주소 지정 in ex;
기본값은 현재 줄입니다('.'), 별도의 규정이없는.

라인 주소가 XNUMX이면 달리 지정하지 않는 한 오류가 됩니다.
다음 명령 설명.

편집 버퍼가 비어 있고 주소가 다른 명령으로 지정된 경우
보다 =, 추가, 삽입하다, 열 수, 놓다, 읽기시각, 또는 주소가 XNUMX이 아닙니다.
오류일 것입니다.

2주소 포함된 행 범위를 지정하는 두 개의 주소입니다. 주소가 없는 경우
지정됨, 기본값 2주소 현재 줄만 있어야 합니다(".,."), 하지 않는 한
그렇지 않으면 다음 명령 설명에 지정됩니다. 주소가 하나라면
지정된, 2주소 달리 지정하지 않는 한 해당 행만 지정해야 합니다.
다음 명령 설명.

첫 번째 주소가 두 번째 주소보다 크면 오류가 됩니다.

편집 버퍼가 비어 있고 두 주소가 명령으로 지정된 경우
이외의 !, 쓰다, wqXIT 명령이거나 주소 중 하나가 XNUMX이 아닌 경우
오류가 됩니다.

계산 양의 십진수입니다. 만약에 계산 지정되면 다음과 같습니다.
별도로 지정하지 않는 한 명령에 추가 주소를 지정합니다.
다음 명령 설명. 추가 주소는 다음과 같습니다.
명령에 지정된 마지막 주소(명시적으로 또는 기본적으로) +
계산−1.

이로 인해 편집의 마지막 줄보다 큰 주소가 생성되는 경우
버퍼의 경우 편집 버퍼의 마지막 라인과 동일하도록 수정되어야 합니다.

플래그 하나 이상의 문자 '+', '-', '#', 'NS''엘' (엘). 깃발
문자는 될 수 있습니다 -분리되어 있고 임의의 순서나 조합으로 되어 있습니다. 그만큼
문자 '#', 'NS''엘' 행이 다음 형식으로 작성됩니다.
에 의해 지정된 인쇄 지정된 명령 플래그.

작성할 줄은 다음과 같습니다.

1. 실행 중에 작성된 모든 편집 버퍼 라인 ex &, ~, 명부,
번호, 열 수, 인쇄, s, 시각z 명령은 지정된 대로 작성되어야 합니다.
by 플래그.

2. 완료 후 ex 플래그를 인수로 사용하여 명령을 실행하면
현재 행은 다음에 의해 지정된 대로 작성됩니다. 플래그, 현재 줄이 아니면
명령에 의해 작성된 마지막 줄이었습니다.

캐릭터 '+''-' 현재 행의 값은 다음과 같습니다.
의 실행 ex 에 설명된 대로 오프셋 주소로 조정되는 명령입니다.
주소 지정 in ex. 이 조정은 현재 라인이 완료되기 전에 발생해야 합니다.
위의 2.에 설명된 대로 작성되었습니다.

기본값 플래그 아무 것도 아닐 것입니다.

버퍼 텍스트를 보관하기 위한 여러 명명된 영역 중 하나입니다. 명명된 버퍼가 지정됩니다.
POSIX 로케일의 영숫자 문자로. 그것도 하나쯤은 있겠지
``이름이 없는'' 버퍼. 사용하는 편집기 명령에 대해 버퍼가 지정되지 않은 경우
버퍼의 경우 이름이 지정되지 않은 버퍼가 사용됩니다. 텍스트를 버퍼에 저장하는 명령
명령이 적용되기 전의 텍스트를 그대로 저장하고
파일의 뒷부분에 발생하는 텍스트보다 먼저 파일에서 발생하는 텍스트,
텍스트 영역이 어떻게 지정되었는지에 관계없이. 텍스트를 저장하는 명령
버퍼는 이름이 지정되지 않은 버퍼와 지정된 버퍼에 텍스트를 저장해야 합니다.
버퍼.

In ex 명령, 버퍼 이름은 자체적으로 이름으로 지정됩니다. 오픈 또는
시각적 모드 명령은 이름 앞에 큰따옴표('"') 캐릭터.

지정된 버퍼 이름이 대문자이고 버퍼 내용이
수정될 경우 버퍼는 버퍼가 아닌 추가되어야 합니다.
덮어썼습니다. 버퍼가 수정되지 않는 경우 버퍼 이름을
소문자와 대문자는 동일한 결과를 갖습니다.

1부터 9까지의 숫자로 명명된 버퍼도 있어야 합니다. 공개 및 시각적
모드, 한 줄 이상의 문자를 포함하는 텍스트 영역이
에 의해 수정되고 있습니다. vi c or d 명령, 관련된 모션 캐릭터
전에, c or d 명령은 버퍼 텍스트가 라인 모드에 있도록 지정합니다.
명령 %, `, /, ?, (, ), N, n, {} 텍스트 영역을 정의하는 데 사용됩니다.
전에, c or d 명령을 실행하면 버퍼 1~8의 내용이
다음으로 큰 숫자 값으로 명명된 버퍼, 버퍼 9의 내용
폐기되고 텍스트 영역은 버퍼 1에 복사됩니다.
텍스트를 사용자가 지정한 버퍼에 복사하거나 이름이 지정되지 않은 곳에 복사하는 것 외에도
버퍼 또는 둘 다. 숫자 버퍼는 오픈을 위한 소스 버퍼로 지정될 수 있습니다.
및 시각적 모드 명령; 그러나 숫자 버퍼를 쓰기로 지정하면
개방형 또는 시각적 모드 명령의 대상에는 지정되지 않은 결과가 있어야 합니다.

각 버퍼의 텍스트는 줄 또는 줄로 표시되는 특성을 가져야 합니다.
캐릭터 모드. 비어 있지 않은 버퍼에 텍스트를 추가하면 모드가 일치하도록 설정됩니다.
첨부되는 텍스트의 특징. 버퍼에 텍스트를 추가하면
버퍼에 최소한 하나의 추가 라인이 생성됩니다. 모든 텍스트
버퍼에 저장됨 ex 명령은 라인 모드여야 합니다. 그만큼 ex 명령
버퍼를 텍스트 소스로 사용 다양한 버퍼의 사용 방식을 개별적으로 지정
모드가 처리됩니다. 버퍼를 사용하는 각 개방형 또는 시각적 모드 명령
목적은 버퍼에 저장된 텍스트의 모드를 개별적으로 지정하고
다양한 모드의 버퍼가 처리되는 방식.

파일 경로 이름을 파생하는 데 사용되는 명령 텍스트입니다. 기본값은 현재입니다.
이전에 정의한 대로 경로 이름. 이 경우 현재 경로 이름이 아직 없으면
확정된 경우에는 오류로 간주됩니다. 단, 특별히 언급된 경우는 제외됩니다.
개별 명령 설명은 다음과 같습니다. 명령 텍스트에 다음이 포함된 경우
캐릭터의 '~', '{', '[', '*', '?', '$', '"', 역따옴표, 작은따옴표,
그리고 , 그것은 '쉘 확장' 과정을 거쳐야 한다.
아래에 설명된 대로; 둘 이상의 경로 이름이 결과로 나오고 명령이 실행되는 경우
하나만 기대하면 오류가 됩니다.

에디터에서 쉘 확장 과정은 다음과 같이 진행됩니다. 그만큼 ex
유틸리티는 쉘 편집 옵션으로 명명된 프로그램에 두 개의 인수를 전달해야 합니다.
첫 번째는 -c, 두 번째는 문자열이 될 것입니다 "에코" 및 명령
텍스트를 단일 인수로 사용합니다. 표준 출력과 표준 오류
명령은 명령 텍스트를 대체합니다.

! 다음과 같이 명령 이름에 추가하여 해당 작업을 수정할 수 있는 문자입니다.
개별 명령 설명에 자세히 설명되어 있습니다. 다음을 제외하고는 ex
읽기, 쓰다! 명령, '!' 캐릭터는 다음과 같은 경우에만 수정자 역할을 합니다.
없다 그것과 명령 이름 사이의 문자.

기억 수색 방향
XNUMXD덴탈의 vi 명령 Nn 앞으로 또는 뒤로 검색을 시작합니다.
기억된 검색 방향을 기반으로 하는 편집 버퍼입니다.
설정되지 않으며 다음에 의해 설정됩니다. ex 글로벌, v, s태그 명령 및 vi /?
명령.

줄여 쓰다
개요:
ab[단축하다][ㄹㅇ rhs]

If ㄹㅇrhs 지정되지 않은 경우 현재 약어 목록을 작성하고 아무 작업도 수행하지 않습니다.
더.

구현 시 허용되는 문자 집합이 제한될 수 있습니다. ㄹㅇ or rhs제외하고
인쇄 가능한 문자 및 문자는 제한되지 않습니다. 추가의
제한 사항은 구현에 따라 정의되어야 합니다.

둘다 ㄹㅇrhs, 모든 문자는 다음과 같이 이스케이프될 수 있습니다. ‐V, 이 경우
문자를 구분하는 데 사용해서는 안 됩니다. ㄹㅇrhs, 그리고 탈출 ‐V는
버렸다.

개방형 및 시각적 텍스트 입력 모드에서 단어가 아닌 경우 또는 이스케이프되지 않은 문자
에 의해 ‐V 문자가 단어 문자 뒤에 입력되면 해당 문자를 확인해야 합니다.
일치하는 문자 집합 ㄹㅇ, 이 명령 중에 입력된 텍스트 입력에 있습니다. 그렇다면
발견되면 그 효과는 다음과 같습니다 rhs 대신 입력되었습니다. ㄹㅇ.

확인되는 문자 집합은 다음과 같이 정의됩니다.

1. 단어 앞에 삽입된 문자가 없고 단어나 단어가 아닌 경우 문자
검사를 실행한 문자 집합은 문자라는 단어로 구성됩니다.

2. 단어 앞에 문자가 삽입되거나 단어가 아닌 경우 문자
트리거된 검사는 단어 문자이며 문자 집합은 다음과 같이 구성됩니다.
단어인 트리거 문자 바로 앞에 삽입된 문자
문자와 트리거 단어 문자를 더한 것입니다.

3. 단어 앞에 문자가 삽입되거나 단어가 아닌 경우 문자
트리거된 검사는 단어 문자가 아니며 문자 집합은 다음으로 구성됩니다.
둘 다 아닌 트리거 문자 앞에 삽입된 문자
문자나 단어 문자, 그리고 트리거 단어 문자.

여부는 미정 ㄹㅇ 에 대해 입력된 인수 ex 줄여 쓰다축약하지 않다
명령은 이런 방식으로 대체됩니다. 교체 여부에 관계없이,
명령의 효과는 교체가 발생하지 않은 것과 같습니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

추가
개요:
[1주소] a[추가하다][!]

엔터 버튼 ex 텍스트 입력 모드; 입력 텍스트는 지정된 줄 뒤에 배치됩니다. 만약 라인
XNUMX이 지정되면 텍스트는 편집 버퍼의 시작 부분에 배치됩니다.

이 명령은 다음의 영향을 받습니다. 번호자동 들여쓰기 편집 옵션; 다음
명령 이름 '!' 원인이 될 것이다 자동 들여쓰기 전환할 편집 옵션 설정
이 명령의 지속 시간만.

Current : 마지막 입력 라인으로 설정합니다. 라인이 입력되지 않은 경우 지정된
줄, 또는 XNUMX 줄이 지정된 경우 편집 버퍼의 첫 번째 줄, 또는 XNUMX 줄이 지정된 경우
편집 버퍼가 비어 있습니다.

Current 칼럼: 비로 설정 .

인수
개요:
아르[gs]

현재 인수 목록 항목이 있는 경우 현재 인수 목록을 작성합니다. '['
']' 자.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

변화
개요:
[2주소] c[hange][!][계산]

엔터 버튼 ex 텍스트 입력 모드; 입력 텍스트는 지정된 행을 대체합니다. 지정된
라인은 이름이 지정되지 않은 버퍼에 복사되며 라인 모드 버퍼가 됩니다.

이 명령은 다음의 영향을 받습니다. 번호자동 들여쓰기 편집 옵션; 다음
명령 이름 '!' 원인이 될 것이다 자동 들여쓰기 전환할 편집 옵션 설정
이 명령의 지속 시간만.

Current : 마지막 입력 라인으로 설정합니다. 라인이 입력되지 않은 경우 이전 라인으로 설정됩니다.
첫 번째 주소 또는 이전 행이 없는 경우 편집 버퍼의 첫 번째 행
첫 번째 주소, 또는 편집 버퍼가 비어 있으면 XNUMX으로 설정됩니다.

Current 칼럼: 비로 설정 .

변화 명부 담당
개요:
chd[ir][!][예배 규칙서]
cd[!][예배 규칙서]

현재 작업 디렉토리를 다음으로 변경 예배 규칙서.

없는 경우 예배 규칙서 인수가 지정되고 환경 변수가 비로 설정되었습니다.
null 및 비어 있지 않은 값, 예배 규칙서 기본값은
환경 변수. 만약 환경 변수가 비어 있거나 정의되지 않은 경우
기본값 예배 규칙서 구현에 의해 정의됩니다.

없는 경우 '!' 명령 이름에 추가되고 이후 편집 버퍼가 수정되었습니다.
마지막 완전한 쓰기이며 현재 경로 이름이 다음으로 시작하지 않습니다. '/', 그럴 것이다
오류.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.


개요:
[2주소] co[py] 1주소 [플래그]
[2주소] t 1주소 [플래그]

지정된 대상 줄 뒤에 지정된 줄을 복사합니다. 라인 XNUMX은 다음을 지정합니다.
해당 행은 편집 버퍼의 시작 부분에 배치됩니다.

Current : 복사된 마지막 줄로 설정합니다.

Current 칼럼: 비로 설정 .

.
개요:
[2주소] d[Elete][버퍼][계산][플래그]

지정된 라인을 버퍼(기본값은 명명되지 않은 버퍼)로 삭제합니다.
라인 모드 버퍼가 됩니다.

플래그는 명령 이름 바로 뒤에 올 수 있습니다. 보다 명령 라인 파싱 in ex.

Current : 삭제된 라인의 다음 라인 또는 편집의 마지막 라인으로 설정
해당 라인이 편집 버퍼의 끝을 지나면 버퍼링되고, 편집 버퍼가 다음이면 XNUMX이 됩니다.
빈.

Current 칼럼: 비로 설정 .

편집
개요:
e[말했다][!][+명령][파일]
ex[!][+명령][파일]

없는 경우 '!' 명령 이름에 추가되고 이후 편집 버퍼가 수정되었습니다.
마지막 전체 쓰기는 오류가 됩니다.

If 파일 지정되면 편집 버퍼의 현재 내용을 현재 내용으로 바꿉니다.
내용 파일, 현재 경로 이름을 다음으로 설정합니다. 파일. 면 파일 지정되지 않았습니다. 교체하십시오.
편집 버퍼의 현재 내용과 이름이 지정된 파일의 현재 내용
현재 경로명. 어떤 이유로든 파일의 현재 내용에 접근할 수 없는 경우,
편집 버퍼는 비어 있어야 합니다.

XNUMXD덴탈의 +명령 옵션은 -구분된; 내의 문자 +명령
앞에 다음을 붙여서 탈출하세요. 성격. 그만큼 +명령 한다
으로 해석됨 ex 편집 버퍼의 내용이 변경된 직후 명령
교체되었으며 현재 행과 열이 설정되었습니다.

편집 버퍼가 비어 있는 경우:

Current : 0으로 설정합니다.

Current 칼럼: 1으로 설정합니다.

그렇지 않은 경우, 실행 중에 실행되면 ex 명령 모드 또는 +명령 인수가 지정되었습니다:

Current : 편집 버퍼의 마지막 라인으로 설정됩니다.

Current 칼럼: 비로 설정 .

그렇지 않으면 파일 생략되거나 현재 경로 이름이 됩니다.

Current : 편집 버퍼의 첫 번째 라인으로 설정합니다.

Current 칼럼: 비로 설정 .

그렇지 않으면 파일 마지막으로 편집한 파일과 동일하면 행과 열이 설정됩니다.
다음과 같이; 파일이 이전에 편집된 경우 행과 열은 다음과 같이 설정될 수 있습니다.

Current : 해당 파일이 마지막으로 편집되었을 때 유지된 마지막 값으로 설정됩니다. 이 값이
새 편집 버퍼의 유효한 라인이 아니며 편집 버퍼의 첫 번째 라인으로 설정됩니다.

Current 칼럼: 현재 줄이 파일이 마지막일 때 유지된 마지막 값으로 설정된 경우
편집됨, 파일이 마지막으로 편집되었을 때 유지된 마지막 값으로 설정됩니다. 그렇지 않은 경우 또는
마지막 값은 새 편집 버퍼의 유효한 열이 아닙니다. .

그렇지 않으면:

Current : 편집 버퍼의 첫 번째 라인으로 설정합니다.

Current 칼럼: 비로 설정 .

입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
개요:
f[에스][파일]

경우 파일 인수가 지정되면 대체 경로 이름은 현재 경로로 설정됩니다.
경로 이름, 현재 경로 이름은 다음으로 설정됩니다. 파일.

정보 메시지를 작성합니다. 파일에 현재 경로 이름이 있으면 포함됩니다.
이 메시지에서; 그렇지 않으면 메시지는 현재 경로 이름이 없음을 나타냅니다.
편집 버퍼에 라인이 포함된 경우 현재 라인 번호와
편집 버퍼가 이 메시지에 포함됩니다. 그렇지 않으면 메시지는 다음을 나타냅니다.
편집 버퍼가 비어 있습니다. 마지막 완료 이후 편집 버퍼가 수정된 경우
쓰세요, 이 사실이 이 메시지에 포함될 것입니다. 만약 읽기 전용 편집 옵션이 설정되어 있습니다.
이 사실은 이 메시지에 포함됩니다. 메시지에는 지정되지 않은 다른 내용이 포함될 수 있습니다.
정보.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

글로벌
개요:
[2주소] g[로발] /무늬/ [명령]
[2주소] V /무늬/ [명령]

선택적 '!' 이후의 문자 글로벌 명령은 실행과 동일해야합니다 v
명령.

If 무늬 비어 있습니다(예: "//") 또는 지정되지 않은 경우 마지막으로 사용된 정규식
편집기 명령에서 다음으로 사용됩니다. 무늬. 그만큼 무늬 로 구분할 수 있습니다.
문자(시놉시스에 표시됨)뿐만 아니라 영숫자가 아닌 문자 또는
이것 말고도 , , , 또는 큰따옴표.

행을 지정하지 않으면 해당 행은 기본적으로 전체 파일로 설정됩니다.

XNUMXD덴탈의 글로벌v 명령은 논리적으로 XNUMX단계 작업입니다. 먼저, 안에 있는 줄을 표시하세요.
종료를 제외한 행이 지정된 행 성냥
(글로벌) 또는 일치하지 않음(v or 글로벌!) 지정된 패턴. 둘째, ex
에 의해 주어진 명령 명령, 현재 줄('.')를 표시된 각 줄에 설정합니다. 만약
이 과정에서 오류가 발생하거나 편집 버퍼의 내용이 교체됩니다(예:
예를 들어, ex 편집 : 명령) 오류 메시지가 기록되고 더 이상 명령이 실행되지 않습니다.
이 명령을 실행한 결과가 처리됩니다.

배수 ex 다음을 사용하여 한 줄에 여러 명령을 입력하여 명령을 지정할 수 있습니다.
ㅏ 각각을 이스케이프 처리하여 한 줄에 하나씩 구분합니다. 와
.

명령이 지정되지 않은 경우:

1. 만약에 ex 명령 모드에서는 다음과 같습니다. 인쇄 명령이 지정되었습니다.

2. 그렇지 않으면 어떤 명령도 실행되지 않습니다.

다음 추가, 이전 단계로 돌아가기삽입하다 명령의 일부로 입력 텍스트가 포함되어야 합니다.
명령 및 종료 명령이 목록을 끝내면 생략할 수 있습니다.
명령. NS 열 수시각 명령은 다음 명령 중 하나로 지정될 수 있습니다.
표시된 각 줄은 편집기가 공개 모드 또는 시각적 모드로 들어가도록 해야 합니다. 열려 있거나
시각적 모드는 다음을 사용하여 종료됩니다. vi Q 명령을 실행하면 현재 줄이 다음 줄로 설정됩니다.
표시된 라인 목록이 표시될 때까지 개방형 또는 시각적 모드로 다시 들어갑니다.
지쳤다.

XNUMXD덴탈의 글로벌, v취소 명령은 다음에서 사용할 수 없습니다. 명령. 표시된 줄은 삭제될 수 있습니다.
파일에서 표시된 줄보다 먼저 나타나는 줄에 대해 실행되는 명령에 의해 실행됩니다. ~ 안에
이 경우 삭제된 행에 대해서는 명령이 실행되지 않습니다.

기억된 검색 방향이 설정되지 않은 경우, 글로벌v 명령은 다음과 같이 설정해야 합니다.
앞으로.

XNUMXD덴탈의 자동 인쇄자동 들여쓰기 편집 옵션은 다음 기간 동안 금지됩니다. g or
v 명령.

Current : 실행된 명령이 없으면 마지막으로 표시된 줄로 설정합니다. 그렇지 않으면 다음과 같이
실행에 대해 지정된 ex 명령.

Current 칼럼: 명령이 실행되지 않으면 non-으로 설정합니다. ; 그렇지 않으면 지정된 대로
개인을 위해 ex 명령.

끼워 넣다
개요:
[1주소] i[삽입][!]

엔터 버튼 ex 텍스트 입력 모드; 입력 텍스트는 지정된 줄 앞에 배치됩니다. 만약
줄이 1 또는 XNUMX이면 텍스트는 편집 버퍼의 시작 부분에 배치됩니다.

이 명령은 다음의 영향을 받습니다. 번호자동 들여쓰기 편집 옵션; 다음
명령 이름 '!' 원인이 될 것이다 자동 들여쓰기 전환할 편집 옵션 설정
이 명령의 지속 시간만.

Current : 마지막 입력 라인으로 설정합니다. 라인이 입력되지 않은 경우 이전 라인으로 설정됩니다.
지정된 라인 또는 라인이 없는 경우 편집 버퍼의 첫 번째 라인
지정된 줄 앞에 있거나 편집 버퍼가 비어 있으면 XNUMX입니다.

Current 칼럼: 비로 설정 .

가입하기
개요:
[2주소] j[오인][!][계산][플래그]

If 계산 지정됨 :

주소가 지정되지 않은 경우, 어울리다 명령은 다음과 같이 동작합니다 2주소 ~했다.
현재 라인과 현재 라인 플러스 계산 (.,. + 계산).

하나의 주소가 지정된 경우 어울리다 명령은 다음과 같이 동작합니다 2주소 ~했다.
지정된 주소와 지정된 주소 더하기 계산 (요지,요지 + 계산).

두 개의 주소가 지정된 경우 어울리다 명령은 추가 명령처럼 작동합니다.
주소, 마지막 주소에 더하기 계산 -1 (주소1,주소2,주소2 + 계산 -1),
지정되었습니다.

이로 인해 편집의 마지막 줄보다 두 번째 주소가 더 커지는 경우
버퍼의 경우 편집 버퍼의 마지막 라인과 동일하게 수정되어야 합니다.

없는 경우 계산 지정됨 :

주소가 지정되지 않은 경우, 어울리다 명령은 다음과 같이 동작합니다 2주소 ~했다.
현재 줄과 다음 줄(.,. +1).

하나의 주소가 지정된 경우 어울리다 명령은 다음과 같이 동작합니다 2주소 ~했다.
지정된 주소와 다음 줄(요지,요지 + 1).

지정된 줄의 텍스트를 단일 줄로 결합합니다.
지정된 라인.

경우 '!' 명령 이름에 문자가 추가됩니다. 어울리다 없을 것이다
현재 로케일과 관계없이 모든 행 수정.

그렇지 않으면 POSIX 로케일에서 현재 줄을 지정된 줄 중 첫 번째 줄로 설정합니다.
그런 다음 각 후속 라인에 대해 다음을 수행하십시오.

1. 선도를 버리세요 결합할 줄의 문자입니다.

2. 이제 결합할 줄이 비어 있으면 삭제하고 3~5단계를 건너뜁니다.

3. 현재 줄이 다음으로 끝나는 경우 , 또는 결합할 줄의 첫 번째 문자
하는 ')' 문자를 추가로 수정하지 않고 줄을 연결합니다.

4. 현재 줄의 마지막 문자가 '.', 두 줄로 연결
그 사이의 문자.

5. 그렇지 않으면 단일 라인으로 라인을 결합하십시오. 그들 사이에.

Current : 지정된 첫 번째 줄로 설정됩니다.

Current 칼럼: 비로 설정 .

명부
개요:
[2주소] l[이다][계산][플래그]

이 명령은 ex 명령:

[2주소] p[찢다][계산] l[플래그]

만나다 인쇄.

지도
개요:
지도[!][ㄹㅇ rhs]

If ㄹㅇrhs 지정되지 않았습니다:

1. 만약 '!' 지정되면 현재 텍스트 입력 모드 맵 목록을 작성합니다.

2. 그렇지 않으면 현재 명령 모드 맵 목록을 작성합니다.

3. 더 이상 아무것도 하지 마십시오.

구현 시 허용되는 문자 집합이 제한될 수 있습니다. ㄹㅇ or rhs제외하고
인쇄 가능한 문자 및 문자는 제한되지 않습니다. 추가의
제한 사항은 구현에 따라 정의되어야 합니다. 둘다 ㄹㅇrhs, 모든 문자가 가능합니다.
로 탈출했다 ‐V, 이 경우 문자를 구분하는 데 사용해서는 안 됩니다. ㄹㅇ
rhs, 그리고 탈출 ‐V는 폐기되어야 합니다.

캐릭터의 경우 '!' 에 첨부된다 지도 명령 이름, 매핑이 유효해야 합니다.
개방형 또는 시각적 텍스트 입력 모드 중 열 수 or 시각 명령 모드. 이를 통해
ㄹㅇ 서로 다른 두 가지를 가지려고 지도 동시에 정의: 하나는 명령 모드용이고 다른 하나는
텍스트 입력 모드의 경우.

명령 모드 매핑의 경우:

ㄹㅇ 의 일부로 입력됩니다. vi 개방형 또는 시각적 모드의 명령(그러나
명령에 대한 인수의 일부로) 작업은 다음과 같습니다.
일치하는 rhs 입력되어 있었습니다.

명령의 첫 번째 문자 이외의 문자가 다음을 사용하여 이스케이프되는 경우
‐V 문자, 해당 문자는 일치 항목의 일부가 될 수 없습니다. ㄹㅇ.

구현이 지원해야 하는지 여부는 지정되지 않았습니다. 지도 명령 ㄹㅇ
길이가 한 문자 이상인 경우, ㄹㅇ is
인쇄 가능.

If ㄹㅇ 두 개 이상의 문자가 포함되어 있고 첫 번째 문자는 다음과 같습니다. '#', 다음
번호가 매겨진 기능 키에 해당하는 일련의 숫자, 이 경우
기능 키가 입력되면 매핑되어야 합니다. rhs. 숫자 이외의 문자
다음 '#' 문자는 해당 문자로 명명된 기능 키도 나타냅니다.
FBI 증오 범죄 보고서 ㄹㅇ 다음 '#' 그리고 다음에 매핑될 수 있습니다. rhs. 어떻게 될지는 미정
기능 키의 이름이 지정되어 있거나 어떤 기능 키가 지원되는지.

텍스트 입력 모드 매핑의 경우:

ㄹㅇ 공개 또는 시각적 텍스트 입력에 입력된 텍스트의 일부로 입력됩니다.
모드에서 동작은 해당하는 것과 같아야 합니다. rhs 입력되어 있었습니다.

입력 텍스트의 문자가 ‐V 캐릭터, 그
캐릭터는 일치 항목의 일부가 될 수 없습니다. ㄹㅇ.

여부는 미정 ㄹㅇ 이후에 입력된 텍스트 지도 or 지도 해제 명령
로 대체됩니다 rhs 화면 표시를 위한 텍스트 관계없이
디스플레이가 해당하는 것처럼 나타나는지 여부 rhs 텍스트가 입력되었고,
명령의 효과는 다음과 같습니다. ㄹㅇ 텍스트가 입력되었습니다.

일부만 해당된다면 ㄹㅇ 입력되면 편집자가 기다리는 시간은 지정되지 않습니다.
이미 입력된 문자를 다음과 같이 처리하기 전에 추가로 일치하는 문자를 사용할 수도 있습니다.
일치하지 않음 ㄹㅇ.

XNUMXD덴탈의 rhs 별도로 지정하지 않는 한 문자 자체는 다시 매핑될 수 있습니다.
전에, 매핑 편집 옵션. 단, ㄹㅇ 접두사 문자로 발생
rhs, 해당 문자는 다시 매핑되지 않습니다.

블록 모드 터미널에서는 매핑이 즉시 발생할 필요가 없습니다.
터미널이 시스템에 문자 그룹을 전송한 후).
즉시 발생한 것과 동일한 결과입니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

표시
개요:
[1주소] ma[rk] 문자
[1주소] k 문자

구현은 다음을 지원해야 합니다. 문자 POSIX의 단일 소문자 값
로케일, 역따옴표 및 작은따옴표 문자; 다른 캐릭터의 지원은
구현 정의.

실행하는 경우 vi m 명령, 지정된 표시를 현재 줄과 1 기반으로 설정합니다.
현재 열이 참조하는 번호가 매겨진 문자(있는 경우). 그렇지 않으면 열 위치 1입니다.

그렇지 않으면 지정된 라인에 지정된 마크를 설정하고 1부터 시작하는 번호를 먼저 지정합니다.
비 비 해당 줄에 있는 경우; 그렇지 않으면 마지막 비- 에서
라인(있는 경우); 그렇지 않으면 열 위치 1입니다.

마크는 마크가 재설정되거나 라인이 해제될 때까지 라인과 연관된 상태로 유지되어야 합니다.
삭제되었습니다. 삭제된 라인이 후속 라인에 의해 복원되는 경우 취소 명령, 이전의 모든 표시
재설정되지 않은 회선과 관련된 항목도 복원됩니다. 모든 사용
편집 버퍼의 현재 라인과 연관되지 않은 표시는 오류입니다.

마크 `' 이전에 설명한 대로 다음 항목 바로 앞에 설정되어야 합니다.
편집기에서 이벤트가 발생합니다.

1. 사용 '$'ex 주소

2. 양의 십진수를 사용하는 방법 ex 주소

3. 검색 명령을 검색 명령으로 사용 ex 주소

4. 마크 참조를 ex 주소

5. 다음 개방형 및 시각적 모드 명령 사용: ‐], %, (, ), [, ], {,
}

6. 다음 개방 및 시각적 모드 명령의 사용: ', G, H, L, M, z 경우
현재 줄은 명령의 결과로 변경됩니다

7. 개방형 및 시각적 모드 명령의 사용: /, ?, N, `, n 현재 줄 또는
명령의 결과로 열이 변경됩니다.

8. 사용 ex 모드 명령: z, 취소, 글로벌, v

규칙 1., 2., 3. 및 4.의 경우 `' 다음과 같은 경우에는 표시가 설정되지 않습니다. ex 명령은
규칙 6.a에 지정된 대로 구문 분석됩니다. ~에 명령 라인 파싱 in ex.

규칙 5., 6. 및 7.의 경우 `' 명령이 다음과 같이 사용되는 경우 표시가 설정되지 않습니다.
개방형 및 시각적 모드의 모션 명령.

규칙 1., 2., 3., 4., 5., 6., 7. 및 8.의 경우 `' 다음과 같은 경우에는 표시가 설정되지 않습니다.
명령이 실패합니다.

XNUMXD덴탈의 `' 마크는 편집 내용이 바뀔 때마다 앞에서 설명한 대로 설정되어야 합니다.
버퍼가 열려 있거나 시각적인 경우 교체됩니다(초기 버퍼 편집 포함).
모드 또는 해당 모드에 있는 경우 ex 모드 및 편집 버퍼는 명령이나 이동 전에 비어 있지 않습니다.
(에 의해 지정된 명령이나 움직임을 포함 -c or -t 옵션 또는 +명령
인수)는 편집 버퍼에서 실행됩니다. 개방형 또는 시각적 모드인 경우 표시는 다음과 같습니다.
실행하는 것처럼 설정 vi m 명령; 그렇지 않으면 마치 ex 명령.

에서 변경할 때 ex 개방형 모드 또는 시각적 모드인 경우 `' 마크는 아직 없습니다
설정 `' 마크는 앞서 설명한 대로 설정되어야 합니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

무브
개요:
[2주소] m[ove] 1주소 [플래그]

지정된 대상 행 뒤로 지정된 행을 이동합니다. XNUMX호선의 목적지
편집 버퍼의 시작 부분에 행이 배치되도록 지정합니다. 그것은 될 것이다
대상 줄이 이동할 줄 범위 내에 있으면 오류가 발생합니다.

Current : 이동된 라인 중 마지막 라인으로 설정됩니다.

Current 칼럼: 비로 설정 .

다음 보기
개요:
n[내선][!][+명령][파일 ...]

없는 경우 '!' 명령 이름에 추가되고 이후 편집 버퍼가 수정되었습니다.
마지막 전체 쓰기는 파일이 다음과 같이 성공적으로 기록되지 않으면 오류가 발생합니다.
에 의해 지정된 자동 쓰기 옵션을 선택합니다.

하나 이상의 파일이 지정된 경우:

1. 인수 목록을 지정된 파일 이름으로 설정합니다.

2. 현재 인수 목록 참조를 인수 목록의 첫 번째 항목으로 설정합니다.

3. 현재 경로 이름을 지정된 첫 번째 파일 이름으로 설정합니다.

그렇지 않으면:

1. 인수 목록 이후에 더 이상 파일 이름이 없으면 오류가 발생합니다.
현재 참조되는 파일 이름입니다.

2. 현재 경로 이름과 현재 인수 목록 참조를 다음 파일 이름으로 설정합니다.
인수 목록에서 현재 참조되는 파일 이름입니다.

편집 버퍼의 내용을 현재 이름의 파일 내용으로 바꿉니다.
경로명. 어떤 이유로든 파일 내용에 접근할 수 없는 경우 편집 버퍼
비어있을 것입니다.

이 명령은 다음의 영향을 받습니다. 자동 쓰기글쓰기 편집 옵션.

XNUMXD덴탈의 +명령 옵션은 -구분된; 문자는 다음으로 이스케이프할 수 있습니다.
앞에는 성격. 그만큼 +명령 다음과 같이 해석된다. ex
편집 버퍼의 내용이 교체된 직후에 명령을 실행하고
현재 줄과 열이 설정되었습니다.

Current : 설명된 대로 설정합니다. 편집 명령.

Current 칼럼: 설명된 대로 설정합니다. 편집 명령.

번호
개요:
[2주소] nu[엠버][계산][플래그]
[2주소] #[계산][플래그]

이 명령은 다음과 동일합니다. ex 명령:

[2주소] p[찢다][계산] #[플래그]

만나다 인쇄.

엽니다
개요:
[1주소] o[] /무늬/ [플래그]

이 명령은 블록 모드 터미널이나 충분하지 않은 터미널에서는 지원될 필요가 없습니다.
능력. 표준 입력, 표준 출력 또는 표준 오류가 터미널이 아닌 경우
장치에서는 결과가 지정되지 않습니다.

오픈 모드로 들어갑니다.

후행 구분 기호는 다음에서 생략할 수 있습니다. 무늬 명령줄 끝에. 만약에
무늬 비어 있습니다(예: "//") 또는 지정되지 않은 경우,
편집기는 패턴으로 사용됩니다. 패턴은 다음과 같이 구분할 수 있습니다.
문자(시놉시스에 표시됨), 영숫자 또는 비숫자 이것 말고도
, , , 또는 큰따옴표.

Current : 지정된 라인으로 설정합니다.

Current 칼럼: 비로 설정 .

보존
개요:
사전[서브]

나중에 복구할 수 있는 형식으로 편집 버퍼를 저장합니다. -r 옵션 또는
를 사용하여 ex 복구 명령. 파일이 보존된 후 메일 메시지가 전송됩니다.
사용자에게 전송됩니다. 이 메시지는 다음을 호출하여 읽을 수 있습니다. mailx 공익사업. 그만큼
메시지에는 파일 이름, 보존 시간 및 ex 명령
파일을 복구하는 데 사용할 수 있습니다. 추가 정보가 메일에 포함될 수 있습니다.
메시지.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

인쇄
개요:
[2주소] p[찢다][계산][플래그]

주소가 지정된 행을 작성하십시오. 다음의 열 수가
표시 내용이 단일 문자를 쓰는 데 필요한 열 수보다 적습니다.
라인이 쓰여지고 있습니다.

인쇄할 수 없는 문자를 제외하고 , 구현 정의로 작성되어야 합니다.
다중 문자 시퀀스.

경우 # 플래그가 지정되었거나 번호 편집 옵션이 설정되면 각 줄 앞에 와야 합니다.
다음 형식의 줄 번호로:

"%6d ", < 번호>

경우 l 플래그가 지정되었거나 명부 편집 옵션이 설정되었습니다:

1. POSIX.1‐2008의 기본 정의 볼륨에 나열된 문자, 작업대 5-1,
탈출 시퀀스 연결된 행위 해당 탈출구로 작성됩니다
순서.

2. POSIX.1‐2008의 기본 정의 볼륨에 없는 인쇄할 수 없는 문자, 작업대
5-1, 탈출 시퀀스 연결된 행위 세 자리 XNUMX진수로 작성해야 합니다.
번호(앞에 ) 문자의 각 바이트에 대해(가장 중요한
바이트 먼저).

3. 각 라인의 끝은 다음과 같이 표시되어야 합니다. '$', 그리고 리터럴 '$' 내의 문자
줄은 선행 문자로 작성되어야 합니다. .

긴 줄은 접어야 합니다. 접히는 길이는 지정되지 않았지만
터미널의 열 수를 고려하여 출력 터미널에 적합해야 합니다.

선이 접혀 있으면 l 플래그가 지정되지 않았으며 명부 편집 옵션이 설정되지 않았습니다.
접는 위치의 다중 열 문자가 분리되는지 여부는 지정되지 않습니다.
그것은 폐기되어서는 안 된다.

Current : 마지막으로 쓴 줄로 설정합니다.

Current 칼럼: 현재 행이 변경되지 않으면 변경되지 않습니다. 그렇지 않으면 non-으로 설정합니다. .

넣어
개요:
[1주소] pu[t][버퍼]

지정된 버퍼(기본적으로 이름이 지정되지 않은 버퍼)의 텍스트를 지정된 버퍼에 추가합니다.
선; XNUMX행은 텍스트가 편집 시작 부분에 배치되도록 지정합니다.
완충기. 버퍼에 있는 라인의 각 부분은 편집 버퍼에서 새로운 라인이 됩니다.
버퍼 모드에 관계없이.

Current : 편집 버퍼에 입력된 마지막 라인으로 설정됩니다.

Current 칼럼: 비로 설정 .

종료
개요:
q[uit][!]

없는 경우 '!' 명령 이름에 추가됩니다.

1. 마지막 완전한 쓰기 이후 편집 버퍼가 수정된 경우
오류.

2. 현재 참조되는 파일 이름 뒤에 인수 목록에 파일 이름이 있는 경우,
마지막 명령은 종료, wq, XITZZ (참조 출구) 명령은 다음과 같습니다.
오류.

그렇지 않으면 편집 세션을 종료하십시오.

읽기
개요:
[1주소] r[ead][!][파일]

If '!' 비는 처음이 아니다 명령 이름을 따르려면 지정된 복사본
파일은 지정된 라인 뒤에 편집 버퍼에 추가됩니다. 라인 XNUMX은 지정합니다
복사본은 편집 버퍼의 시작 부분에 배치되어야 합니다. 줄 수와
읽은 바이트가 기록됩니다. 그렇지 않은 경우 파일 이름이 지정되면 현재 경로 이름은 다음과 같습니다.
기본. 현재 경로명이 없으면 파일 현재 경로명이 됩니다. 만약에
현재 경로명이 없거나 파일 피연산자이면 오류가 됩니다. 지정 파일
일반 유형이 아닌 경우 결과가 지정되지 않습니다.

그렇지 않으면 파일 앞에 '!', 다음 줄의 나머지 부분 '!' 가지고 있을 것이다 '%',
'#''!' 설명된 대로 확장된 문자 명령 라인 파싱 in ex.

XNUMXD덴탈의 ex 그런 다음 유틸리티는 쉘 편집에 의해 명명된 프로그램에 두 개의 인수를 전달합니다.
옵션; 첫 번째는 -c 두 번째는 확장된 주장이 될 것이다. 읽기
명령을 단일 인수로 사용합니다. 프로그램의 표준 입력은 다음과 같이 설정되어야 합니다.
표준 입력 ex 프로그램이 호출되었을 때. 표준오차와 표준
프로그램의 출력은 지정된 라인 뒤에 편집 버퍼에 추가됩니다.

복사된 파일이나 프로그램 출력의 각 줄(다음으로 구분됨) 문자 또는
파일의 끝 또는 바로 앞에 문자가 오지 않는 경우 출력 ), 한다
편집 버퍼에 별도의 줄이 있습니다. 모든 발생 그리고
출력의 쌍은 단일로 처리됩니다. 문자.

의 특별한 의미 '!' 다음 읽기 이스케이프를 통해 명령을 재정의할 수 있습니다.
그것으로 성격.

Current : 편집 버퍼에 라인이 추가되지 않으면 변경되지 않습니다. 그렇지 않으면 열려 있는 경우
또는 시각적 모드에서는 편집 버퍼에 입력된 첫 번째 줄로 설정됩니다. 그렇지 않으면
편집 버퍼에 마지막 줄이 입력되었습니다.

Current 칼럼: 비로 설정 .

복구
개요:
기록[위에][!] 파일

없는 경우 '!' 명령 이름에 추가되고 이후 편집 버퍼가 수정되었습니다.
마지막 전체 쓰기는 오류가 됩니다.

없는 경우 파일 피연산자가 지정된 경우 현재 경로 이름이 사용됩니다. 없는 경우
현재 경로 이름 또는 파일 피연산자이면 오류가 됩니다.

이전에 저장된 복구 정보가 없는 경우 파일Walk Through California 프로그램, 복구 명령은 다음과 같다
와 동일하게 행동하다 편집 명령 및 이에 대한 정보 메시지는 다음과 같습니다.
쓰다.

그렇지 않으면 현재 경로 이름을 다음으로 설정합니다. 파일, 편집 내용의 현재 내용을 바꿉니다.
복구된 콘텐츠로 버퍼링 파일. 파일의 인스턴스가 여러 개인 경우
복구하려면 가장 최근에 저장된 것을 복구해야 하며, 정보
복구할 수 있는 이전 버전의 파일이 있다는 메시지가 표시됩니다.
쓴. 편집기는 편집 버퍼의 내용이 이미 편집된 것처럼 동작합니다.
수정되었습니다.

Current 파일: 설명된 대로 설정합니다. 편집 명령.

Current 칼럼: 설명된 대로 설정합니다. 편집 명령.

되감기
개요:
다시[산업][!]

없는 경우 '!' 명령 이름에 추가되고 이후 편집 버퍼가 수정되었습니다.
마지막 전체 쓰기는 파일이 다음과 같이 성공적으로 기록되지 않으면 오류가 발생합니다.
에 의해 지정된 자동 쓰기 옵션을 선택합니다.

인수 목록이 비어 있으면 오류가 발생합니다.

현재 인수 목록 참조와 현재 경로 이름은 첫 번째로 설정됩니다.
인수 목록의 파일 이름입니다.

편집 버퍼의 내용을 현재 이름의 파일 내용으로 바꿉니다.
경로명. 어떤 이유로든 파일 내용에 접근할 수 없는 경우 편집 버퍼
비어있을 것입니다.

이 명령은 다음의 영향을 받습니다. 자동 쓰기글쓰기 편집 옵션.

Current : 설명된 대로 설정합니다. 편집 명령.

Current 칼럼: 설명된 대로 설정합니다. 편집 명령.

세트
개요:
그[t][선택권[=[가치]] ...][아니선택권 ...][선택권? ...][모든]

인수가 지정되지 않은 경우에는 다음 값을 씁니다. 기간 편집 옵션 및 해당 옵션
해당 값이 기본 설정에서 변경되었습니다. 논쟁이 있을 때 모든 is
지정하면 모든 옵션 값을 씁니다.

옵션 이름 뒤에 문자 제공 '?' 그 현재 가치가 발생합니다
옵션을 쓸 수 있습니다. 그만큼 '?' 옵션 이름과 XNUMX개 이상 분리될 수 있습니다.
문자. 그만큼 '?' 부울 값 옵션에만 필요합니다. 부울
옵션은 다음 형식으로 값을 지정할 수 있습니다. 세트 선택권 켜거나 세트 아니선택권 돌리다
꺼져; 문자열 및 숫자 옵션은 형식으로 할당할 수 있습니다. 세트 선택권=가치. 어떤
문자열의 문자는 각 문자 앞에 오는 방식으로 있는 그대로 포함될 수 있습니다. 와
탈출 . 단일 set 명령으로 둘 이상의 옵션을 설정하거나 나열할 수 있습니다.
여러 인수를 지정하여 각 인수를 다음 인수와 하나 이상으로 구분합니다.
자.

만나다 편집 옵션 in ex 특정 옵션에 대한 자세한 내용은

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

껍질
개요:
쉿[엘자]

이름이 지정된 프로그램을 호출합니다. 껍질 단일 인수를 사용한 편집 옵션 -나 (인터렉티브
방법). 프로그램이 종료되면 편집이 재개됩니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

출처
개요:
그래서[urcan에] 파일

읽기 및 실행 ex 명령 파일. 빈 줄인 파일의 줄은 다음과 같습니다.
무시되었습니다.

Current : 개인별로 정해진 대로 ex 명령.

Current 칼럼: 개인별로 정해진 대로 ex 명령.

대용품
개요:
[2주소] s[대신하다][/무늬/답장/[옵션][계산][플래그]]
[2주소] &[옵션][계산][플래그]]
[2주소] ~[옵션][계산][플래그]]

패턴의 첫 번째 인스턴스 바꾸기 무늬 문자열로 답장 지정된 각각에
선. (보다 정규병 in ex바꿔 놓음 문자열 in ex.) 알파벳이 아닌 모든 문자,
비 이외의 구분 기호 , '|', , 또는 큰따옴표를 사용할 수 있습니다.
대신 '/'. 문자를 사용하여 구분 기호를 이스케이프할 수 있습니다.
문자 및 기타 특수 문자.

후행 구분 기호는 다음에서 생략할 수 있습니다. 무늬 또는에서 답장 명령이 끝나면
선. 둘 다라면 무늬답장 지정되지 않았거나 비어 있습니다(예: "//")
지난 s 명령을 반복해야 합니다. 을 텐데 무늬 지정되지 않았거나 비어 있습니다. 마지막
패턴은 에디터에서 사용하는 정규표현식을 사용합니다. 을 텐데 답장 하지 않습니다
지정되거나 비어 있으면 패턴은 아무것도 대체되지 않습니다. 만약 전체
교체 패턴은 '%', 마지막 교체 패턴 s 명령을 사용해야 합니다.

입력 ~에 답장 (이스케이프가 필요합니다. ~에 ex 모드
그리고 탈출 ‐V 개방형 또는 vi 모드)는 그 지점에서 선을 분할합니다.
편집 버퍼에 새 줄을 만듭니다. 그만큼 폐기됩니다.

If 옵션 편지가 포함되어 있습니다 'NS' (글로벌), 패턴의 겹치지 않는 모든 인스턴스
라인에서 교체됩니다.

If 옵션 편지가 포함되어 있습니다 '씨' (확인하다), 각 교체 전에 라인은 다음과 같습니다.
쓰다; 쓰여진 줄은 이전의 모든 대체를 반영해야 합니다. 다음에
선, 문자는 다음 줄의 문자 아래에 기록되어야 합니다.
이전 무늬 교체할 예정이며, '^' 문자 아래에 쓰여진 문자
포함 된 무늬 교체됩니다. 그만큼 ex 그런 다음 유틸리티는 다음의 응답을 기다려야 합니다.
사용자. 긍정적인 응답은 대체가 수행되도록 해야 하며, 다른 응답은 대체가 수행되도록 해야 합니다.
입력하면 대체되지 않습니다. 긍정적인 응답은 한 줄로 구성됩니다.
시작 부분에 긍정 응답(현재 로케일에 정의된 대로)이 포함됩니다.
선. 이 줄은 다음과 같은 방식으로 편집됩니다. ex 명령 행.

중단된 경우(비동기 이벤트 섹션 참조) 모든 수정 사항은
사용자는 인터럽트 이후 편집 버퍼에 보존됩니다.

기억된 검색 방향이 설정되지 않은 경우, s 명령은 그것을 전달하도록 설정합니다.

두 번째 시놉시스에서는 & 명령은 이전 대체를 반복해야 합니다. &
명령은 다음으로 대체되었습니다.

s/무늬/답장/

어디에 무늬답장 이전에 지정된 대로입니다. s, &~ 명령.

세 번째 시놉시스에서는 ~ 명령은 이전 대체를 반복해야 합니다. '~'
다음으로 대체되었습니다:

s/무늬/답장/

어디에 무늬 편집자에게 지정된 마지막 정규식이어야 하며, 답장 하여야 한다
이전 대체에서 나온 것이어야 함(포함 &~) 명령.

이 명령은 다음의 영향을 받습니다. LC_메시지 환경 변수.

Current : 대체가 발생한 마지막 줄로 설정하거나, 없으면 변경되지 않습니다.
대체가 발생했습니다.

Current 칼럼: 비로 설정 .

중지하다
개요:
수[지출][!]
st[op][!]

제어가 호출 프로세스로 돌아가도록 허용합니다. ex 마치 그것이 있었던 것처럼 스스로를 정지할 것이다
SIGTSTP 신호를 받았습니다. 일시 중지는 작업 제어가 활성화된 경우에만 발생합니다.
호출하는 쉘(설명 참조) 세트 -m).

이 명령은 다음의 영향을 받습니다. 자동 쓰기글쓰기 편집 옵션.

현재 서스펜션 캐릭터(참조 스티)는 매달다 명령.

꼬리표
개요:
고마워[g][!] 태그스트링

태그 파일의 형식이 c태그
유틸리티(참조 c태그) 설명.

XNUMXD덴탈의 태그 명령은 다음을 검색해야 합니다. 태그스트링 에서 참조하는 태그 파일에서 태그 편집
옵션에 대한 참조가 나올 때까지 지정된 순서대로 태그스트링 발견되었습니다. 파일
처음부터 끝까지 검색됩니다. 참조가 없으면 오류가 발생합니다.
이에 대한 오류 메시지가 기록됩니다. 참조를 찾을 수 없거나
참조된 파일을 처리하는 중 오류가 발생했습니다. 태그 편집 옵션은
오류가 발생하고 해당 오류가 처음 발생할 때 오류 메시지가 기록됩니다.

그렇지 않고 태그 파일에 패턴이 포함되어 있으면 패턴은 일반 패턴으로 처리됩니다.
편집기에서 사용되는 표현; 예를 들어, s 명령.

경우 태그스트링 현재 경로 이름과 다른 이름을 가진 파일에 있는 경우
현재 경로 이름을 해당 파일 이름으로 바꾸고 편집 버퍼의 내용을 바꿉니다.
해당 파일의 내용으로. 이 경우, 그렇지 않다면 '!' 명령 이름에 추가됩니다.
마지막 완전한 쓰기 이후 편집 버퍼가 수정되었으면 오류가 발생합니다.
파일이 지정된 대로 성공적으로 기록되지 않는 한 자동 쓰기 옵션을 선택합니다.

이 명령은 다음의 영향을 받습니다. 자동 쓰기, 태그, 태그 길이글쓰기 편집
옵션을 제공합니다.

Current : 태그 파일에 줄 번호가 포함된 경우 해당 줄 번호로 설정합니다. 만약
줄 번호가 편집 버퍼의 마지막 줄보다 크면 오류 메시지가 표시됩니다.
작성되고 현재 행은 지정된 대로 설정됩니다. 편집 명령.

태그 파일에 패턴이 포함된 경우,
파일. 일치하는 패턴이 없으면 오류 메시지가 기록되고 현재
행은 지정된 대로 설정되어야 합니다. 편집 명령.

Current 칼럼: 태그 파일에 줄 번호 참조와 해당 줄 번호가 포함된 경우
편집 버퍼의 마지막 줄보다 크지 않거나 태그 파일에
패턴이 발견되었으며 해당 패턴이 발견되었습니다. . 그렇지 않으면 다음에 지정된 대로 설정합니다.
전에, 편집 명령.

축약하지 않음
개요:
우나[bbrev] ㄹㅇ

If ㄹㅇ 현재 약어 목록의 항목이 아닙니다(참조: 줄여 쓰다), 그럴 것이다
오류. 그렇지 않으면 삭제하세요. ㄹㅇ 약어 목록에서.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

취소
개요:
u[NDO]

편집 내용을 수정한 마지막 명령으로 변경한 내용을 되돌립니다.
버퍼를 포함하여 취소. 이를 위해 글로벌, v, 열 수시각 명령 및
버퍼 실행 및 매핑된 문자 확장으로 인한 명령이 고려됩니다.
단일 명령.

이전에 취소할 수 있는 작업이 없는 경우 취소 명령, 그것은 오류가 될 것입니다.

경우 취소 명령은 표시된 줄을 복원하고 표시도 복원됩니다.
행 삭제 후에 재설정되지 않는 한.

Current :

1. 파일에 라인이 추가되거나 변경된 경우, 추가되거나 변경된 첫 번째 라인으로 설정합니다.

2. 삭제된 첫 번째 라인이 존재하는 경우 이전 라인으로 설정합니다.

3. 편집 버퍼가 비어 있지 않으면 1로 설정합니다.

4. XNUMX으로 설정합니다.

Current 칼럼: 비로 설정 .

매핑 해제
개요:
음[ap][!] ㄹㅇ

If '!' 명령 이름에 추가됩니다. ㄹㅇ 텍스트 목록의 항목이 아닙니다.
입력 모드 맵 정의는 오류입니다. 그렇지 않으면 삭제하세요. ㄹㅇ 목록에서
텍스트 입력 모드 맵 정의.

없는 경우 '!' 명령 이름에 추가됩니다. ㄹㅇ 목록에 항목이 없습니다.
명령 모드 맵 정의는 오류입니다. 그렇지 않으면 삭제하세요. ㄹㅇ 목록에서
명령 모드 맵 정의.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

버전
개요:
ve[RSion]

편집기의 버전 정보가 포함된 메시지를 작성합니다. 메시지의 형식
지정되지 않았습니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

시각
개요:
[1주소] vi[수알][유형][계산][플래그]

If ex 현재 공개 또는 시각적 모드에 있습니다. 시각적 명령의 개요 및 동작
와 동일할 것이다 편집 다음에 의해 지정된 명령 편집.

그렇지 않으면 이 명령은 블록 모드 터미널이나 다음이 있는 터미널에서 지원될 필요가 없습니다.
역량이 부족함. 표준 입력, 표준 출력 또는 표준 오류가 아닌 경우
단말 장치에서는 결과가 지정되지 않습니다.

If 계산 의 값이 지정됩니다. 편집 옵션을 다음으로 설정해야 합니다. 계산 (같이
에 설명 ). 만약 '^' 유형 문자도 지정되었습니다. 편집
옵션은 유형 문자에 사용되기 전에 설정되어야 합니다.

시각적 모드로 들어갑니다. 만약에 유형 지정되지 않은 경우 다음과 같습니다. 유형 of '+' 였다
지정된. 그만큼 유형 다음과 같은 영향을 미치게 됩니다:

+ 지정된 줄의 시작 부분을 디스플레이 상단에 배치합니다.

- 지정된 줄의 끝 부분을 디스플레이 하단에 배치합니다.

. 지정된 행의 시작 부분을 디스플레이 중앙에 배치합니다.

^ 지정된 줄이 해당 줄의 값보다 작거나 같은 경우 편집 옵션,
라인을 1로 설정하십시오. 그렇지 않으면 라인의 값만큼 줄입니다. 편집
옵션 빼기 1. 이 줄의 시작 부분을 줄의 맨 아래에 가깝게 배치합니다.
가능한 한 줄을 표시하는 동시에 값을 표시합니다. 편집
옵션 줄 수.

Current : 지정된 라인으로 설정합니다.

Current 칼럼: 비로 설정 .

쓰다
개요:
[2주소] w[의식][!][>>][파일]
[2주소] w[의식][!][파일]
[2주소] wq[!][>>][파일]

행을 지정하지 않으면 해당 행은 기본적으로 전체 파일로 설정됩니다.

명령 wq 는 다음과 같습니다. 쓰다 명령 다음에 종료 명령; 크크!
와 동등하다 쓰다! 다음 종료. 두 경우 모두, 쓰다 명령
실패 종료 시도되어서는 안 됩니다.

명령 이름 뒤에 하나 이상이 오지 않는 경우 문자 또는 파일 하지 않습니다
앞에 '!' 성격, 쓰다 파일로 되어있습니다.

1. 경우 >> 인수가 지정되었고 파일이 이미 존재하는 경우 해당 행은 다음과 같습니다.
내용을 바꾸는 대신 파일에 추가됩니다. 만약 >> 주장은
지정되었으며 파일이 아직 존재하지 않는 경우 쓰기 여부는 지정되지 않습니다.
마치 다음과 같이 진행됩니다. >> 인수가 지정되지 않았거나 쓰기가 실패할 경우.

2. 경우 읽기 전용 편집 옵션이 설정되었습니다(참조: 읽기 전용) 쓰다 실패할 것이다.

3. 만약 파일 지정되었으며 현재 경로 이름이 아니며 파일이 존재합니다. 쓰다
실패할 것이다.

4. 만약 파일 지정되지 않은 경우 현재 경로 이름이 사용됩니다. 전류가 없는 경우
경로 이름, 쓰다 명령이 실패합니다.

5. 현재 경로명이 사용되고 현재 경로명이 변경된 경우 파일
or 읽기 명령이 있고 파일이 존재하는 경우 쓰다 실패할 것이다. 만약 쓰다 is
성공, 후속 쓰다이러한 이유로 실패해서는 안 됩니다(현재
경로명이 다시 변경되었습니다).

6. 전체 편집 버퍼를 쓰고 있지 않고, 쓸 파일이 존재하는 경우,
쓰다 실패할 것이다.

규칙 1., 2., 3. 및 5.의 경우 쓰다 문자를 추가하여 강제로 적용할 수 있습니다. '!'
명령 이름.

규칙 2., 3. 및 5.의 경우 쓰다 설정하여 강제로 설정할 수 있습니다. 글쓰기 편집 옵션.

추가적인 구현 정의 테스트로 인해 쓰다 실패.

편집 버퍼가 비어 있으면 내용이 없는 파일이 작성됩니다.

작성된 라인 수와 바이트 수를 나타내는 정보 메시지가 작성됩니다.

그렇지 않은 경우 명령 뒤에 하나 이상이 오면 문자이고 파일은 다음과 같습니다.
앞에 '!', 다음 줄의 나머지 부분 '!' 가지고 있을 것이다 '%', '#''!'
설명된 대로 확장된 문자 명령 라인 파싱 in ex.

XNUMXD덴탈의 ex 유틸리티는 다음에 의해 명명된 프로그램에 두 개의 인수를 전달해야 합니다. 껍질 편집
옵션; 첫 번째는 -c 두 번째는 확장된 주장이 될 것이다. 쓰다
명령을 단일 인수로 사용합니다. 지정된 행은 표준 입력에 기록됩니다
명령의. 프로그램의 표준 오류와 표준 출력은 다음과 같습니다.
설명된 대로 작성되었습니다. 인쇄 명령. 해당 출력의 마지막 문자가
, ㅏ 출력의 마지막에 기록됩니다.

의 특별한 의미 '!' 다음 쓰다 이스케이프를 통해 명령을 재정의할 수 있습니다.
그것으로 성격.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

쓰다 출구
개요:
[2주소] x[it][!][파일]

마지막 완료 이후 편집 버퍼가 수정되지 않은 경우 쓰다, XIT 한다
에 해당 종료 명령을 내리거나 '!' 명령 이름에 추가됩니다. 그만두다!.

그렇지 않으면, XITwq 명령을 내리거나 '!' 에 첨부된다
명령 이름, 대상 크크!.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

양키
개요:
[2주소] ya[nk][버퍼][계산]

지정된 라인을 지정된 버퍼(기본적으로 이름이 지정되지 않은 버퍼)에 복사합니다.
라인 모드 버퍼가 됩니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

조정
개요:
[1주소] z[!][유형 ...][계산][플래그]

라인이 지정되지 않으면 현재 라인이 기본값이 됩니다. 만약에 유형 다음과 같이 생략된다
음, 현재 라인 값은 먼저 1씩 증가해야 합니다. 현재 라인 값을 증가시키면
라인이 편집 버퍼의 마지막 라인보다 커지게 되면,
오류.

만일 거기에 사이의 문자 유형 인수와 그 이전 z 명령 이름
또는 선택 '!' 문자이면 오류가 됩니다.

If 계산 의 값이 지정됩니다. 편집 옵션을 다음으로 설정해야 합니다. 계산 (같이
에 설명 ). 만약 계산 생략된 경우 기본값은 해당 값의 2배입니다.
스크롤 편집 옵션 또는 ! 지정된 경우 디스플레이의 줄 수에서 1을 뺀 값입니다.

If 유형 생략된 다음 계산 지정된 줄로 시작하는 줄이 작성됩니다.
그렇지 않으면, 계산 지정된 줄로 시작하는 줄 유형 주장은 다음과 같습니다
쓴.

XNUMXD덴탈의 유형 인수는 작성될 줄을 변경해야 합니다. 가능한 값은 유형 ~와 같다
다음과 같습니다 :

− 지정된 라인은 다음 값만큼 감소됩니다.

(((숫자 of ``-'' 문자) x 계산) −1)

계산 결과 1보다 작은 숫자가 나오면 오류가 됩니다. 쓰다
line의 새 값에서 시작하여 편집 버퍼의 라인부터 계산 라인 또는
편집 버퍼의 마지막 줄이 기록되었습니다.

+ 지정된 라인은 다음 값만큼 증가됩니다.

(((숫자 of ``+'' 문자) -1) x 계산) +1

계산 결과 편집의 마지막 줄보다 큰 숫자가 나오는 경우
버퍼, 오류가 발생합니다. 편집 버퍼에서 새 줄부터 시작하여 줄을 씁니다.
라인 값, 까지 계산 행 또는 편집 버퍼의 마지막 행이
쓴.

=,. XNUMX개 이상인 경우 '.' or '=' 지정하면 오류가 됩니다. 다음과 같은
다음과 같은 조치를 취해야 합니다:

1. 만약 계산 XNUMX이면 아무것도 기록되지 않습니다.

2. 가능한 한 많이 쓰세요. N 편집 버퍼에서 현재 줄 앞의 줄
존재하다. 만약에 계산 or '!' 지정되었고, N 한다:

(계산 −1) /2

그렇지 않으면, N 한다:

(계산 -3) /2

If N 3보다 작은 숫자이면 줄을 쓰지 않습니다.

3. 만약 '=' 유형 문자로 지정되었으면 다음으로 구성된 행을 작성하십시오.
디스플레이의 열 수를 40로 나눈 것 중 작은 숫자, 즉 XNUMX '-'
자.

4. 현재 행을 작성합니다.

5. 3단계를 반복합니다.

6. 가능한 한 많이 쓰세요. N 편집 버퍼에 현재 줄 다음 줄이 존재합니다.
N 2단계와 같이 정의됩니다. N 3보다 작은 숫자이면 줄이 없습니다.
쓴. 만약에 계산 3보다 작으면 줄을 쓰지 않습니다.

^ 지정된 줄은 다음 값만큼 감소됩니다.

(((숫자 of ``^'' 문자) + 1) x 계산) -1

계산 결과 1보다 작은 숫자가 나오면 오류가 됩니다. 쓰다
line의 새 값에서 시작하여 편집 버퍼의 라인부터 계산 라인 또는
편집 버퍼의 마지막 줄이 기록되었습니다.

Current : 유형이 다음과 같은 경우를 제외하고 작성된 마지막 줄로 설정됩니다. =, 이 경우 다음으로 설정됩니다.
지정된 라인.

Current 칼럼: 비로 설정 .

탈출
개요:
! 명령
[요지]! 명령

다음 줄의 내용 '!' 가지고 있을 것이다 '%', '#''!' 문자 확장됨
에 설명 된대로 명령 라인 파싱 in ex. 확장으로 인해 해당 줄의 텍스트가 발생하는 경우
변경하려면 다시 표시되어야 하며 앞에는 단일 '!' 문자.

XNUMXD덴탈의 ex 유틸리티는 다음에 의해 명명된 프로그램을 실행해야 합니다. 껍질 편집 옵션. XNUMX번은 지나야지
프로그램에 대한 주장; 첫 번째는 -c, 두 번째는 확장되어야합니다
주장 ! 명령을 단일 인수로 사용합니다.

라인이 지정되지 않은 경우 표준 입력, 표준 출력 및 표준 오류는 다음과 같습니다.
프로그램은 표준입력, 표준출력, 표준에러로 설정되어야 한다. ex
프로그램이 호출되었을 때. 또한 편집 시 경고 메시지가 표시됩니다.
마지막 완전한 쓰기 이후 버퍼가 수정되었습니다. 경고 편집 옵션이 설정되었습니다.

행이 지정되면 표준 입력으로 프로그램에 전달되며
프로그램의 표준 출력 및 표준 오류는 편집의 해당 행을 대체합니다.
완충기. 프로그램 출력의 각 라인(다음으로 구분됨) 문자 또는 끝
바로 앞에 a가 오지 않는 경우 출력의 )은 별도의 줄이어야 합니다.
편집 버퍼에서. 모든 발생 그리고 출력의 쌍
싱글로 취급됩니다 문자. 지정된 줄은
이름 없는 버퍼는 교체되기 전에 이름이 없는 버퍼는 라인이 됩니다.
모드 버퍼.

있는 경우 ex 모드, 싱글 '!' 프로그램이 완료되면 문자가 기록됩니다.

이 명령은 다음의 영향을 받습니다. 껍질경고 편집 옵션. 라인이 없으면
지정된 경우 이 명령은 다음의 영향을 받습니다. 자동 쓰기글쓰기 편집 옵션. 만약에
행이 지정되면 이 명령은 다음의 영향을 받습니다. 자동 인쇄 편집 옵션.

Current :

1. 라인을 지정하지 않으면 변경되지 않습니다.

2. 그렇지 않은 경우, 읽은 줄이 있으면 마지막으로 읽은 줄로 설정합니다.

3. 그렇지 않으면 지정된 줄의 첫 번째 줄 앞의 줄로 설정합니다.
존재합니다.

4. 그렇지 않고 편집 버퍼가 비어 있지 않으면 편집 버퍼의 첫 번째 라인으로 설정합니다.

5. 그렇지 않으면 XNUMX으로 설정합니다.

Current 칼럼: 라인을 지정하지 않으면 변경되지 않습니다. 그렇지 않으면 비로 설정합니다. .

변화 좌회전
개요:
[2주소] <[< ...][계산][플래그]

지정된 줄을 줄의 시작 부분으로 이동합니다. 열 위치의 수
이동된 값은 명령 문자 수와 해당 값을 곱한 값이어야 합니다. 시프트 폭 편집
옵션. 선두만 문자는 삭제되거나 다른 문자로 변경됩니다.
이동 중인 문자; 다른 캐릭터는 영향을 받지 않습니다.

이동될 라인은 명명되지 않은 버퍼에 복사되어야 하며, 이는 라인-
모드 버퍼.

이 명령은 다음의 영향을 받습니다. 자동 인쇄 편집 옵션.

Current : 지정된 라인의 마지막 라인으로 설정됩니다.

Current 칼럼: 비로 설정 .

변화 권리
개요:
[2주소] >[> ...][계산][플래그]

지정된 줄을 줄의 시작 부분에서 멀리 이동합니다. 열 위치 수
이동될 값은 명령 문자 수와 해당 값을 곱한 값이어야 합니다. 시프트 폭
편집 옵션. 교대는 다음을 추가하여 수행됩니다. 접두사로 사용되는 문자
행 또는 행간 변경 문자를 다른 문자로 문자. 빈 줄
변경되지 않습니다.

이동될 라인은 명명되지 않은 버퍼에 복사되어야 하며, 이는 라인-
모드 버퍼.

이 명령은 다음의 영향을 받습니다. 자동 인쇄 편집 옵션.

Current : 지정된 라인의 마지막 라인으로 설정됩니다.

Current 칼럼: 비로 설정 .

-디
개요:
-디

다음을 쓰세요 n 라인, 어디에 n 는 값의 최소값입니다. 스크롤 편집 옵션 및
편집 버퍼에서 현재 라인 뒤의 라인 수. 현재 행이
편집 버퍼의 마지막 줄은 오류입니다.

Current : 쓴 마지막 줄로 설정합니다.

Current 칼럼: 비로 설정 .

쓰다 라인 번호
개요:
[1주소] = [플래그]

If 지정되지 않은 경우 기본적으로 편집 버퍼의 마지막 줄이 사용됩니다. 쓰기
지정된 줄의 줄 번호입니다.

Current : 변경되지 않습니다.

Current 칼럼: 변경되지 않습니다.

실행하다
개요:
[2주소] @ 버퍼
[2주소] * 버퍼

버퍼가 지정되지 않거나 다음과 같이 지정된 경우 '@' or '*', 실행된 마지막 버퍼는 다음과 같습니다.
사용된. 이전 버퍼가 실행되지 않은 경우 오류가 발생합니다.

주소로 지정된 각 라인에 대해 현재 라인('.') 지정된
줄을 입력하고 이름이 지정된 내용을 실행합니다. 버퍼 (당시 그랬듯이 @ 명령
실행됨) ex 명령. 라인 모드 버퍼의 각 라인과 마지막 라인을 제외한 모든 라인에 대해
문자 모드 버퍼의 라인 ex 명령 구문 분석기는 해당 행이 다음과 같이 작동합니다.
에 의해 종료됨 .

이 과정에서 오류가 발생하거나 주소로 지정된 라인이
현재 행이 설정되거나 단일 행 이상이 지정되었을 때 존재합니다.
주소로 대체되고 편집 버퍼의 내용은 대체됩니다(예: ex
편집 : 명령) 오류 메시지가 기록되고 더 이상 명령이 실행되지 않습니다.
이 명령의 실행이 처리됩니다.

Current : 개인별로 정해진 대로 ex 명령.

Current 칼럼: 개인별로 정해진 대로 ex 명령.

정규병 in ex
XNUMXD덴탈의 ex 유틸리티는 기본 정규 표현식의 상위 집합인 정규 표현식을 지원해야 합니다.
POSIX.1‐2008의 기본 정의 볼륨에 설명된 표현식, 섹션 9.3, Basic
정규병 . null 정규식("//")는 마지막과 동일해야합니다
정규식이 발견되었습니다.

정규식은 주소에서 행을 지정하는 데 사용될 수 있으며, 일부 명령(예:
예를 들어 대용품 명령), 대체할 행 부분을 지정합니다.

기본 정규식을 향상시키기 위해 다음 구성을 사용할 수 있습니다.

\< a의 시작 부분과 일치 워드. (정의를 참조하세요. 워드 의 시작
명령 설명 in ex.)

\> a의 끝과 일치 워드.

~ 마지막 교체 부분을 일치시킵니다. 대용품 명령. 그만큼 ('~')
문자는 정규 표현식에서 이스케이프되어 일반 문자가 될 수 있습니다.
특별한 의미는 없습니다. 그만큼 폐기됩니다.

에디터 옵션일 때 마법 설정되지 않은 경우 특별한 의미가 있는 문자만 사용해야 합니다.
be '^' 패턴의 시작 부분에 '$' 패턴이 끝나면 . 그만큼
문자 '.', '*', '[''~' 앞에 없는 한 일반 문자로 처리됩니다.
에 의해 ; 앞에 a가 있을 때 그들은 그 특별한 의미를 되찾을 것이며,
또는 다음의 경우 , 단일로 처리됩니다. . 문자
다른 문자를 이스케이프하는 데 사용된 문자는 삭제됩니다.

바꿔 놓음 문자열 in ex
캐릭터 '&' ('\&' 편집기 옵션인 경우 마법 설정되지 않음) 대체 문자열에
교체할 패턴과 일치하는 텍스트를 나타냅니다. 캐릭터 '~' ('\~' if
마법 설정되지 않음)은 이전의 교체 부품으로 교체되어야 합니다. 대용품
명령. 순서 '\N'어디로 n 은 정수이며 일치하는 텍스트로 대체됩니다.
해당 역참조 표현식을 사용합니다. 해당 역참조인 경우
식이 일치하지 않으면 문자가 일치하지 않습니다. '\N' 빈 문자열로 대체됩니다.

문자열 '\엘', '\유', '\엘''\유' 요소의 대소문자를 수정하는 데 사용할 수 있습니다.
대체 문자열( '\&' or "\"숫자) 표기법. 문자열 '\엘' ('\유') 일 것이다
뒤에 오는 문자가 소문자(대문자)로 변환되도록 합니다. 문자열 '\엘'
('\유') 이후의 모든 문자는 소문자로 변환됩니다.
(대문자) 문자열까지 대체에 의해 삽입됩니다. '\이자형' or '\이자형', 또는
대체 문자열의 끝이 발견되었습니다.

그렇지 않으면 다음 문자는 문자 그대로 취급됩니다
성격과 탈출 폐기됩니다.

대소문자 변환의 예 s 명령은 다음과 같습니다.

:p
XNUMXD덴탈의 방법 마을 on 전에, 매트.
:s/\<.at\>/\u&/gp
XNUMXD덴탈의 고양이 on 전에, 매트.
:s/S\(.*\)M/S\U\1\eM/p
XNUMXD덴탈의 고양이 SAT ON L' 매트.

편집 옵션 in ex
XNUMXD덴탈의 ex 유틸리티에는 동작을 수정하는 다양한 옵션이 있습니다. 이러한 옵션에는
기본 설정은 다음을 사용하여 변경할 수 있습니다. 세트 명령.

별도로 지정하지 않는 한 옵션은 부울입니다.

자동 들여쓰기, ai
[기본 설정 해제]

If 자동 들여쓰기 설정되면 입력 모드의 각 줄은 들여쓰기됩니다(먼저 많은 수를 사용하여).
편집기 옵션에 따라 가능한 한 문자 탭스톱, 그런 다음
문자)를 사용하여 다음과 같이 다른 줄에 맞춰 정렬합니다.

1. 개방형 또는 시각적 모드에 있고 텍스트 입력이 줄 기반 명령의 일부인 경우(참조:
확장 설명 vi), 첫 번째 열에 정렬합니다.

2. 그렇지 않고 오픈 모드나 비주얼 모드인 경우 각 줄의 들여쓰기는 다음과 같이 설정되어야 합니다.
다음과 같습니다 :

ㅏ. 이 명령의 일부로 이전에 행이 삽입된 경우 다음으로 설정됩니다.
기본적으로 마지막으로 삽입된 줄의 들여쓰기 또는 달리 지정된 대로
그만큼 ‐D 문자 입력 모드 명령 in vi.

비. 그렇지 않은 경우 이전 현재 줄의 들여쓰기로 설정됩니다.
어느; 그렇지 않으면 첫 번째 열로 이동합니다.

3. 그 ex a, ic 명령에서 각 줄의 들여쓰기는 다음과 같이 설정됩니다.

ㅏ. 이 명령의 일부로 이전에 행이 삽입된 경우 다음으로 설정됩니다.
기본적으로 마지막으로 삽입된 줄의 들여쓰기 또는 달리 지정된 대로
전에, eof 에 문자 스크롤.

비. 그렇지 않은 경우 명령이 ex a 명령을 실행하면 다음 줄로 설정됩니다.
뒤에 추가됩니다(있는 경우). 그렇지 않으면 첫 번째 열로 이동합니다.

씨. 그렇지 않은 경우 명령이 ex i 명령을 실행하면 다음 줄로 설정됩니다.
앞에 삽입되었습니다(있는 경우). 그렇지 않으면 첫 번째 열로 이동합니다.

디. 그렇지 않은 경우 명령이 ex c 명령을 실행하면 들여쓰기로 설정됩니다.
교체된 라인.

자동 인쇄, ap
[기본 세트]

If 자동 인쇄 설정되면 현재 행은 각 행 뒤에 기록됩니다. ex 수정하는 명령
현재 편집 버퍼의 내용과 각 이후의 내용 태그 태그가 있는 명령
다음과 같은 경우를 제외하고 검색 패턴이 발견되었거나 태그 라인 번호가 유효했습니다.

1. 오픈 모드나 비주얼 모드에서 명령이 실행되었습니다.

2. 명령이 다음의 일부로 실행되었습니다. 글로벌 or v 명령 또는 @ 버퍼 실행.

3. 명령은 다음과 같은 형태였다. 읽기 파일을 편집 버퍼로 읽는 명령입니다.

4. 그 명령은 다음과 같았다. 추가, 이전 단계로 돌아가기삽입하다 명령.

5. 명령이 종료되지 않았습니다. .

6. 현재 행은 명령에 지정된 플래그에 의해 기록됩니다. 예를 들어,
삭제 # 플래그 수정자에 대해 지정된 대로 현재 행을 삭제
명령이 지정되지 않은 경우 자동 인쇄 편집 옵션.

자동 쓰기, aw
[기본 설정 해제]

If 자동 쓰기 설정되었으며 편집 버퍼가 마지막으로 완전히 수정된 이후 수정되었습니다.
어떤 파일에 기록되면 편집 버퍼의 내용은 다음과 같이 기록됩니다. ex 쓰다
명령은 인수 없이 지정되었으며, 각 명령이 영향을 받기 전에
자동 쓰기 편집 옵션이 실행됩니다. 문자 추가 '!' 임의의 명령 이름으로
ex 다음을 제외한 명령 '!' 쓰기를 방지합니다. 쓰기가 실패하면
오류가 발생하고 명령이 실행되지 않습니다.

멋있게 하다, bf
[기본 설정 해제]

If 아름답게 하다 다음을 제외한 모든 인쇄할 수 없는 문자가 설정됩니다. , , 그리고
Feed> 문자는 파일에서 읽은 텍스트에서 삭제됩니다.

예배 규칙서, DIR
[기본 구현 정의]

이 옵션의 값은 편집기 버퍼가 위치할 디렉터리를 지정합니다.
배치. 사용자가 이 디렉토리에 쓸 수 없으면 편집기가 종료됩니다.

교육적, ed
[기본 설정 해제]

다음의 존재를 유발합니다. gc 기억할 대체 명령의 접미사
접미사를 반복하여 전환합니다.

오류 벨, eb
[기본 설정 해제]

편집자가 있다면 ex 모드이며 단말기는 눈에 띄는 모드(예:
역 비디오) 및 오류 벨 설정되면 오류 메시지 앞에 경고가 표시됩니다.
단말기.

exrc
[기본 설정 해제]

If exrc 설정됩니다. ex 어떤 것에도 접근할 수 있다 .exrc 에 설명된 대로 현재 디렉터리의 파일
초기화 in ex vi. 면 exrc 설정되어 있지 않으며, ex 어떤 것도 무시할 것이다 .exrc 에 파일을
초기화 중 현재 디렉토리(현재 디렉토리가
환경 변수.

무시, ic
[기본 설정 해제]

If 대소문자 무시 설정되면 대문자와 소문자로 표현되는 문자는 다음과 같습니다.
정규 표현식의 목적과 동등한 것으로 간주되는 표현을 갖습니다.
비교.

XNUMXD덴탈의 대소문자 무시 편집 옵션은 기억된 모든 정규 표현식에 영향을 미칩니다. 예를 들어,
설정 해제 대소문자 무시 편집 옵션으로 인해 후속 작업이 발생합니다. vi n 검색하라는 명령
대소문자를 구분하는 마지막 기본 정규식입니다.

명부
[기본 설정 해제]

If 명부 설정되어 있는 동안 작성된 버퍼 라인을 편집합니다. ex 명령 모드는 다음과 같이 작성됩니다
에 대해 지정된 인쇄 명령 l 플래그가 지정되었습니다. 개방형 또는 시각적 모드에서 각
편집 버퍼 라인은 다음에 지정된 대로 표시됩니다. ex 인쇄 명령 l 플래그
지정. 개방형 또는 시각적 텍스트 입력 모드에서 커서가 아무 곳에도 머물지 않는 경우
줄의 문자는 그 줄에 있어야 합니다. '$' 줄의 끝을 표시합니다.

마법
[기본 세트]

If 마법 설정되면 정규 표현식의 문자 해석을 수정하고
대체 대체 문자열(참조 정규병 in ex바꿔 놓음 문자열 in
ex).

메시지
[기본 세트]

If 메시지 설정되어 있으면 다른 사람이 사용할 수 있는 권한이 부여됩니다. 쓰다 or 이야기 쓰기 명령
터미널은 개방형 또는 시각적 모드에 있는 동안 켜져야 합니다. 쉘 수준 명령 메시지
n 모든 설정보다 우선합니다. ex 메시지 옵션; 즉, 만약 메시지 y 였다
편집기가 시작되기 전에(또는 쉘 이스케이프에서) 실행됩니다. 예:

:!mesg y

전에, 메시지 에 옵션 ex 들어오는 메시지를 억제하지만 메시지 옵션은 하지 않습니다
다음과 같은 경우 수신 메시지를 활성화합니다. 메시지 n 문제가 제기되었다.

번호, nu
[기본 설정 해제]

If 번호 설정되어 있는 동안 작성된 버퍼 라인을 편집합니다. ex 명령 모드는 다음과 같이 작성되어야 합니다.
행 번호는 다음에 의해 지정된 형식으로 되어 있습니다. 인쇄 명령 # 플래그가 지정되었습니다. ~ 안에
ex 텍스트 입력 모드에서 각 줄 앞에는 해당 줄 번호가 붙습니다.
파일.

개방형 또는 시각적 모드에서 각 편집 버퍼 라인은 이전 라인과 함께 표시됩니다.
숫자는 다음에서 지정한 형식으로 지정됩니다. ex 인쇄 명령 # 플래그가 지정되었습니다. 이것
라인 번호는 평가 목적으로 라인의 일부로 간주되지 않습니다.
현재 열; 즉, 열 위치 1은 다음의 첫 번째 열 위치가 됩니다.
에 의해 지정된 형식 인쇄 명령.

단락, 파라
[POSIX 로케일 IPLPPPQPP LIpplpipbp의 기본값]

XNUMXD덴탈의 단락 편집 옵션은 열린 항목에 대한 추가 단락 경계를 정의해야 합니다.
시각적 모드 명령. 그만큼 단락 편집 옵션을 문자열로 설정할 수 있습니다.
XNUMX개 이상의 문자 쌍으로 구성됩니다. 홀수로 설정하면 오류가 발생합니다
문자 수.

신속한
[기본 세트]

If 신속한 설정됩니다. ex 명령 모드 입력은 다음과 같이 프롬프트됩니다. (':'); 언제
설정하지 않으면 프롬프트가 작성되지 않습니다.

읽기 전용
[기본 참조 본문]

경우 읽기 전용 편집 옵션이 설정되면 읽기 전용 모드가 활성화됩니다(참조: 쓰다).
읽기 전용 다음 조건 중 하나에 해당하면 편집 옵션이 초기화되어 설정됩니다.
진실:

* 명령줄 옵션 -R이 지정되었습니다.

* 다음과 동등한 작업을 수행합니다. ACCESS() 함수는 다음과 같이 호출됩니다.
인수는 파일에 쓰기 권한이 없음을 나타냅니다.

1. 현재 경로명이 통로 논의.

2. 상수 W_알았어 로 사용됩니다 어모드 논의.

XNUMXD덴탈의 읽기 전용 편집 옵션은 구현 정의된 다른 항목에 대해 설정되도록 초기화될 수 있습니다.
원인. 그만큼 읽기 전용 편집 옵션은 특수한 조건에 따라 설정 해제되도록 초기화되지 않습니다.
사용자 또는 프로세스의 권한. 그만큼 읽기 전용 편집 옵션은 각각 다시 초기화되어야 합니다.
편집 버퍼의 내용이 교체되는 시간(예: 편집 or 다음 것
명령) 사용자가 명시적으로 설정하지 않는 한, 이 경우 설정이 유지될 때까지 유지됩니다.
사용자가 명시적으로 설정을 해제합니다. 설정이 해제되면 다음이 수행될 때마다 다시 초기화됩니다.
편집 버퍼의 내용이 교체됩니다.

다시 그리다
[기본 설정 해제]

편집기는 단순 터미널에서 지능형 터미널을 시뮬레이션합니다. (이럴 가능성이 높기 때문에
단말에 많은 양의 출력이 필요하므로 전송률이 높은 경우에만 유용합니다.
속도.)

매핑
[기본 세트]

If 매핑 설정되면 지도 번역은 다른 지도와 관련하여 정의된 지도를 허용해야 합니다.
번역은 최종 제품이 나올 때까지 계속됩니다. 설정하지 않으면 한 단계만
번역이 완료됩니다.

신고
[기본값 5]

이 값 신고 편집 옵션은 추가, 복사되는 행 수를 지정합니다.
편집 버퍼에서 삭제되거나 수정되면 정보 메시지가 기록됩니다.
사용자에게. 다음 조건에서는 정보 메시지가 표시됩니다. 메시지
추가, 복사, 삭제 또는 수정된 행 수를 포함해야 하지만 그렇지 않은 경우에는
지정되지 않음.

* 안 ex or vi 이외의 편집기 명령 열 수, 취소시각, 이는 적어도 수정됩니다.
의 가치 신고 편집 옵션 줄 수, 그리고 ex
글로벌 or v 명령, 또는 ex or vi 버퍼 실행으로 인해 정보 제공이 발생합니다.
작성해야 할 메시지.

* 안 ex 양키 or vi y or Y 최소한의 값을 복사하는 명령 신고 편집
옵션에 1줄 수를 더한 것이며, 이는 ex 글로벌 or v 명령, 또는
ex or vi 버퍼 실행으로 인해 정보 메시지가 기록됩니다.

* 안 ex 글로벌, v, 열 수, 취소시각 명령 또는 ex or vi 버퍼 실행, 추가
또는 최소한 해당 값의 총계를 삭제합니다. 신고 편집 옵션 줄 수,
그리고 이는 ex 글로벌 or v 명령, 또는 ex or vi 버퍼 실행,
정보 메시지가 기록되도록 해야 합니다. (예를 들어 3줄이
도중에 8줄이 추가되고 삭제되었습니다. ex 시각 명령, 5는 비교된 숫자입니다.
에 대한 신고 명령이 완료된 후 옵션을 편집하십시오.)

스크롤, SCR
[기본값(표시 줄 수 -1)/2]

의 가치 스크롤 편집 옵션은 스크롤되는 줄 수를 결정합니다. ex
‐D 및 z 명령. 에 대한 vi ‐D 및 ‐U 명령은 다음과 같습니다
이전 항목이 없을 때 스크롤할 초기 라인 수 ‐D 또는 ‐U 명령
실행되었습니다.

섹션
[POSIX 로케일 NHSHH HUnhsh의 기본값]

XNUMXD덴탈의 섹션 편집 옵션은 열린 부분에 대한 추가 섹션 경계를 정의해야 합니다.
시각적 모드 명령. 그만큼 섹션 편집 옵션은 다음으로 구성된 문자열로 설정할 수 있습니다.
XNUMX개 이상의 문자 쌍; 홀수로 설정하면 오류가 발생합니다.
자.

껍질, sh
[환경변수의 기본값 SHELL]

이 옵션의 값은 문자열입니다. 기본값은 다음에서 가져옵니다. SHELL
환경 변수. 만약 SHELL 환경 변수가 null이거나 비어 있습니다. sh (참조 sh)
유틸리티가 기본값이 됩니다.

이동폭, sw
[기본값 8]

이 옵션의 값은 사용된 들여쓰기 수준의 열 너비를 제공합니다.
자동 들여쓰기 중 및 Shift 명령(<>).

쇼 매치, sm
[기본 설정 해제]

에 대해 설명된 기능 쇼 매치 편집 옵션은 블록에서 지원될 필요가 없습니다.
모드 단말기 또는 기능이 부족한 단말기.

If 쇼 매치 개방형 또는 시각적 모드에서 설정되면 ')' or '}' 입력된 경우 일치하는 경우
'(' or '{' 현재 디스플레이에 표시되며 일치하는 항목은 '(' or '{' 플래그가 지정됩니다
지정되지 않은 시간 동안 커서를 해당 위치로 이동합니다.

쇼 모드
[기본 설정 해제]

If 쇼 모드 공개 모드 또는 시각적 모드에서 편집기가 있는 현재 모드가 설정됩니다.
디스플레이의 마지막 줄에 표시됩니다. 명령 모드와 텍스트 입력 모드는 다음과 같습니다.
차별화된; 기타 지정되지 않은 모드 및 구현 정의 정보는
표시됩니다.

슬로오픈
[기본 설정 해제]

If 슬로오픈 개방형 및 시각적 텍스트 입력 모드 중에 설정되면 편집기가 업데이트되지 않습니다.
문자를 표시하는 디스플레이 행 열 이외의 디스플레이 부분
사용자가 입력한 내용(참조 입력 모드 명령 in vi).

탭스톱, ts
[기본값 8]

이 편집 옵션의 값은 다음에서 사용되는 열 경계를 지정합니다. 에서
디스플레이(참조 자동 인쇄, ap입력 모드 명령 in vi).

태그 길이, tl
[기본값 XNUMX]

이 편집 옵션의 값은 편집할 수 있는 최대 문자 수를 지정합니다.
사용자가 지정한 태그 이름과 태그의 태그 이름에서 중요한 것으로 간주됩니다.
파일. 값이 XNUMX이면 두 태그 이름의 모든 문자가 중요합니다.

태그
[기본 참조 본문]

이 편집 옵션의 값은 다음 문자열이어야 합니다. -구분된 파일 경로 이름
에 의해 사용되는 태그 명령. 기본값은 지정되지 않습니다.

기간
[환경변수의 기본값 TERM]

이 편집 옵션의 값은 문자열입니다. 기본값은 다음에서 가져옵니다. TERM
환경의 변수. 만약 TERM 환경 변수가 비어 있거나 null인 경우
기본값은 지정되지 않았습니다. 편집자는 이 편집 옵션의 값을 사용하여 다음을 결정해야 합니다.
디스플레이 장치의 종류.

이후 사용자가 용어 편집 옵션의 값을 변경하면 결과가 지정되지 않습니다.
편집기 초기화.

간결한
[기본 설정 해제]

If 간결한 설정되면 오류 메시지가 덜 장황해질 수 있습니다. 그러나 이 주의사항을 제외하고,
오류 메시지가 지정되지 않았습니다. 또한 모든 오류 메시지를 변경해야 하는 것은 아닙니다.
이 옵션의 다른 설정.

경고
[기본 세트]

If 경고 설정되었으며 편집 버퍼의 내용이 수정된 이후입니다.
마지막으로 완전히 작성된 경우, 편집자는 특정 항목 앞에 경고 메시지를 작성해야 합니다. !
명령(참조 탈출).


[기본 참조 본문]

개방형 및 시각적 모드에서 사용되는 값입니다. ‐B 및 ‐F 명령, 그리고
시각적 모드, 화면을 다시 그릴 때 표시되는 줄 수를 지정합니다.

경우 -w 명령줄 옵션이 지정되지 않은 경우 기본값은
가치 LINES 환경 변수. 만약 LINES 환경 변수가 비어 있거나
null인 경우 기본값은 디스플레이의 줄 수에서 1을 뺀 값입니다.

설정 편집 옵션을 XNUMX으로 설정하거나 줄 수보다 큰 값으로 설정합니다.
디스플레이에서 1을 뺀 값(명시적으로 또는 -w 옵션 또는 LINES 환경
변수)는 편집 옵션은 줄 수로 설정됩니다.
마이너스 1을 표시합니다.

터미널 라인의 전송 속도는 구현 정의에서 기본값을 변경할 수 있습니다.
방법.

랩마진, wm
[기본값 0]

이 편집 옵션의 값이 XNUMX이면 아무런 효과가 없습니다.

POSIX 로케일이 아닌 경우 이 편집 옵션의 효과는 구현에 따라 정의됩니다.

그렇지 않으면 터미널의 끝 여백에서 열 수를 지정해야 합니다.

개방형 및 시각적 텍스트 입력 모드에서 각 문자에 대해
문자는 다음보다 작은 열에 표시됩니다. 포장 여백 끝의 열
디스플레이 라인의 여백에 따라 편집기는 다음과 같이 작동합니다.

1. 이 이벤트를 발동시키는 캐릭터가 , 그것, 그리고 바로 앞의 모든 것
현재 실행 중에 입력된 현재 줄의 문자
텍스트 입력 명령은 폐기되고 편집기는 사용자가
하나를 입력했습니다 대신에. 또한, 사용자가 입력한 다음 문자가
ㅏ , 이 역시 폐기됩니다.

2. 그렇지 않은 경우, 하나 이상 있는 경우 현재 줄의 문자를 즉시
삽입된 비-마지막 그룹 앞에 동안 입력된 문자
현재 텍스트 입력 명령의 실행, 문자는
사용자가 단일 항목을 입력한 것처럼 대체됩니다. 대신에.

경우 자동 들여쓰기 편집 옵션이 설정되고 1. 또는 2.에서 설명한 이벤트가 수행됩니다.
어느 현재 줄에서 커서 위치나 그 뒤의 문자는 삭제됩니다.

종료 여백은 다음과 같이 시스템에 의해 결정되거나 사용자에 의해 무시됩니다.
에 대한 설명 COLUMNS ENVIRONMENT VARIABLES 섹션 및 기본 정의 볼륨
POSIX.1-2008, 8, 환경 변수.

랩스캔, ws
[기본 세트]

If 랩스캔 설정되면 검색( ex / or ? 주소 또는 개방형 및 시각적 모드 /, ?, N,
n 명령)은 편집 버퍼의 시작이나 끝을 둘러쌉니다. 설정되지 않은 경우,
검색은 편집 버퍼의 시작이나 끝에서 중지됩니다.

쓰기, wa
[기본 설정 해제]

If 글쓰기 설정되면 실행 시 수행되는 일부 검사는 다음과 같습니다. ex 쓰다 명령
편집기 옵션에 설명된 대로 금지됩니다. 자동 쓰기.

EXIT 지위


다음 종료 값이 반환됩니다.

0 성공적으로 완료되었습니다.

>0 오류가 발생했습니다.

결과 OF 오류


오류가 발생하고 표준 입력이 터미널 장치 파일이 아닌 경우, ex
파일을 쓰지 않거나 명령 또는 텍스트 입력 모드로 돌아가지 않고 다음과 같이 종료됩니다.
XNUMX이 아닌 종료 상태.

그렇지 않으면 복구할 수 없는 오류가 발생하면 SIGHUP과 동일합니다.
비동기 이벤트.

그렇지 않으면 오류가 발생했을 때 편집기는 다음에 지정된 대로 작동합니다. 명령
라인 파싱 in ex.

XNUMXD덴탈의 수행원 섹션 are 유익합니다.

신청 사용법


SIGSEGV 신호가 수신되는 동안 ex 파일을 저장하고 있습니다. 파일이 저장되지 않았을 수 있습니다.
성공적으로 저장되었습니다.

XNUMXD덴탈의 다음 것 명령은 두 개 이상의 파일을 허용할 수 있으므로 다음과 같이 사용합니다.

다음 것 `ls [abc]*`

유효합니다. 그것은 유효하지 않을 것입니다 편집 or 읽기 예를 들어 명령은
하나의 파일만 예상하면 지정되지 않은 결과가 발생합니다.

사용 예


없음.

이론적 해석


XNUMXD덴탈의 ex/vi 사양은 4 BSD 및 시스템에서 발견된 역사적 관행을 기반으로 합니다.
V 구현 exvi.

A 한정된 편집자 (둘 다 역사적 빨간 유틸리티 및 수정 사항 ex)이었다
고려되어 포함이 거부되었습니다. 두 옵션 모두 보안 수준을 제공하지 못했습니다.
사용자는 예상할 수 있습니다.

다음과 같이 인식됩니다. ex 그렇지 않으면 시각적 모드 및 관련 기능이 어려울 것입니다.
블록 모드 단말이나 블록 모드가 없는 단말에서는 만족스럽게 구현하는 것이 불가능합니다.
모든 형태의 커서 주소 지정; 따라서 그러한 기능이 반드시 필요한 것은 아닙니다.
모든 터미널에서 작동해야 합니다. 그러나 다음과 같은 의도가 있습니다. ex 이행
이를 지원할 수 있는 모든 터미널에서 전체 기능 세트를 제공해야 합니다.

옵션
XNUMXD덴탈의 -c 대체 +명령 에서 영감을 얻었습니다. -e 의 옵션 SED. 역사적으로 모든
그러한 명령(참조 편집다음 것 마찬가지로) 편집의 마지막 줄부터 실행되었습니다.
완충기. 예를 들어 이것은 다음을 의미합니다. "+/패턴" 그렇지 않으면 실패할 것이다. 랩스캔 선택권
설정되었습니다. POSIX.1‐2008은 역사적 관행을 준수해야 합니다. 그만큼 +명령 옵션은
POSIX.1‐2008에서는 더 이상 지정되지 않지만 일부 구현에는 존재할 수 있습니다.
역사적으로 일부 구현에서는 ex 일부로 나열될 수 있는 명령
명령줄 인수 중 하나입니다. 일관성을 위해 POSIX.1‐2008에서는 다음을 허용하지 않습니다.
제한.

편집기의 역사적 구현에서, -R 옵션(그리고 읽기 전용 편집 옵션)
파일 덮어쓰기만 방지했습니다. 파일에 추가하는 것은 여전히 ​​허용됩니다. 매핑
느슨하게 속으로 CSH 노클로버 변하기 쉬운. 그러나 일부 구현은 따르지 않았습니다.
이 의미론과 읽기 전용 추가도 허용하지 않습니다. POSIX.1‐2008은 다음을 따릅니다.
후자의 실천은 그것이 더 명백하고 직관적인 의미라고 믿는다. 읽기 전용.

XNUMXD덴탈의 -s 옵션은 모든 대화형 사용자 피드백을 억제하고 스크립트 편집에 유용합니다.
일괄 작업에서. 특정 효과 목록은 역사적 관행입니다. 터미널 유형
``개방형 및 시각적 모드를 지원할 수 없음''은 역사적으로 ``멍청함''으로 명명되었습니다.

XNUMXD덴탈의 -t 옵션이 필요했기 때문에 c태그 유틸리티는 POSIX.1‐2008에 나타나며
옵션은 모든 기록 구현에서 사용할 수 있습니다. ex.

역사적으로 exvi 유틸리티는 -x 옵션은 다음을 기반으로 암호화를 수행했습니다.
역사 속에서 발견된 알고리즘 토굴 공익사업. 그만큼 -x 암호화 옵션 및
관련 토굴 유틸리티는 사용된 알고리즘이 지정 가능하지 않기 때문에 생략되었습니다.
일부 국가의 수출 통제법으로 인해 암호화폐 수출이 어려워졌습니다.
기술. 또한 역사적으로 사용자에게 제공되는 보안 수준을 제공하지 않았습니다.
기대할 수도 있습니다.

ㅁㄴㅇㄹ 입력
파일 끝 조건은 파일 끝 문자와 동일하지 않습니다. 일반적인 끝-
파일 문자, ‐D는 역사적으로 ex 명령.

과거 구현에는 최대 줄 길이가 없었습니다. ex. 구체적으로 말하자면
청크로 구문 분석되었으므로 주소의 최대 길이가 파일 이름과 다릅니다.
또한 최대 라인 버퍼 크기는 길이가 다른 BUFSIZ로 선언되었습니다.
다른 시스템에서. 이 버전에서는 합리적인 수준을 부과하기 위해 {LINE_MAX} 값을 선택했습니다.
휴대용 사용 제한 ex 테스트 스위트 작성자의 개발을 돕기 위해
이 한계를 행사하는 현실적인 테스트.

입력 파일
표준 개발자가 명시적으로 결정한 사항은 다음과 같습니다. 무엇이든 추가될 수 있다
파일이 하나 부족합니다. 이 특징이 있다고 믿어졌습니다. exvi 사용자들의 의존도가 높았습니다.
후행이없는 텍스트 파일을 만들기 위해 더 휴대하기 좋습니다. 다음과 같이 인식됩니다.
이를 위해서는 구현을 허용하는 사용자 지정 옵션이나 확장이 필요합니다. ex
vi 해당 파일이 달리 식별되지 않는 경우 텍스트 이외의 유형의 파일을 편집하려면
시스템. 임의 유형의 파일을 편집하는 기능이 유용할 수 있다는 데 동의했습니다.
그러나 이를 의무화할 필요는 없다고 생각되었다. ex or vi 구현이 필요하다
텍스트 파일 이외의 파일을 처리합니다.

INPUT FILES 섹션의 "기본적으로 ..."라는 단락은 다음을 닫는 데 사용됩니다.
오랫동안 지속된 보안 문제 exvi; '모델라인' 또는 '모델라인'의 것
편집 옵션. 이 기능은 파일의 첫 번째 또는 마지막 XNUMX줄의 모든 줄을 허용합니다.
문자열을 포함하는 "전:" or "바이:" (그리고 분명히, "에이:" or "vx:") 선이 되려면
편집기 명령을 포함하고 ex 다음 텍스트까지의 모든 텍스트를 해석합니다. ':' 또는
명령으로. 예를 들어, 의심하지 않는 사용자가 ex or
vi 다음과 같은 내용이 포함된 메일 ​​메시지에 회신할 때 편집자로 사용됩니다.

전:! rm -rf :

시그니처 라인에 등장했습니다. 표준 개발자들은 편집자가
기본적으로 파일의 어떤 줄도 해석해서는 안 됩니다. 판매자는 삭제를 강력히 촉구합니다.
이 기능은 구현에서 exvi.

비동기 이벤트
'완전한 쓰기''라는 문구의 의도는 전체 편집 버퍼가 기록된다는 것입니다.
안정적인 보관이 가능합니다. 임시 파일에 관한 참고 사항은 다음과 같은 구현을 위한 것입니다.
임시 파일을 사용하여 사용자가 이름을 지정하지 않은 편집 버퍼를 백업합니다.

역사적으로 SIGQUIT는 다음에서 무시되었습니다. ex, 그러나 Q 시각적 명령
방법; 즉, 시각적 모드를 종료하고 들어갔습니다. ex 방법. POSIX.1‐2008은 허용하지만
필요하지 않습니다. 이 동작입니다. 역사적으로 SIGINT는 다음에서 자주 사용되었습니다. vi 사용자가 종료
텍스트 입력 모드( ‐C는 종종 다음보다 입력하기 쉽습니다. ). 일부 구현
of vi 이 사건에 대해 터미널에 경고했지만 일부는 그렇지 않았습니다. POSIX.1‐2008에서는 다음을 요구합니다.
SIGINT는 다음과 동일하게 동작합니다. , 터미널에 경고가 표시되지 않습니다.

역사적으로 ex 텍스트 입력 모드의 편집기는 SIGINT와 유사했습니다.
완성된 줄은 유지되지만 일부 줄은 삭제되고 편집자는
명령 모드. POSIX.1‐2008은 이 문제에 대해 침묵하고 있습니다. 구현이 권장됩니다.
가능하다면 역사적 관행을 따르십시오.

역사적으로 vi 편집자는 SIGTSTP를 비동기 이벤트로 처리하지 않았으며
따라서 시각적 텍스트 입력 모드에서는 편집기를 일시 중지할 수 없습니다. 크게 두 가지가 있다
이에 대한 이유. 첫 번째는 SIGTSTP가 UNIX 시스템의 브로드캐스트 신호라는 것입니다.
쉘이 일어나는 일련의 사건들 임원그런 다음 응용 프로그램입니다 임원s vi 일반적으로 발생
SIGTSTP가 프로세스 그룹에 전달된 경우 터미널 상태에 대한 혼란
기본 방식. 두 번째는 대부분의 UNIX 구현이 저주하다 패키지가 그랬어
SIGTSTP를 안전하게 처리하지 못하고 잘못된 시간에 SIGTSTP를 수신하면 문제가 발생할 수 있습니다.
충돌하다. POSIX.1‐2008은 이 문제에 대해 침묵하고 있습니다. 구현은 치료를 권장합니다
가능하다면 비동기 이벤트로 정지합니다.

역사적으로 SIGINT가 작업을 중단하기 전에 편집 버퍼를 수정하면
유지되었습니다. 즉, XNUMX부터 수정될 모든 라인까지 어디든 있을 수 있습니다.
SIGINT가 도착할 때까지 수정되었습니다. 이러한 변경 사항은
SIGINT 도착. POSIX.1‐2008에서는 이 동작을 허용하며 취소 명령은
부분적으로 완료된 명령을 실행 취소할 수 있어야 합니다.

SIGINT, SIGCONT, SIGHUP 및 SIGTERM 이외의 신호에 대해 수행되는 작업은 다음과 같습니다.
일부 구현에서는 편집 버퍼를 유용한 상태로 저장하려고 시도하기 때문에 지정되지 않았습니다.
다른 신호가 수신될 때.

ㅁㄴㅇㄹ 오류
럭셔리 ex/vi, 진단 메시지는 실패한 시도의 결과로 보고된 메시지입니다.
호출하다 ex or vi, 잘못된 옵션, 리소스 부족, 비정상적인
종료 조건. 진단 메시지를 오류 메시지와 혼동해서는 안 됩니다.
부적절하거나 불법적인 사용자 명령에 의해 생성됩니다.

초기화 in ex vi
경우 ex 명령(이외 cd, chdir )에는 다음 중 하나 또는 둘 다의 파일 이름 인수가 있습니다.
대체 및 현재 경로 이름이 설정됩니다. 비공식적으로는 다음과 같이 설정됩니다.

1. 경우 ex 명령은 편집 버퍼의 내용을 바꾸는 명령이며,
성공하면 현재 경로 이름이 파일 이름 인수로 설정됩니다(첫 번째
다음의 경우 파일 이름 인수 다음 것 명령) 대체 경로 이름은 다음과 같습니다.
이전 현재 경로 이름이 있는 경우 해당 경로로 설정합니다.

2. 파일 읽기/쓰기 형태의 경우 읽기쓰다 명령(있는 경우)
현재 경로 이름이 없으면 현재 경로 이름이 파일 이름 인수로 설정됩니다.

3. 그렇지 않으면 대체 경로 이름이 파일 이름 인수로 설정됩니다.

예를 들어, 편집 : :다시 덮다 , 성공하면 현재 경로 이름을 설정하고,
이전의 현재 경로 이름이 있는 경우 대체 경로 이름입니다. 명령 :쓰다,
!명령편집 : 현재 또는 대체 경로 이름을 설정하지 마십시오. 만약 편집 :
어떤 이유로 명령이 실패하면 대체 경로 이름이 설정됩니다. 그만큼 읽기
쓰다 명령은 대체 경로 이름을 해당 경로로 설정합니다. 파일 인수, 현재가 아닌 이상
경로 이름이 설정되지 않은 경우 현재 경로 이름을 자신의 경로로 설정합니다. 파일 인수.
대체 경로 이름은 역사적으로 :원천 명령. POSIX.1‐2008
역사적 관행에 대한 준수가 필요합니다. 다음을 수행하는 명령을 추가하는 구현
파일 이름을 인수로 사용하려면 여기에 설명된 대로 대체 경로 이름을 설정하는 것이 좋습니다.

역사적으로, exvi 읽기 .exrc 에 파일을 $ HOME 디렉토리를 두 ​​번, 편집기인 경우
에서 처형됐다. $ HOME 예배 규칙서. POSIX.1‐2008에서는 이 동작을 금지합니다.

역사적으로 4 BSD exvi 읽기 $ HOME 그리고 지역 .exrc 파일이 소유된 경우
이용자의 실제 ID 또는 출처 다른 옵션과 상관없이 옵션이 설정되었습니다.
고려 사항. 이는 일반 UNIX에서도 가능하기 때문에 보안상 문제가 있었습니다.
내부의 시스템 명령 .exrc 파일. POSIX.1‐2008은 다음을 지정하지 않습니다. 출처 선택권,
과거 구현에서는 이를 삭제하는 것이 좋습니다.

XNUMXD덴탈의 .exrc 파일은 사용자의 실제 ID가 소유해야 하며 다른 사람이 쓸 수 없어야 합니다.
주인보다. 적절한 권한 예외는 사용자에게 다음을 허용하기 위한 것입니다.
특별한 특권을 얻더라도 계속해서 사용할 수 있습니다. .exrc 홈 디렉토리에 있는 파일.

System V 릴리스 3.2 이상 vi 구현에 옵션이 추가되었습니다. [아니요]exrc. 그 행동
그게 현지야? .exrc 파일은 읽기 전용입니다. exrc 옵션이 설정되었습니다. 기본값은
exrc 옵션이 꺼져 있으므로 기본적으로 로컬 .exrc 파일을 읽지 못했습니다. 문제는 이거였어
해결하려는 의도는 System V가 사용자에게 파일을 제공하도록 허용한다는 것이었습니다.
파일이 안전한지 확인하기 위한 가능한 소유권 또는 쓰기 가능성 테스트. 이것은 여전히
사용자가 파일을 제공할 수 있지만 아무 것도 제공되지 않는 시스템의 보안 문제
POSIX.1‐2008이 할 수 있는 추가 기능입니다. 구현에서 정의된 예외는 다음을 수행하기 위한 것입니다.
그룹이 로컬을 갖도록 허용 .exrc 의사 사용자를 생성하여 사용자가 공유하는 파일
공유 파일을 소유합니다.

POSIX.1‐2008은 시스템 전체를 언급하지 않습니다. exvi 시작 파일. 그들이 존재하는 동안
여러 가지 구현 exvi, 어떤 구현에도 존재하지 않습니다
POSIX.1‐2008에서는 역사적 관행을 고려했습니다. 해당 파일이 있는 구현
실제 사용자 ID 또는 해당 사용자(예:
예를 들어 UNIX 시스템의 루트) 및 해당 사용자 이외의 다른 사용자가 쓸 수 없는 경우
소유자. 시스템 전체 시작 파일은 읽기 전에 읽어야 합니다. 종료 변수, $HOME/.exrc,
또는 지역 .exrc 파일이 평가됩니다.

역사적으로 어떤 ex 명령은 종료 변수 또는 .exrc 파일
일반적으로 편집 버퍼에 이미 텍스트 줄이 포함되어 있어야 하는 경우도 있지만
편집기의 역사적 구현이 중단되었습니다. core. POSIX.1‐2008에서는 다음을 요구합니다.
어떤 ex 명령은 다음에서 허용됩니다. 종료 변수 및 .exrc 파일, 단순화를 위해
명세와 일관성, 비록 그 중 많은 것들이 여러 환경에서 분명히 실패할지라도
상황.

편집 버퍼 내용의 초기화는 "효과는 다음과 같습니다"라는 문구를 사용합니다.
다양한 것에 관해 '' ex 명령. 이 문구의 의도는 편집 버퍼입니다.
초기화 단계 중에 로드된 콘텐츠는 손실되지 않습니다. 즉, 편집 내용을 로드하는 것입니다.
다음과 같은 경우 버퍼가 실패해야 합니다. .exrc 파일이 파일의 내용을 읽었지만 읽지 않았습니다.
이어서 편집 버퍼를 작성합니다. 이 문구의 추가적인 의도는 다음을 지정하는 것입니다.
초기 현재 행과 열은 개별적으로 지정된 대로 설정됩니다. ex 명령.

역사적으로 -t 옵션은 태그 검색이 +명령; 즉, 그랬다
태그에 지정된 파일의 마지막 줄부터 실행됩니다. 이로 인해 검색 결과
패턴이 정방향 검색 패턴이고 랩스캔 편집 옵션이 없습니다
세트. POSIX.1‐2008에서는 이 동작을 허용하지 않으므로 태그 검색이 필요합니다.
패턴은 전체 파일에 대해 수행되며, 발견되지 않으면 현재 행이 설정됩니다.
파일의 보다 합리적인 위치로 이동합니다.

역사적으로 파일이 지정되지 않은 경우 편집을 위해 빈 편집 버퍼가 제공되었습니다.
사용자의 이름은 알려지지 않았습니다. 이는 POSIX.1‐2008에서 허용됩니다. 그러나 구현은
사용자에게 이 버퍼에 대한 임시 파일 이름을 제공하는 것이 좋습니다.
사용 ex 임시 편집 세션 중에 현재 경로 이름을 사용하는 명령입니다.

역사적으로 다음을 사용하여 지정된 파일은 -t 옵션이 현재 인수의 일부가 아닙니다.
목록. 이 관행은 POSIX.1‐2008에서 허용됩니다. 그러나 구현이 권장됩니다
일관성을 위해 현재 인수 목록에 해당 이름을 포함합니다.

역사적으로 -c 명령은 일반적으로 이미 존재하는 파일이 있을 때까지 실행되지 않았습니다.
편집되었습니다. POSIX.1‐2008은 이러한 역사적 관행을 준수해야 합니다. 다음과 같은 명령을 내립니다.
일으킬 수 있습니다 -c 실행할 명령에는 다음이 포함됩니다. ex 명령 편집, 다음 것, 복구,
되감기태그vi 명령 ‐^ 그리고 ‐]. 역사적으로, 독서
파일을 편집 버퍼에 넣어도 오류가 발생하지 않았습니다. -c 실행될 명령(비록 실행될 수 있음에도 불구하고)
현재 경로 이름 설정) -c 될 것을 명령하다
다음 경우에 실행됨: 편집기가 다음 위치에 있었습니다. ex 모드, 편집 버퍼에 현재 경로 이름이 없습니다. 편집
버퍼가 비어 있고 아직 읽기 명령이 시도되지 않았습니다. 일관성과
사양의 단순성으로 인해 POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

역사적으로 -r 복구가 없는 경우 옵션은 일반 편집 세션과 동일했습니다.
파일에 대해 사용 가능한 정보입니다. 이를 통해 사용자는 다음을 입력할 수 있습니다.

vi -r *.씨

복구 가능한 모든 파일을 복구합니다. 일부 구현에서는 복구가
이름이 지정된 첫 번째 파일에만 시도되었으며 해당 파일이 인수에 입력되지 않았습니다.
목록; 다른 경우에는 이름이 지정된 각 파일에 대해 복구가 시도되었습니다. 또한, 일부 역사적
구현이 무시됨 -r if -t 지정되었거나 명령줄을 지원하지 않습니다. 파일
와의 논쟁 -t 옵션. 사양의 일관성과 단순성을 위해
POSIX.1‐2008에서는 이러한 특수한 경우를 허용하지 않으며 복구를 시도해야 합니다.
각 파일을 처음 편집할 때.

역사적으로, vi 초기화했습니다 `' 표시가 있지만 ex 하지 않았다. 이는 다음과 같은 경우를 의미합니다.
첫 번째 명령 ex 모드는 시각 또는 만약 ex 명령이 먼저 실행되었습니다(예:
vi +10 파일), vi 마크가 초기화되지 않고 입력되었습니다. 왜냐하면 표준
개발자들은 마크가 일반적으로 유용하고 일관성과 단순성을 위해 있다고 믿었습니다.
사양에 따르면 POSIX.1‐2008에서는 열려 있거나 열려 있는 경우 항상 초기화되어야 합니다.
시각적 모드 또는 해당 모드에 있는 경우 ex 모드이고 편집 버퍼가 비어 있지 않습니다. 초기화하지 않음 ex
편집 버퍼가 비어 있는 경우의 모드는 역사적 관행입니다. 그러나 그것은 언제나 그랬다.
개방형 및 시각적 모드 편집에서 빈 편집 버퍼에 표시를 설정(및 사용)할 수 있습니다.
세션.

주소 지정
역사적으로, exvi 추가 주소 지정 양식을 수락했습니다. '\/''\?'. 그들은였다
에 해당 "//""??", 각각. POSIX.1‐2008에서는 필요하지 않지만 대부분
왜냐하면 역사적으로 그들이 다른 일을 했는지를 아무도 기억할 수 없기 때문입니다.

역사적으로, exvi 여러 명령에 대해 주소 0을 허용했으며 허용되었습니다.
전에, % 다른 사람들을 위해 빈 파일에 주소를 입력하세요. 일관성을 위해 POSIX.1‐2008에는 지원이 필요합니다.
전자의 경우 몇 가지 명령이 의미가 있고 그렇지 않으면 허용되지 않습니다. ~ 안에
게다가 POSIX.1‐2008에서는 다음을 요구하기 때문입니다. % 논리적으로 동등하다 "1,$", 그것은
또한 의미가 있는 경우에는 지원되고 그렇지 않은 경우에는 허용되지 않습니다.

역사적으로 % 주소 뒤에 추가 주소가 올 수 없습니다. 일관성을 위해
사양의 단순성과 POSIX.1‐2008에서는 추가 주소가 필요합니다.
지원.

다음은 모두 유효합니다. 구애:

+++ 현재 줄 다음에 세 줄.

/re/− 다음 항목 앞의 한 줄 re.

−2 현재 행보다 두 행 앞입니다.

3 −−−− 2 첫 번째 라인(중간 음수 주소 참고).

1 2 3 XNUMX행.

주소를 가져오는 명령에 임의 개수의 주소를 제공할 수 있습니다. 예를 들어,
"1,2,3,4,5p" 4행과 5행을 인쇄합니다. 유효한 주소의 최대 개수는 XNUMX개이기 때문입니다.
에 의해 수락됨 인쇄 명령. 이는 구분 기호,
사용자가 파일의 정렬된 패턴을 기반으로 명령을 만들 수 있습니다. 예를 들어,
명령 3;/foo/;+2인쇄 패턴을 포함하는 3행 다음의 첫 번째 행을 표시합니다.
, 플러스 다음 두 줄. 참고로 주소는 3; 되기 전에 평가해야 한다
검색 출처가 다음과 같기 때문에 삭제되었습니다. /푸/ 명령은 이것에 달려 있습니다.

역사적으로 하나 이상의 주소 뒤에 값을 포함하여 주소에 값을 추가할 수 있었습니다.
문자; 예를 들어, 3 - 5p 파일의 일곱 번째 줄을 썼습니다. /푸/ 5
와 같았다 /foo/+5. 그러나 절대값만 추가할 수 있습니다. 예를 들어,
5 /푸/ 오류였습니다. POSIX.1‐2008은 역사적 관행을 준수해야 합니다. 주소
오프셋은 역사적으로 가능했기 때문에 주소와 별도로 지정됩니다.
비주얼 모드 검색 명령에 제공됩니다.

역사적으로 누락된 주소는 현재 행에 기본값으로 설정되었습니다. 이는 사실이었습니다.
선행 및 후행 로 구분된 주소 및 후행 으로 구분된 주소
구애. 일관성을 위해 POSIX.1‐2008에서는 주소 앞에 다음과 같이 이를 요구합니다.
잘.

역사적으로, exvi 받아들였다 '^' 주소 및 플래그 오프셋으로 사용되는 문자
명령용. 두 경우 모두 동일했습니다. '-' 성격. POSIX.1‐2008은 그렇지 않습니다.
이 행동을 요구하거나 금지합니다.

역사적으로 기본 정규식의 향상된 기능을 주소 지정에 사용할 수 있었습니다.
예를 들어, '~', '\<''\>'. POSIX.1‐2008은 과거 버전을 준수해야 합니다.
관행; 즉, 정규식 사용이 일관되어야 하며 정규식은
정규 표현식이 사용되는 곳마다 표현식 개선이 지원됩니다.

명령 라인 파싱 in ex
역사적인 ex 명령 구문 분석은 여기에 설명된 것보다 훨씬 더 복잡했습니다. POSIX.1‐2008
표준 개발자가 믿었던 명령 구문 분석의 하위 집합이 필요합니다.
문서화되어 있고 사용자가 휴대용 방식으로 사용할 것으로 합리적으로 기대할 수 있음
이는 구현 간에 역사적으로 일관성이 있었습니다. (폐기된 기능은
기껏해야 모호합니다.) 과거 구현에서는 규정을 준수하기 위해 변경이 필요합니다.
POSIX.1‐2008 사용; 그러나 사용자는 이러한 변경 사항을 전혀 눈치채지 못할 것으로 예상됩니다. 최대
복잡성의 ex 구문 분석은 세 가지 특별한 종료 사례를 처리하는 것입니다.

1. 그만큼 !, 글로벌, v, 그리고 의 필터 버전 읽기쓰다 명령은 구분되어 있습니다
문자 기준(일반적으로 문자를 포함할 수 있음)
쉘 파이프).

2. 그만큼 ex, 편집, 다음 것시각 개방형 및 시각적 모드 명령에서는 모두 ex 명령,
선택적으로 문자를 첫 번째 인수로 포함합니다.

3. 그만큼 s 명령은 정규식을 첫 번째 인수로 사용하고
명령을 구분하는 문자를 구분합니다.

역사적으로 문자는 +명령 의 논쟁 ex, 편집, 다음 것,
vi시각 명령과 무늬바꿔 놓음 의 일부 s 명령, 그랬어
명령을 구분하지 않으며 필터의 경우 읽기쓰다!, 글로벌,
v 명령은 명령을 전혀 구분하지 않았습니다. 예를 들어, 다음
명령은 모두 유효합니다.

:편집 +25 | s/abc/ABC/파일.c
:초/ | /파이프/
:읽기!철자 % | 기둥 모양의
:전역/패턴/p | 엘
:s/a/b/ | 초/c/일 | 세트

역사적으로 비어 있거나 채워진 줄이 있었습니다. .exrc 파일과 d 파일(또한
종료 변수와 ex 명령 스크립트)은 기본 명령으로 처리되었습니다. 그건, 인쇄
명령. POSIX.1‐2008에서는 특히 POSIX.XNUMX‐XNUMX에서 마주칠 때 무시하도록 요구합니다.
.exrc d 파일을 사용하여 새로운 사용자 오류의 일반적인 원인을 제거합니다.

역사적으로, ex 여러 개의 인접한(또는 으로 구분된) 수직선이 있는 명령
에서 실행될 때 이상하게 처리되었습니다. ex 방법. 예를 들어 다음 명령은 ||| <운송-
return>은 커서가 라인 1에 있을 때 파일의 라인 2, 3, 5를 표시합니다. ~ 안에
추가, 명령 | 대신 다음 줄 다음 줄만 표시합니다.
다음 두 줄. 전자는 다음에서 실행될 때 더 논리적으로 작동했습니다. vi 모드 및 표시
2, 3, 4행. POSIX.1‐2008에는 다음이 필요합니다. vi 행동; 즉, 단일 기본값
각 명령 구분 기호에 대한 명령 및 줄 번호 증가 및 후행
구분 기호 뒤의 문자는 삭제됩니다.

역사적으로, ex 단일 추가 을 선행 명령 문자로 허용합니다. ~을 위한
예, :g/패턴/:p 유효한 명령이었다. POSIX.1‐2008은 이를 일반화하여 다음을 요구합니다.
선행 문자는 원하는 만큼 제거됩니다.

역사적으로 접두사 삭제 개입하지 않고 명령을 따를 수 있음
문자는 명령에 플래그 문자로 표시됩니다. d p, p 로 해석된다
버퍼 p. POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

역사적으로 k 명령 뒤에는 을 개입시키지 않고 마크 이름이 올 수 있습니다.
문자. POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

역사적으로 s 명령 바로 뒤에는 플래그 및 옵션 문자가 올 수 있습니다.
예를 들어, s/e/E/|s|sgc3p 유효한 명령이었다. 그러나 깃발 캐릭터는 참을 수 없었습니다.
홀로; 예를 들어 다음 명령은 sps l 명령은 실패하지만 SGPs gl
성공할 것입니다. (분명히, '#' 플래그 문자가 구분 문자로 사용된 경우
명령을 따랐습니다.) 또 다른 문제는 옵션 문자가 플래그 앞에 와야 한다는 것이었습니다.
명령이 완전히 지정된 경우에도 문자가 표시됩니다. 예를 들어 다음 명령은 s/e/E/pg
명령은 실패하지만 s/e/E/gp 성공할 것입니다. POSIX.1‐2008은 다음을 준수해야 합니다.
역사적 관행.

역사적으로 사용자의 입력과 일치하는 접두사가 있는 첫 번째 명령 이름
실행된 명령이었습니다. 예를 들어, ve, 버전적이있는 모두 실행했다 버전 명령.
그러나 명령은 특정한 순서로 되어 있었습니다. a 일치하는 추가가 아닌 줄여 쓰다.
POSIX.1‐2008은 역사적 관행을 준수해야 합니다. 명령의 제한
확장 기능이 있는 구현에 대한 검색 순서는 다음과 같은 명령의 추가를 피하는 것입니다.
역사적 접두사는 이식 가능하게 작동하지 않습니다.

의 역사적 구현 exvi 여러 개를 올바르게 처리하지 못했습니다. ex 명령,
문자로 구분되어 시각적 모드나 편집기에 들어가거나 종료됩니다.
왜냐하면 구현은 vi 이 실패 모드를 나타내지 않는 존재(POSIX.1‐2008)
그것을 허용하지 않습니다.

알파벳 명령 이름은 다음과 같은 알파벳으로 구성되어야 한다는 요구 사항
알파벳이 아닌 다음 문자까지의 문자는 알파벳 명령 이름을 의미합니다.
일반적으로 하나 이상의 알파벳이 아닌 문자로 인수와 구분되어야 합니다.
또는 '!' 예외에 대해 지정된 경우를 제외하고 문자는 삭제, ks
명령.

역사적으로 반복적으로 실행된 ex 디폴트 값 인쇄 명령(‐D, eof,
, ) 프롬프트 문자를 지우고 다음 줄을 표시했습니다.
터미널을 스크롤하지 않고; 즉, 이전에 표시된 줄 바로 아래에 있습니다.
이는 사용자에게 파일의 행을 더욱 깔끔하게 표시해 줍니다. POSIX.1‐2008
일부 상황에서는 불가능할 수 있으므로 이 동작이 필요하지 않습니다. 하지만,
구현에서는 가능하면 이 의미 체계를 제공하는 것이 좋습니다.

역사적으로 명령 도중에 파일을 변경하는 것이 가능했습니다.
나머지 명령은 새 파일에서 실행됩니다. 예를 들어:

편집 : +25 파일.c | s/abc/ABC/ | 1

유효한 명령이고 새로 편집된 파일에서 대체를 시도했습니다.
POSIX.1‐2008은 역사적 관행을 준수해야 합니다. 다음 명령은
행사하는 예 ex 파서:

에코 '푸 | 술집' > 파일1; 에코 '푸/바' > 파일2;
vi
편집 : +1 | s/|/파이프/ | w file1 | e file2 | 1 | s/\//슬래시/ | wq

역사적으로 편집기 구현에는 다음을 방지하는 보호 기능이 없었습니다. ex 글로벌, v, @,
or * 관련 명령을 실행하는 동안 편집 버퍼를 변경하는 명령입니다. 왜냐하면
이는 거의 예외 없이 편집자의 치명적인 실패를 초래할 것입니다.
이러한 문제를 보이는 구현이 존재하므로 POSIX.1‐2008에서는 다음과 같이 변경해야 합니다.
편집 버퍼 글로벌 or v 명령을 내리거나 @ or * 거기에 대한 명령
단일 실행 이상이면 오류가 발생합니다. 여러 가지를 지원하는 구현
편집 버퍼에 동일한 의미를 적용하는 것이 동시에 권장됩니다.
버퍼 간 전환도 가능합니다.

XNUMXD덴탈의 ex POSIX.1‐2008에서 요구하는 명령 인용은 역사적 인용의 상위 집합입니다.
편집기 구현. 예를 들어, 역사적으로 탈출은 불가능했습니다.
파일 이름에 ; 예를 들어, 편집 : foo\\\\ 파일 이름이 너무 많다고 보고됩니다.
편집 명령에 대해 입력되었으며 을 이스케이프 처리할 수 있는 방법이 없었습니다.
의 첫 번째 주장 편집, ex, 다음 것시각 전혀 명령. POSIX.1‐2008 확장
역사적 관행에 따라 인용 행위는 전체에서 일관되게 이루어져야 합니다. ex
명령을 제외하고 지도, 지도 해제, 줄여 쓰다축약하지 않다 명령, 이는
역사적으로 문자 대신 ‐V를 사용하여 인용했습니다. 그런 분들을 위해
네 가지 명령, POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

백슬래시 인용 ex 직관적이지 않습니다. - 이스케이프는 무시됩니다.
특수 문자를 탈출하십시오. 예를 들어 공연할 때 파일 인수 확장,
"\\%" 에 해당하는 '\%', "\<가 아님current 경로명>". 이는 혼란스러울 수 있습니다.
는 일반적으로 쉘 확장을 유발하는 문자 중 하나이기 때문입니다.
수행되므로 쉘 인용 규칙을 고려해야 합니다.
일반적으로 인용 문자는 특수 문자를 이스케이프하는 경우에만 고려됩니다.
해당 문자가 사용되는 각 구문 분석 계층에 대해 인용 문자를 제공해야 합니다.
특별한. 또 다른 예로, 하나만 필요합니다. '\엘' 순서
대체 교체 패턴에서는 문자가 '엘' 누구에게도 특별하지 않다
그 위의 구문 분석 레이어.

‐V 인용 ex 백슬래시 인용과는 약간 다릅니다. 4개에서는
‐V 인용이 적용되는 명령(줄여 쓰다, 축약하지 않다, 지도지도 해제), 어느
문자는 특별한 의미가 있든 없든 ‐V로 이스케이프될 수 있습니다.
POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

편집기의 역사적 구현에서는 문자 내에 구분 기호가 필요하지 않았습니다.
이스케이프할 클래스; 예를 들어 다음 명령은 :에스/[/]// 문자열에 "xxx/yyy" 겠지
삭제 '/' 문자열에서. POSIX.1‐2008은 이러한 역사적 관행을 허용하지 않습니다.
일관성을 요구함으로써 구현에 큰 부담을 주기 때문입니다.
정규식에 대한 지식이 편집기 파서에 내장되어 있습니다.

역사적으로 문자를 인용하는 것은 ex 명령이 일관되지 않게 처리되었습니다. ~ 안에
대부분의 경우 문자는 무엇이든 관계없이 항상 명령을 종료했습니다.
앞에 나오는 이스케이프 문자( 문자가 을 이스케이프하지 않았기 때문)
대부분의 문자 ex 명령. 그러나 일부 ex 명령(예: s, 지도
약어)는 문자가 이스케이프되도록 허용했습니다(그러나 지도
약어, ‐V 문자가 문자 대신 이스케이프 처리되었습니다.
이는 명령줄뿐만 아니라 .exrc d 파일. 예를 들어,
명령 :

지도 = foo바

성공할 것입니다. -V를 얻고 삽입하는 것이 때로는 어려웠지만
이 다음에 전달되었습니다. ex 파서. 사양의 일관성과 단순성을 위해
POSIX.1‐2008에서는 문자를 이스케이프 처리할 수 있어야 합니다. ex 명령을
항상, 대부분의 경우 문자를 사용합니다. ex 명령 및 ‐V 사용
에 대한 문자 지도약어 명령. 예를 들어 다음 명령은
인쇄명부 단일 명령으로 구문 분석해야 합니다. 인쇄명부.
이는 역사적 관행과는 다르지만 POSIX.1‐2008 개발자는 그럴 가능성이 없다고 생각했습니다.
모든 스크립트나 사용자는 과거의 행동에 의존합니다.

역사적으로 다음을 사용하여 지정된 명령에서 오류가 발생했습니다. -c 옵션으로 인해 나머지가 발생하지 않았습니다.
-c 폐기하라는 명령입니다. POSIX.1‐2008은 일관성을 위해 이를 허용하지 않습니다.
매핑된 키 @, 글로벌, v 명령, 종료 환경 변수 및
전에, .exrc 파일.

입력 편집 in ex
역사의 일반적인 용도 중 하나 ex 편집기의 네트워크 연결 속도가 느립니다.
정식 모드에서 실행되는 편집자는 훨씬 더 적은 양의 트래픽을 필요로 할 수 있습니다.
호스트 시스템에서 처리할 수 있을 뿐만 아니라 블록 모드 터미널을 보다 쉽게 ​​지원할 수 있습니다.
이러한 이유로 POSIX.1‐2008에서는 다음을 요구합니다. ex 표준 모드 입력을 사용하여 구현됩니다.
처리는 역사적으로 수행된 것과 같습니다.

POSIX.1‐2008에는 역사적 4개 BSD 입력 편집 문자 '단어 지우기'가 필요하지 않습니다.
또는 ``문자 그대로 다음''. 이러한 이유로, 이들이 어떻게 처리되는지는 지정되지 않았습니다. ex,
하지만 필요한 효과가 있어야 합니다. 이후에 이를 해결하는 구현
줄은 또는 ‐M 문자를 사용하여 끝났으며, 그 구현은
이 처리를 위해 기본 시스템 터미널 지원에 의존하며 둘 다 준수합니다.
구현 시 기본 시스템 기능을 사용할 것을 강력히 권장합니다.
다른 시스템 텍스트 입력 인터페이스와의 호환성을 위해 가능합니다.

역사적으로, eof 문자를 사용하여 감소시켰습니다. 자동 들여쓰기 수준,
커서가 이동하여 새로운 끝을 표시합니다. 자동 들여쓰기 문자는 이동하지 않았지만
커서를 새 줄로 이동하거나 줄에서 -D 문자를 지우지 않았습니다.
POSIX.1‐2008은 커서가 같은 줄에 남아 있거나 나머지 부분이 커서가 되도록 지정하지 않습니다.
줄이 지워졌습니다. 그러나 최상의 결과를 제공하기 위해 구현을 적극 권장합니다.
가능한 사용자 인터페이스; 즉, 커서는 같은 줄에 남아 있어야 하며
해당 줄의 ‐D 문자를 지워야 합니다.

POSIX.1‐2008에는 역사적 4 BSD 입력 편집 문자 "reprint"가 필요하지 않습니다.
전통적으로 ‐R은 사용자의 현재 입력을 다시 표시했습니다. 이를 위해
이유는 라인이 완료된 후에는 기능을 구현할 수 없기 때문입니다.
사용자에 의해 종료되는 경우 POSIX.1‐2008은 이 기능에 대한 요구 사항을 제시하지 않습니다.
다음과 같은 경우에는 이 기록 기능을 사용할 수 있도록 구현해야 합니다.
수.

역사적으로 ‐Q는 문자 그대로 다음 기능을 수행하지 않았습니다. ex, 에서 그랬던 것처럼 vi.
POSIX.1‐2008은 역사적 사실을 깨뜨리는 것을 피하기 위해 역사적 관행을 준수해야 합니다. ex
스크립트 및 .exrc 파일.

eof
여부 eof 캐릭터는 즉시 수정합니다. 자동 들여쓰기 프롬프트의 문자는
구현이 시스템이 있는 경우 이를 준수할 수 있도록 지정되지 않은 상태로 둡니다.
이 기능을 지원하지 않습니다. 구현 시 라인을 수정하는 것이 좋습니다.
가능하다면 즉시 다시 표시하십시오.

취급사양은 eof 성격이 역사적 관행과 다르다
그 안에서만 eof 텍스트의 일반 문자 뒤에 오면 문자가 삭제되지 않습니다.
입력. 역사적으로 그들은 항상 폐기되었습니다.

명령 설명 in ex
역사적으로 여러 명령(예: 글로벌, v, 시각, s, 쓰다, wq, 양키, !, <,
>, &~)가 빈 파일에서 실행 가능했습니다(즉, 기본 주소가 0이었습니다).
허용된 명시적 주소는 0입니다(예: 0은 유효한 주소이거나 0,0은 유효한 주소였습니다).
범위). 0의 주소 또는 빈 파일의 명령 실행은 다음 경우에만 의미가 있습니다.
편집 버퍼에 새 텍스트를 추가하거나 명령을 작성하는 명령(사용자가 원할 수 있으므로)
빈 파일 쓰기). POSIX.1‐2008에서는 이러한 명령에 대해 이 동작을 요구하며 이를 허용하지 않습니다.
그렇지 않으면 사양의 일관성과 단순성을 위해 사용됩니다.

카운트에서 ex 명령은 역사적으로 마지막 명령보다 크지 않도록 수정되었습니다.
파일의 줄; 예를 들어, 5줄짜리 파일에서 다음 명령은 1,6 인쇄 실패하겠지만,
명령 1인쇄300 성공할 것입니다. POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

역사적으로 플래그를 사용하는 방법은 다음과 같습니다. ex 명령이 모호할 수 있습니다. 일반 역사
연습은 POSIX.1‐2008에 설명된 대로였지만 몇 가지 특별한 경우가 있었습니다. 을 위한
예를 들어, 명부, 번호인쇄 명령은 후행 주소 오프셋을 무시했습니다. ~을 위한
예, 3p ++++# 라인 3을 표시하고 3은 실행 후 현재 라인이 됩니다.
명령의. 그만큼 열 수시각 명령은 후행 오프셋과 오프셋을 모두 무시했습니다.
후행 플래그. 또한, 열 수시각 명령이 잘못 상호작용함
와 더불어 명부 편집 옵션을 설정하고 열기/시각적 중에 설정한 후 해제합니다.
세션으로 인해 vi 지정된 형식으로 행 표시를 중지합니다. 일관성을 위해
사양의 단순성과 POSIX.1‐2008은 이러한 예외를 허용하지 않습니다.
일반 규칙.

POSIX.1‐2008은 다음 단어를 사용합니다. 복사 버퍼를 논의할 때 여러 곳에서 이것은 아니다
구현을 의미합니다.

역사적으로, ex 사용자는 이 모호성 때문에 숫자 버퍼를 지정할 수 없습니다.
원인이 될 것입니다; 예를 들어 명령에서 3 삭제 2, 2가 버퍼인지 여부는 불분명합니다.
이름 또는 계산. POSIX.1‐2008은 기본적으로 과거 관행을 준수해야 하지만
확장을 배제하지 않습니다.

역사적으로 이름이 지정되지 않은 버퍼의 내용은 명령 후에 자주 삭제되었습니다.
그것은 명시적으로 영향을 미치지 않았습니다. 예를 들어 편집 전환하라는 명령
파일. 사양의 일관성과 단순성을 위해 POSIX.1‐2008에서는 이를 허용하지 않습니다.
행동.

XNUMXD덴탈의 ex 유틸리티는 역사적으로 숫자 버퍼에 액세스할 수 없었으며, 게다가
줄 삭제 ex 내용을 수정하지 않았습니다. 예를 들어, 삭제를 수행한 후
in vi, 사용자가 다음으로 전환했습니다. ex, 또 다른 삭제를 한 다음 다시 전환했습니다. viWalk Through California 프로그램,
숫자 버퍼의 내용은 변경되지 않습니다. POSIX.1‐2008에는 적합성이 필요합니다.
역사적 실천에. 숫자 버퍼는 다음에 설명되어 있습니다. ex 유틸리티
POSIX.1‐2008에서는 버퍼 설명을 단일 위치로 제한합니다.

셸 확장을 트리거하는 메타 문자 파일 인수가 과거와 일치함
실제로는 쉘 확장을 수행하는 방법도 마찬가지입니다. 제공을 원하는 구현
메타문자 세트를 유연하게 변경할 수 있는 사용자는
쉘메타 문자열 편집 옵션.

역사적으로, ex 다음에서 실행되는 명령 vi 화면이 엄격하게 새로 고쳐지지 않았을 때 화면을 새로 고쳤습니다.
그렇게 해야 합니다. 예를 들어, :!날짜 > / dev / null 화면 새로 고침이 필요하지 않습니다.
유닉스의 출력 데이터 명령에는 화면의 한 줄만 필요합니다.
POSIX.1‐2008에서는 화면을 덮어쓴 경우 화면을 새로 고쳐야 하지만
구현이 어떻게 결정을 내려야 하는지에 대한 요구 사항은 없습니다.
구현 시 화면을 표시하고 새로 고칠 수 있습니다.

줄여 쓰다
역사적 관행은 문자가 약어의 일부로 입력되는 것이었습니다.
교체가 적용되었습니다 지도 확장, 쇼 매치 편집 옵션, 추가
약어 확장 등; 즉, 논리적으로 터미널에 푸시되었습니다.
입력 큐는 단순한 교체가 아니었습니다. POSIX.1‐2008은 다음을 준수해야 합니다.
역사적 실천. 역사적 관행은 단어가 아닌 문자(
‐V로 이스케이프되지 않았음)이 단어 문자 뒤에 입력되었습니다. vi 확인할 것이다
약어. 단어 앞에 입력된 문자의 유형을 기준으로 검사가 이루어졌습니다.
검사를 실행한 단어/비단어 쌍의 문자입니다. 의 단어 문자
검사를 트리거한 단어/비단어 쌍 및 트리거 이전에 입력된 모든 문자
를 제외하고 해당 유형의 쌍이 수표에 포함되었습니다.
항상 약어를 구분하는 문자입니다.

즉, 약어가 작동하려면 ㄹㅇ 단어 문자로 끝나야 합니다.
단어에서 단어가 아닌 문자(또는 바이스 그 반대) 이것 말고도
마지막 문자와 끝에서 다음 문자 사이 ㄹㅇ, 은 있을 수 없습니다.
에 등장하는 캐릭터들 ㄹㅇ. 또한, 역사적 인용 규칙으로 인해
문자 그대로 ‐V를 입력하는 것은 불가능합니다. ㄹㅇ. POSIX.1‐2008에는 적합성이 필요합니다.
역사적 실천에. 역사적 구현에서는 약어가 사용되는 경우 사용자에게 알리지 않았습니다.
절대 사용할 수 없는 항목이 입력되었습니다. 구현을 강력히 권장합니다.

예를 들어 다음 약어가 작동합니다.

:ab (p 교체
:ab p 교체
:ab ((피 교체

다음 약어는 작동하지 않습니다.

:ab ( 교체
:ab (pp 교체

역사적 관행은 vi 콜론 명령줄에는 다음이 적용되었습니다.
인수를 포함한 약어 확장 약어 (그리고 더 흥미롭게도)
축약되지 않은 명령. 약어 확장을 하지 않는 구현이 있기 때문에
해당 명령에 대한 첫 번째 인수의 경우 이는 허용되지만 필수는 아닙니다.
POSIX.1‐2008. 그러나 다음 순서는 다음과 같습니다.

:ab
:ab 바즈

결과적으로 '의 약어가 추가되었습니다. "바즈" 문자열을 위해 "술집" 역사적으로
ex/vi, 그리고 순서는 다음과 같습니다:

:ab 푸1
:ab 푸2
:축약하지 않음 푸2

약어를 삭제했습니다 "foo1"가 아닌 "foo2". 이러한 행위는 다음에서 허용되지 않습니다.
POSIX.1‐2008은 사용자의 기대를 명백히 위반하기 때문입니다.

가 아닌 ‐V 문자를 다음과 같이 해석하는 것이 역사적 관행이었습니다.
다음 문자를 이스케이프합니다. 줄여 쓰다 명령. POSIX.1‐2008에는 다음이 필요합니다.
역사적 관행에 대한 적합성; 그러나 약어가 있다는 점에 유의해야 합니다.
을 포함하면 작동하지 않습니다.

추가
역사적으로 명령 구분 기호 뒤에 오는 모든 텍스트는 추가,
이전 단계로 돌아가기삽입하다 명령이 삽입 텍스트의 일부가 되었습니다. 예를 들어, 다음 명령에서:

:g/패턴/추가|stuff1

텍스트가 포함된 줄 "물건1" 패턴과 일치하는 각 줄에 추가됩니다. 그것
다음 항목을 입력하는 것도 역사적으로 유효합니다.

:추가|stuff1
물건2
.

그리고 그 위에 있는 텍스트는 ex 명령줄은 뒤에 삽입된 텍스트와 함께 추가됩니다.
그것. 그러나 사용자가 두 개의 종료 문자를 입력해야 하는 역사적인 버그가 있었습니다.
라인 ( '.' 라인) 이 경우 텍스트 입력 모드를 종료합니다. POSIX.1‐2008에는 다음이 필요합니다.
역사적 관행에 순응하지만, 여러 가지에 대한 역사적 필요성을 허용하지 않습니다.
라인을 종료합니다.

변화
이에 대한 근거를 참조하세요. 추가 명령. 이후 커서 위치 지정에 대한 역사적 실습
텍스트가 입력되지 않은 경우의 변경 명령은 POSIX.1‐2008에 설명되어 있습니다. 그러나 하나
System V 구현은 커서가 위치하도록 수정된 것으로 알려져 있습니다.
지정된 첫 번째 주소에 있고 첫 번째 주소 앞 줄에는 없습니다. POSIX.1‐2008
일관성을 위해 이 수정을 허용하지 않습니다.

역사적으로 이전 단계로 돌아가기 명령은 버퍼 인수를 지원하지 않았지만 일부는
구현에서는 선택적 버퍼를 지정할 수 있습니다. 이런 행동은 둘 다 아니다
POSIX.1‐2008에서는 요구되거나 허용되지 않습니다.

변화 명부 담당
일반적인 확장 ex 구현은 CD 경로 옵션을 다음과 같이 수정하세요.
접두사 디렉토리 통로 주장 chdir 이는 상대 경로 이름이고 그렇지 않습니다.
있다 '.' or ".." 첫 번째 구성 요소로. 요소 CD 경로 편집 옵션은
-구분. 초기값은 CD 경로 편집 옵션은 쉘의 값입니다
CDPATH 환경 변수. 이 기능은 POSIX.1‐2008에 포함되지 않았습니다.
역사적 관행으로 간주되는 구현에는 존재하지 않습니다.


의 역사적 구현 ex 지정된 범위 내의 줄에 대한 복사가 허용됩니다.
예를 들어, :2,5복사3 유효한 명령이었다. POSIX.1‐2008은 다음을 준수해야 합니다.
역사적 관행.

.
POSIX.1‐2008은 삭제 명령 뒤에
플래그는 중간에 문자 없이 표시됩니다. 예를 들어:

1dp 첫 번째 줄을 삭제하고 두 번째 줄을 인쇄합니다.

1딥 ~에 관해서는 1dp.

1d 첫 번째 줄을 삭제하고 버퍼에 저장합니다. p.

1d p1l (Pee-one-ell.) 첫 번째 줄을 삭제하여 버퍼에 저장합니다. p, 그리고 라인을 나열
그것은 두 번째였습니다.

편집
역사적으로 어떤 ex 명령은 다음과 같이 입력될 수 있습니다. +명령 인수 편집 명령,
비록 일부(예를 들어, 삽입하다추가) 역사적 사실을 혼란스럽게 하는 것으로 알려져 있다
구현. 사양의 일관성과 단순성을 위해 POSIX.1‐2008에서는 다음을 요구합니다.
모든 명령은 인수로 지원됩니다. 편집 명령.

역사적으로 명령 인수는 현재 줄을 마지막 줄로 설정하여 실행되었습니다.
파일의 여부에 관계없이 편집 명령이 시각적 모드에서 실행되었는지 여부.
POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

역사적으로 +명령 에 지정 편집다음 것 명령은 다음으로 구분되었습니다.
먼저 를 입력했는데 인용할 방법이 없었습니다. 일관성을 위해 POSIX.1‐2008에서는 다음을 요구합니다.
그 평소 ex 백슬래시 인용이 제공됩니다.

역사적으로 +명령 편집 명령에 대한 인수에는 파일 이름이 필요했습니다.
또한 지정되어야 합니다. 예를 들어, 편집 : +100 항상 실패할 것입니다. 일관성과
사양의 단순성, POSIX.1‐2008에서는 이 사용이 실패하는 것을 허용하지 않습니다.
이유.

역사적으로 마지막으로 편집된 파일의 커서 위치만 기억되었습니다.
편집자. POSIX.1‐2008에서는 이를 지원해야 합니다. 그러나 구현은
이전에 편집한 파일의 커서 위치를 기억하고 복원하는 것이 허용됩니다.

입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
의 역사적 버전 ex 편집자 파일 명령은 현재 줄과 줄 수를 표시합니다.
파일이 비어 있을 때 편집 버퍼의 행은 0이고, vi ‐G 명령
편집 버퍼의 현재 줄과 줄 수를 1로 표시했습니다.
상황. POSIX.1‐2008은 이러한 불일치를 허용하지 않고 대신 메시지를 요구합니다.
파일이 비어 있음을 나타내는 표시가 나타납니다.

글로벌
2단계 작업은 글로벌v 명령은 다음을 의미하는 것이 아닙니다.
구현, 작업에 필요한 결과만 표시됩니다.

현재 행과 열은 개별적으로 지정된 대로 설정됩니다. ex 명령. 이것
요구 사항은 누적됩니다. 즉, 현재 행과 열은 모든 행을 추적해야 합니다.
에 의해 실행되는 명령 글로벌 or v 명령.

끼워 넣다
이에 대한 근거를 참조하세요. 추가 명령.

역사적으로, 삽입하다 주소가 0인 경우에는 사용할 수 없습니다. 즉, 편집할 때가 아닙니다.
버퍼가 비어 있었습니다. POSIX.1‐2008에서는 이 명령이 다음과 일관되게 작동해야 합니다.
추가 명령.

가입하기
의 행동 어울리다 특수 문자와 관련된 명령은 다음에 대해서만 정의됩니다.
POSIX 로케일은 마침표 뒤의 정확한 공백 양이 다르기 때문입니다. ~에
일본어는 필요하지 않으며, 프랑스어에서는 공백 하나만 필요합니다.

명부
역사적 출력 명부 명령이 잠재적으로 모호할 수 있습니다. 표준
개발자들은 역사적 사실을 고수하는 것보다 이를 수정하는 것이 더 중요하다고 믿었습니다.
연습 및 POSIX.1‐2008에는 명확한 출력이 필요합니다.

지도
역사적으로 명령 모드 맵은 명령 이름에만 적용되었습니다. 예를 들어, 만약
문자 '엑스' 에 매핑되었습니다 '와이', 명령 fx 을 검색했다 '엑스' 성격이 아니라
'와이' 성격. POSIX.1‐2008에서는 이 동작이 필요합니다. 역사적으로 ‐V를 다음과 같이 입력합니다.
a의 첫 번째 문자 vi 명령이 오류였습니다. 여러 구현이 확장되었습니다.
의미론 vi -V는 후속 명령 문자가 다음임을 의미합니다.
매핑되지 않았습니다. 이는 POSIX.1‐2008에 따라 허용되지만 필수는 아닙니다. 그럼에도 불구하고,
‐V는 문자 시퀀스에서 두 번째 이상의 문자를 이스케이프합니다.
일치 지도 명령 또는 텍스트 입력 모드의 모든 문자는 역사적 관행이며
입력한 키가 지도와 일치하는 것을 중지합니다. POSIX.1‐2008은 다음을 준수해야 합니다.
역사적 관행.

역사적 구현에서는 숫자를 다음으로 사용할 수 있었습니다. 지도 명령 ㄹㅇ, 하지만
지도를 무시했다. POSIX.1‐2008에서는 매핑된 숫자를 무시하지 않아야 합니다.

역사적 구현 지도 명령이 허용되지 않았습니다 지도 다음과 같은 명령
첫 번째 문자가 인쇄 가능한 경우 길이가 한 문자 이상입니다. 이 행동
POSIX.1‐2008에서는 허용되지만 필수는 아닙니다.

역사적으로 매핑된 문자는 매핑 편집 옵션이 설정되지 않았거나
매핑된 문자의 접두사가 매핑 문자와 일치했습니다. 예를 들어,
지도:

:지도 ab ABCD

등장인물 "아" 그대로 사용되었으며 다시 매핑되지 않았지만 문자는 "CD" 했다
해당하는 경우 매핑됩니다. 이로 인해 무한 루프가 발생할 수 있습니다. vi 매핑 메커니즘.
POSIX.1‐2008은 역사적 관행을 준수해야 하며 그러한 루프는
중단 가능.

텍스트 입력 맵에는 확장과 동일한 문제가 있었습니다. ㄹㅇ 위한 ex 지도!매핑 해제!
명령을 내린 것처럼 ex 줄여 쓰다축약하지 않다 명령. 이에 대한 근거를 참조하세요. ex
줄여 쓰다 명령. POSIX.1‐2008은 일부 역사적 관행의 유사한 수정을 요구합니다.
위한 지도지도 해제 명령은 설명된 대로 줄여 쓰다축약하지 않다 명령.

역사적으로, 지도다른 것의 하위 집합이었던 것 지도에 따라 다르게 행동했습니다.
정의된 순서입니다. 예를 들어:

:지도! ab 짧은
:지도! 알파벳

항상 문자를 번역합니다 "아""짧은", 속도에 관계없이
문자 "알파벳" 입력되었습니다. 입장 순서가 뒤바뀐 경우:

:지도! 알파벳
:지도! ab 짧은

등장인물 "아" 편집자가 일시 중지되어 완료를 기다리게 됩니다. '씨'
문자이며 문자는 결코 매핑되지 않을 수 있습니다. "짧은". 일관성과
사양의 단순성, POSIX.1‐2008에서는 가장 짧은 일치 항목을 사용해야 합니다.
시간.

편집자가 캐릭터가 작업을 완료할 때까지 기다리는 데 소요되는 시간 ㄹㅇ is
시스템의 타이밍 기능은 종종 부정확하고 가변적이기 때문에 지정되지 않습니다.
연결 속도와 같은 다른 요인에 따라 달라질 수 있습니다. 시간은
사용자가 시퀀스를 완료할 수 있을 만큼 길지만,
사용자는 기다려야 합니다. 일부 구현 vi 을 추가했습니다 키타임 옵션,
사용자는 편집자가 완료를 기다리는 시간을 0,1초로 설정할 수 있습니다.
문자. 매핑된 터미널 기능과 커서 키는 로 시작하는 경향이 있기 때문입니다.
문자이며 는 키 엔딩입니다. vi 텍스트 입력 모드, 지도로 시작하는 것
문자는 일반적으로 이 제한 시간에서 면제되거나 적어도 시간 초과됩니다.
다르게.

표시
역사적으로 사용자는 ``이전 컨텍스트'' 표시를 명시적으로 설정할 수 있었습니다. ~ 안에
게다가, ex 명령 '''` 그리고 vi 명령 '', ``, `''` 모두 언급됨
같은 마크. 또한 다음 명령을 사용하면 이전 컨텍스트 표시가 설정되지 않았습니다.
마크와 관련된 주소 설정이 실패했습니다. POSIX.1‐2008에는 다음이 필요합니다.
역사적 관행에 따른다. 역사적으로 표시된 줄이 삭제된 경우 해당 표시는
도 삭제되었지만 변경이 취소되면 다시 나타납니다. POSIX.1‐2008에는 다음이 필요합니다.
역사적 관행에 대한 일치.

을 설정하는 특별 이벤트에 대한 설명 `' 표시가 역사적 일치함
관행. 예를 들어, 역사적으로 다음 명령은 /아/,/비/ 설정하지 않았다 `' 표시가 있지만
명령 /a/,/b/삭제 했어요.

다음 보기
역사적으로 어떤 ex 명령은 다음과 같이 입력될 수 있습니다. +명령 인수 다음 것 명령,
비록 일부(예를 들어, 삽입하다추가) 역사적 사실을 혼란스럽게 하는 것으로 알려져 있다
구현. POSIX.1‐2008에서는 모든 명령이 허용되고 다음과 같이 작동하도록 요구합니다.
지정된. 그만큼 다음 것 명령은 두 개 이상의 파일을 허용할 수 있으므로 다음과 같이 사용합니다.

다음 것 `ls [알파벳] `

유효합니다. 다음에 대해 유효할 필요는 없습니다. 편집 or 읽기 예를 들어 명령은
파일 이름은 하나만 예상하십시오.

역사적으로 다음 것 명령이 다른 명령과 다르게 동작했습니다. :되감기 그 점에서 명령을 내리다
다음과 같은 경우 force 플래그를 무시합니다. 자동 쓰기 플래그가 설정되었습니다. 일관성을 위해 POSIX.1‐2008은
이런 행동을 허용하지 마세요.

역사적으로 다음 것 명령은 파일이 편집된 적이 없는 것처럼 커서를 배치했습니다.
전에는 상관없이. POSIX.1‐2008은 일관성을 위해 이 동작을 허용하지 않습니다.
편집 명령.

대응물을 제공하려는 구현 다음 것 편집한 명령
이전 파일에서 해당 명령을 사용했습니다. 이전의], 아니오 파일 논쟁. POSIX.1‐2008
이 명령이 필요하지 않습니다.

엽니다
역사적으로 열 수 다음과 같은 경우 명령이 실패합니다. 열 수 편집 옵션이 설정되지 않았습니다.
POSIX.1‐2008에서는 다음을 언급하지 않습니다. 열 수 편집 옵션이며 이 동작이 필요하지 않습니다.
일부 역사적 구현에서는 개방형 또는 시각적 모드에서 개방형 모드로 들어가는 것을 허용하지 않습니다.
오직 ex 방법. 일관성을 위해 POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

역사적으로 명령줄에서 개방형 모드로 진입했습니다(즉, vi +열기) 결과
비정상적인 행동; 예를 들어, ex 파일 및 세트 명령 및 vi 명령
‐G가 작동하지 않았습니다. 일관성을 위해 POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

역사적으로 열 수 명령만 허용됨 '/' 검색에 사용할 문자
패턴 구분자. 일관성을 위해 POSIX.1‐2008에서는 검색 구분 기호를 사용해야 합니다.
s, 글로벌v 명령도 허용됩니다.

보존
XNUMXD덴탈의 보존 명령은 역사적으로 파일이 수정되지 않은 것으로 간주되지 않습니다.
편집기를 종료할 수 있는 향후 명령의 목적. POSIX.1‐2008에는 다음이 필요합니다.
역사적 관행에 대한 일치.

기록 문서에 따르면 보존이 유지될 때 메일이 사용자에게 전송되지 않았습니다.
실행; 그러나 이 경우에는 과거 구현에서 메일을 보냈습니다. POSIX.1‐2008
역사적 구현을 ​​준수해야 합니다.

인쇄
NUL의 작성 인쇄 명령은 특별한 경우로 지정되지 않습니다.
표준 개발자는 요구하고 싶지 않았습니다 ex NUL 문자를 지원합니다. 역사적으로,
문자는 다음과 같은 ARPA 표준 매핑을 사용하여 표시되었습니다.

1. 인쇄 가능한 문자는 그대로 둡니다.

2. \177보다 작은 제어 문자는 다음과 같이 표시됩니다. '^' 그 다음에는 캐릭터
오프셋에서 '@' ASCII 맵의 문자; 예를 들어 \007은 다음과 같이 표시됩니다.
'^지'.

3. \177은 다음과 같이 표현됩니다. '^' 다음 '?'.

XNUMX번째 비트가 설정된 문자 표시는 덜 표준적이었습니다. 기존의
구현에서는 0진수(00x000), XNUMX진수(\XNUMX) 및 메타비트 표시를 사용합니다. (후자의
8번째 비트가 두 문자로 설정된 바이트를 표시했습니다. "엠-" 다음에
위에서 설명한 대로 7비트 디스플레이를 사용합니다.) 아마도 후자가 가장 적합하다고 주장할 것입니다.
역사적 관행으로 사용되었기 때문이다. -v 4 BSD 및 4 BSD 파생 옵션
버전의 방법 1980년부터 유틸리티.

POSIX.1‐2008에서는 특정 표시 형식이 필요하지 않습니다.

가능한 경우 ASCII 문자 세트에 대한 명시적인 의존성을 피했습니다.
디스플레이에 "구현에 따라 정의된 다중 문자 시퀀스"라는 문구 사용
예를 들어, 역사적 사용법보다 인쇄할 수 없는 문자를 선호합니다. "^나"
에 대해. 구현은 역사적 관행을 따르도록 권장됩니다.
분기할 강력한 이유가 없습니다.

역사적으로 모든 ex 문자로 시작하는 명령 'NS' 다음을 사용하여 입력할 수 있습니다.
대문자 버전의 명령; 예를 들어, 인쇄], 보존하다]놓다] 모든 하였다
유효한 명령 이름. POSIX.1‐2008은 이러한 역사적 관행을 허용하지만 요구하지는 않습니다.
왜냐하면 명령의 대문자 형태는 일부 구현에서 다른 목적으로 사용되기 때문입니다.

넣어
역사적으로, ex 놓다 오픈 모드나 비주얼 모드에서 실행되는 명령은
개방형 또는 시각적 모드 P 명령, 버퍼의 이름이 지정되고 문자 모드에서 잘린 경우
같은 p 버퍼의 이름이 지정되고 라인 모드에서 절단된 경우 명령입니다. 이름이 없는 경우
버퍼는 텍스트의 소스이고, 텍스트를 가져온 전체 줄은
보통 놓다, 버퍼는 마치 라인 모드인 것처럼 처리되었지만
극도로 변칙적인 행동. 또한, Q 전환하라는 명령 ex 모드 및
그런 다음 놓다 종종 오류가 발생했습니다(예: 텍스트를 추가하는 등).
버퍼의 (가정) 내용과 관련이 없습니다. 일관성과 단순성을 위해
사양, POSIX.1‐2008에서는 이러한 동작을 허용하지 않습니다. 모두 ex 놓다 명령은
라인 모드에서 작동하는 데 필요하며 버퍼의 내용은 다음과 같이 변경되지 않습니다.
편집기 모드를 변경합니다.

읽기
역사적으로, ex 읽기 개방형 또는 시각적 모드에서 실행되는 명령, 빈 모드에서 실행됨
파일의 첫 번째 줄로 빈 줄을 남겨 두었습니다. 일관성과 단순성을 위해
사양, POSIX.1‐2008에서는 이 동작을 허용하지 않습니다. 역사적으로, 읽기 오픈
또는 프로그램의 시각적 모드는 첫 번째 줄이 아닌 읽은 마지막 줄에 커서를 둡니다. 을 위한
일관성, POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

의 역사적 구현 ex 실행취소할 수 없었습니다 읽기 다음에서 읽는 명령
프로그램의 출력. 일관성을 위해 POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

역사적으로 exvi 성공 후 메시지 읽기 or 쓰다 지정된 명령
``바이트''가 아닌 ``문자''입니다. POSIX.1‐2008에서는 바이트 수가 다음과 같아야 합니다.
멀티바이트에서는 어려울 수 있으므로 문자 수가 아닌 표시됩니다.
읽은 문자 수를 결정하는 구현입니다. 구현이 권장됩니다
사용자에게 표시되는 메시지를 명확히 합니다.

역사적으로 FIFO를 제외하고 일반 유형 이외의 파일에 대한 읽기는 허용되지 않았습니다.
파일을 읽을 수 있었습니다. (아마도 파일이 존재하지 않았기 때문일 것입니다. exvi 했다
원래 작성됨). 왜냐하면 역사적 ex 평가 읽다!읽기 ! 동등하게,
강제로 읽기를 수행하는 선택적 방법은 없습니다. POSIX.1‐2008은 허용하지만 허용하지 않습니다.
이 동작이 필요합니다.

복구
편집기의 일부 역사적 구현을 ​​통해 사용자는 편집 버퍼를 복구할 수 있었습니다.
이전 편집 세션의 콘텐츠를 삭제한 다음 해당 콘텐츠를 저장하지 않고 종료합니다(또는
명시적으로 삭제합니다). 편집 버퍼를 요구하는 POSIX.1‐2008의 의도
이미 수정된 것으로 처리하는 것은 이러한 사용자 오류를 방지하기 위한 것입니다.

되감기
역사적 구현은 다음을 지원했습니다. 되감기 사용자가 편집 중일 때 명령
목록의 첫 번째 파일; 즉, 해당 파일은 되감기 명령이 편집됩니다. POSIX.1‐2008
역사적 관행에 대한 준수가 필요합니다.

대용품
역사적으로, ex 받아들였다 r 옵션을 s 명령. 효과는 r 옵션은
명령에 사용된 마지막 정규식을 패턴으로 사용합니다. ~
명령. 그만큼 r POSIX.1‐2008에서는 옵션이 필요하지 않습니다. 역사적으로, cg 옵션
전환되었습니다. 예를 들어 다음 명령은 :s/abc/def/ 와 같았다 s/abc/def/ccccgggg.
사양의 단순화를 위해 POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

물결표 명령은 마지막 검색 RE를 대체하는 데 자주 사용됩니다. 예를 들어,
순서:

s/레드/블루/
/초록
~

전에, ~ 명령은 다음과 같습니다:

S/그린/블루/

역사적으로, ex 다음 양식을 모두 수락했습니다.

s/abc/def/
s/abc/def
초/abc/
s/abc

POSIX.1‐2008은 이러한 역사적 관행을 준수해야 합니다.

XNUMXD덴탈의 s 명령은 다음을 가정합니다. '^' 문자는 단일 열만 차지합니다.
표시하다. 대부분의 exvi 사양에서는 가
디스플레이의 단일 열. 이것이 아닌 것으로 알려진 문자 세트가 없습니다.
사실.

역사적으로 대체 명령의 최종 열 위치는 이전 항목을 기반으로 했습니다.
기둥 이동; 패턴을 검색한 후 대체 항목을 검색하면 해당 열이 종료됩니다.
위치는 변경되지 않고 0 명령 뒤에 대체가 오면 열이 변경됩니다.
이 아닌 첫 번째 위치로 이동합니다. 사양의 일관성과 단순성을 위해
POSIX.1‐2008에서는 마지막 열 위치가 항상 첫 번째로 설정되도록 요구합니다.
이 아닙니다.

세트
과거 구현에서는 다음이 발생할 때마다 모든 옵션이 다시 표시되었습니다. 모든
예어. POSIX.1‐2008에서는 이 동작을 허용하지만 필수는 아닙니다.

꼬리표
어디에 있는지에 대한 요구 사항은 없습니다. exvi 태그가 참조하는 파일을 찾습니다.
기입. 역사적 관행은 다음에서 발견된 길을 찾는 것이었습니다. 태그 파일 기반
현재 디렉토리. 일부 구현에서 발견되는 유용한 확장은 다음과 같습니다.
항목을 보유한 태그 파일이 포함된 디렉토리에도 있습니다. 요구 사항은 없습니다
태그 파일의 태그에 대한 참조가 사용되는지 확인합니다. 이는 고의적인 것입니다.
태그에 대한 태그 파일의 여러 항목과 같은 확장을 허용하기 위해.

사용자는 종종 다양한 태그 파일을 지정하기 때문에 그 중 일부는 관련성이 있을 필요가 없습니다.
또는 특정 시간에 존재하는 경우 POSIX.1‐2008에서는 문제에 대한 오류 메시지가 필요합니다.
태그 파일은 요청한 태그를 찾을 수 없는 경우에만 표시되며, 그 이후에는 한 번만 표시됩니다.
그 때마다 태그 편집 옵션이 변경되었습니다.

현재 편집 버퍼가 수정되지 않아야 한다는 요구 사항은 파일이 수정되지 않은 경우에만 필요합니다.
태그 항목에 표시된 것은 현재 파일과 동일하지 않습니다(현재 파일에 정의된 대로).
경로명). 역사적으로 파일 이름이 변경되면 파일이 다시 로드되었습니다.
마치 파일 이름이 현재 경로 이름과 다른 것처럼 보입니다. 일관성과 단순성을 위해
사양에 따르면 POSIX.1‐2008에서는 이 동작을 허용하지 않으므로 이름을 다음과 같이 지정해야 합니다.
결정의 유일한 요소.

역사적으로, vi 현재 커서부터 현재 파일의 태그만 검색합니다.
파일의 끝이므로, 랩스캔 옵션이 설정되지 않았습니다. 이전에 태그가 발생했습니다.
현재 커서를 찾을 수 없습니다. POSIX.1‐2008은 이를 버그로 간주하고 구현
관계없이 파일에서 첫 번째 항목을 검색해야 합니다.

취소
XNUMXD덴탈의 취소 설명에서는 의도적으로 '수정된'이라는 단어를 사용합니다. 그만큼 취소 명령은 아니다
편집 버퍼의 내용을 대체하는 명령을 실행 취소하기 위한 것입니다. 편집,
다음 것, 태그복구.

커서 위치 지정 취소 명령은 역사적으로 일관성이 없었습니다. vi때로는
원래 커서 위치를 복원하려고 시도 중입니다(글로벌, 취소v 명령) 및
때로는 지도가 있는 경우 추가되거나 변경된 마지막 줄에 커서를 놓는 경우도 있습니다.
첫 번째 대신. POSIX.1‐2008은 일관성과 일관성을 위해 단순화된 동작을 요구합니다.
사양의 단순성.

버전
XNUMXD덴탈의 버전 널리 받아들여지는 명령이 없기 때문에 명령을 정확하게 지정할 수 없습니다.
버전 정보에 무엇을 포함해야 하는지 정의합니다. 구현이 권장됩니다
합리적으로 지능적인 일을 하는 것.

쓰다
역사적으로 exvi 성공 후 메시지 읽기 or 쓰다 지정된 명령
``바이트''가 아닌 ``문자''입니다. POSIX.1‐2008에서는 바이트 수가 다음과 같아야 합니다.
멀티바이트에서는 어려울 수 있으므로 문자 개수가 아닌 표시됩니다.
쓰여진 문자 수를 결정하는 구현입니다. 구현은
사용자에게 표시되는 메시지를 명확히 하는 것이 좋습니다.

구현이 추가 작업을 수행할 수 있도록 구현 정의 테스트가 허용됩니다.
체크 무늬; 예를 들어 잠금이나 파일 수정 시간 등이 있습니다.

역사적으로 존재하지 않는 파일에 추가하려고 하면 오류가 발생했습니다. 남겨졌어
구현을 허용하기 위해 POSIX.1‐2008에 지정되지 않은 쓰다 성공해라 그래서
추가 의미론은 역사적 의미와 유사합니다. CSH.

역사적인 vi 빈 편집 버퍼를 쓸 수 있습니다. 그러나 그 이후로 vi 있어
``빈'' 파일을 처리하는 방법은 편집 버퍼에 항상 한 줄을 두는 것이었습니다.
어쨌든 그것은 빈 줄 하나의 파일로 작성되었습니다. POSIX.1‐2008은 허용하지 않습니다.
이 행동.

역사적으로, ex 표준 출력과 표준 오류를 당시의 값으로 복원했습니다. ex
프로그램에 쓰기가 수행되기 전에 호출되었습니다. 터미널을 방해할 수 있습니다.
일부 터미널에서는 보안 문제가 될 수도 있습니다. POSIX.1‐2008은 그렇지 않습니다.
이를 허용하려면 프로그램 출력을 캡처하고 표시해야 합니다. ex
인쇄 명령.

조정
역사적으로 줄 수는 다음 값으로 설정되었습니다. 스크롤 유형인 경우 옵션
문자가 파일 끝이었습니다. 이 기능은 오랫동안 대부분의 역사적 구현에서 중단되었습니다.
그러나 이전에는 어디에도 문서화되어 있지 않습니다. 이러한 이유로 POSIX.1‐2008은 단호히
조용한.

역사적으로 z 명령은 에 민감했고 z +z - 다른 일을 했어
보다 z+z− 유형을 플래그와 구별할 수 없기 때문입니다. (명령은 z .
z = 역사적으로 유효하지 않았습니다.) POSIX.1‐2008은 이 역사적 내용을 준수해야 합니다.
연습.

역사적으로 z 명령은 에 더욱 민감했습니다. 계산 할 수 없었다
으로 구분; 예를 들어 다음 명령은 z= 5z− 5 또한 무효였습니다. 왜냐하면
계산 유형 문자나 플래그와 관련하여 모호하지 않습니다.
POSIX.1‐2008에서 허용됩니다.

탈출
역사적으로, ex 필터 명령은 명령의 표준 출력만 읽습니다.
평소처럼 표준 오류가 터미널에 나타납니다. 그만큼 vi 그러나 유틸리티는 둘 다 읽습니다.
표준 출력과 표준 오류. POSIX.1‐2008에서는 두 가지 모두에 대해 후자의 동작이 필요합니다. ex
vi, 일관성을 위해.

변화 좌회전 변화 권리
역사적으로는 시프트 문자를 추가하여 효과를 높이는 것이 가능했습니다.
명령; 예를 들어, << 내어쓰기(또는 >>> 들여쓰기) 라인 3단계 들여쓰기
기본값 1 대신. POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

-디
역사적으로 ‐D 명령은 프롬프트를 지워서 사용자에게
편집 버퍼의 줄이 끊어지지 않게 표시됩니다. 이는 POSIX.1‐2008에서는 요구되지 않습니다.
가능하다면 이를 제공하도록 구현하는 것이 좋습니다. 역사적으로 ‐D
명령을 받은 다음 무시했습니다. 계산. POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

쓰다 라인 번호
역사적으로 ex = 명령이 실행될 때 ex 빈 편집 버퍼의 모드, 보고됨
0이고 개방형 또는 시각적 모드에서는 1이 보고됩니다. 일관성과 단순성을 위해
사양, POSIX.1‐2008에서는 이 동작을 허용하지 않습니다.

실행하다
역사적으로, ex 텍스트 입력 명령의 포함을 올바르게 처리하지 못했습니다(즉,
추가, 삽입하다이전 단계로 돌아가기) 실행된 버퍼에 있습니다. POSIX.1‐2008에서는 이를 허용하지 않습니다.
일관성을 위해 제외합니다.

역사적으로 실행 중인 버퍼의 논리적 내용은 다음과 같은 경우 변경되지 않았습니다.
버퍼 자체는 실행 중인 명령에 의해 수정되었습니다. 즉, 버퍼 실행이
자체 수정 코드를 지원하지 않습니다. POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

역사적으로 @ 명령은 다양한 행을 사용했으며 @ 버퍼는 당 한 번씩 실행되었습니다.
라인, 현재 라인('.')는 지정된 각 줄에 설정됩니다. POSIX.1‐2008에는 다음이 필요합니다.
역사적 관행에 대한 일치.

일부 역사적 구현에서는 버퍼 실행 중에 오류가 발생했는지 알지 못했습니다.
이는 라인 범위를 지정하는 기능과 결합됩니다. ex @ 명령, 그것을 만든다
그들을 떨어뜨리는 것은 사소한 일이다 core. POSIX.1‐2008에서는 구현을 중지해야 합니다.
오류가 발생하거나 지정된 라인이 존재하지 않거나
편집 버퍼 자체의 내용이 교체됩니다(예를 들어, 버퍼는 ex
편집 : 명령).

정규병 in ex
역사적 관행은 마지막 부분의 대체 부분에 있는 문자가 s 명령-
즉, '~' 정규식에서는 더 이상 진행되지 않았습니다.
정규식 엔진으로 확장되었습니다. 따라서 문자에 문자열이 포함된 경우
"ㅏ.," 그들은 일치할 것이다 'A' 다음 ".," 하지 'A' 그 뒤에는 임의의 문자가 옵니다.
POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

편집 옵션 in ex
다음 단락에서는 이전에 있었던 일부 편집 옵션의 과거 동작을 설명합니다.
어떤 이유로든 POSIX.1‐2008에는 포함되지 않았습니다. 구현이 강력하다
여기에 설명된 기능이 완전히 지원되는 경우에만 이 이름을 사용하는 것이 좋습니다.

extended XNUMXD덴탈의 extended 편집 옵션은 일부 구현에서 사용되었습니다. vi 을 사용하여
기본 정규식 대신 확장 정규식 이 옵션
널리 사용되는 역사적 관행이 아니기 때문에 POSIX.1‐2008에서는 생략되었습니다.

플래시 XNUMXD덴탈의 플래시 편집 옵션으로 인해 경고음이 울리는 대신 화면이 깜박이는 현상이 발생했습니다.
오류가 발생했습니다. 이 옵션은 POSIX.1‐2008에서 찾을 수 없기 때문에 생략되었습니다.
일부 역사적인 구현.

하드 탭 XNUMXD덴탈의 하드 탭 편집 옵션은 역사적으로 사이의 열 수를 정의했습니다.
하드웨어 탭 설정. 이 옵션은 POSIX.1‐2008에서 생략되었습니다.
더 이상 일반적으로 유용하지 않다고 생각됩니다.

모델린 XNUMXD덴탈의 모델린 (가끔 이름이 붙기도 함 모델라인) 편집 옵션이 역사적으로 발생했습니다. ex or
vi 편집기 명령에 대한 파일의 첫 번째 줄과 마지막 줄 5개를 읽습니다. 이것
옵션은 보안 문제이므로 공급업체에서는 이를 삭제할 것을 적극 권장합니다.
역사적 구현에서.

열 수 XNUMXD덴탈의 열 수 편집 옵션은 역사적으로 허용되지 않았습니다. ex 열 수시각 명령.
이 편집 옵션은 다음 명령에 필요하므로 생략되었습니다.
POSIX.1-2008.

최적화 XNUMXD덴탈의 최적화 편집 옵션은 역사적으로
더 이상 인쇄할 때 자동으로 문자를 수행하지 않는 터미널
출력의 논리적 라인이 하나 이상입니다. 이 옵션은 POSIX.1‐2008에서 생략되었습니다.
이는 주소 지정이 가능한 커서가 없는 터미널용으로 만들어졌기 때문입니다.
거의 사용되지 않습니다.

지배자 XNUMXD덴탈의 지배자 편집 옵션은 일부 구현에서 사용되었습니다. vi 제시하다
사용자의 현재 행/열 눈금자. 이 옵션은 POSIX.1‐2008에서 생략되었습니다.
왜냐하면 그것은 널리 퍼진 역사적 관행이 아니기 때문이다.

출처 XNUMXD덴탈의 출처 편집 옵션이 역사적으로 발생함 ex or vi 시작 파일 소스로
편집기를 실행하는 사용자가 아닌 다른 사용자가 소유한 것입니다. 이 옵션은
보안 문제이므로 공급업체는 이를 제거할 것을 강력히 권장합니다.
구현.

시간 제한 XNUMXD덴탈의 시간 제한 편집 옵션은 역사적으로 (현재 표준) 기능만 활성화했습니다.
매크로의 일부일 수 있는 키를 반환하기 전에 짧은 기간 동안 기다립니다.
이 기능은 이제 동작이 표준이기 때문에 POSIX.1‐2008에서 생략되었습니다.
널리 유용하지 않으며 문서화되는 경우도 거의 없습니다.

말 수가 많은 XNUMXD덴탈의 말 수가 많은 편집 옵션은 일부 구현에서 사용되었습니다. vi 원인 vi
일반적인 오류에 대한 오류 메시지를 출력합니다. 예를 들어,
단지 경고만 하는 대신 커서가 줄의 시작이나 끝을 지나
화면. (역사적인 vi 터미널에 경고만 하고 메시지는 표시하지 않았습니다.
그러한 오류에 대해서는. 기록 편집기 옵션 간결한 언제를 선택하지 않았나요?
현재 오류 메시지가 표시되지만 기존 오류 메시지가 어느 정도 만들어졌습니다.
verbose.) 이 옵션은 널리 사용되지 않기 때문에 POSIX.1‐2008에서 생략되었습니다.
역사적 실천; 그러나 구현자는 원하는 경우 이를 사용하는 것이 좋습니다.
순진한 사용자에게 오류 메시지를 제공합니다.

랩렌 XNUMXD덴탈의 랩렌 편집 옵션은 일부 구현에서 사용되었습니다. vi 지정하다
오른쪽이 아닌 왼쪽 여백에서 측정되는 자동 여백
여유. 이는 여러 화면 크기를 사용하여 편집할 때 유용합니다.
단일 파일. 이 옵션은 POSIX.1‐2008에서 생략되었습니다.
광범위한 역사적 관행; 그러나 구현자는 이를 사용하는 것이 좋습니다.
이 기능을 추가하면.

자동 들여쓰기, ai
역사적으로 명령은 0a 현재 상태에 관계없이 자동 들여쓰기를 수행하지 않았습니다.
라인 1의 들여쓰기. POSIX.1‐2008에서는 라인 1에 있는 모든 들여쓰기가
익숙한.

자동 인쇄, ap
역사적으로 자동 인쇄 편집 옵션이 완전히 일관되지 않았거나 전적으로
편집 버퍼에 대한 수정. 예외는 다음과 같습니다 읽기 명령(다음에서 읽을 때
파일이지만 필터에서는 발생하지 않음) 추가, 이전 단계로 돌아가기, 삽입하다, 글로벌v 명령, 모두
영향을 받지 않은 것 자동 인쇄태그 영향을 받은 명령
자동 인쇄. POSIX.1‐2008은 역사적 관행을 준수해야 합니다.

역사적으로 자동 인쇄 입력된 여러 명령 중 마지막 명령에만 적용되는 옵션
구분 기호를 사용합니다. 예를 들어, 삭제 은 다음의 영향을 받았습니다. 자동 인쇄,
비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만 삭제|버전 은 그렇지 않았습니다. POSIX.1‐2008은 과거 버전을 준수해야 합니다.
연습.

자동 쓰기, aw
추가 '!' 에 문자 ex 다음 것 자동 쓰기 수행을 방지하는 명령
역사적 구현에서는 지원되지 않았습니다. POSIX.1‐2008에서는 다음 동작을 요구합니다.
다른 것과 일치하다 ex 일관성을 위한 명령

무시, ic
대소문자를 구분하지 않는 일치의 역사적 구현( 대소문자 무시 편집 옵션) 리드
범위 표현식에 대문자가 사용된 경우 반직관적인 상황이 발생합니다.
역사적으로 프로세스는 다음과 같습니다.

1. 편집 버퍼에서 텍스트 한 줄을 가져옵니다.

2. 텍스트 라인에서 대문자를 소문자로 변환합니다.

3. 문자 클래스를 제외하고 정규 표현식에서 대문자를 소문자로 변환
명세서.

4. 정규식을 텍스트와 일치시킵니다.

이는 다음을 의미합니다. 대소문자 무시 실제로 텍스트는 다음과 같습니다.

XNUMXD덴탈의 방법 마을 on 전에, 매트

와 일치할 것이다

/^the/

하지만 다음으로는 그렇지 않습니다:

/^[A−Z]그/

정규식을 구현하는 다른 명령과의 일관성을 위해 POSIX.1‐2008은 다음을 수행합니다.
이런 행동을 허용하지 마세요.

단락, 파라
ISO POSIX‐2:1993 표준이 기본값을 만들었습니다. 단락섹션 편집 옵션
구현 정의, 역사적으로 UNIX 시스템을 지향했다고 주장 troff
텍스트 포맷터와 ``휴대용 사용자''는 {, }, [[, ]], () 명령
개방형 또는 시각적 모드를 사용하면 커서가 예상치 못한 위치에서 멈추게 됩니다. POSIX.1‐2008은 다음을 지정합니다.
특이한 그룹화로 인해 POSIX 로케일의 값(그룹화되었을 때만 작동함)
한 번에 두 문자로 변환)은 범용으로 사용할 수 없음을 의미합니다.
상관없이 움직임.

읽기 전용
구현 시 사용자에게 가능한 최상의 정보를 제공하도록 권장됩니다.
파일의 읽기 전용 상태를 고려하지 않아야 한다는 점을 제외하고
현재 프로세스의 특수 권한입니다. 이는 사용자에게 안전망을 제공합니다.
추가로 실행하는 경우에도 읽기 전용 파일을 강제로 덮어써야 합니다.
특권.

XNUMXD덴탈의 읽기 전용 편집 옵션 사양은 대부분 역사적 관행을 따릅니다. 유일한
차이점은 과거 구현에서는 사용자가
읽기 전용 어떤 이유로 파일이 이미 읽기 전용으로 표시된 경우 편집 옵션
따라서 읽기 전용 다음에 내용을 편집할 때 옵션을 수정하세요.
편집 버퍼가 교체되었습니다. 이 동작은 POSIX.1‐2008에서 허용되지 않습니다.

신고
버퍼에 복사된 라인은 삭제된 라인과 다르게 상호 작용해야 한다는 요구 사항은 다음과 같습니다.
역사적 실천. 예를 들어, 신고 편집 옵션이 3으로 설정되어 3줄 삭제
보고서를 작성하게 되는데, 보고서를 작성하기 전에 4줄을 복사해야 합니다.

요구 사항은 ex 글로벌, v, 열 수, 취소시각 명령은 보고서를 제시합니다
명령 실행 중에 추가되거나 삭제된 총 라인 수를 기반으로 합니다.
에 의해 실행되는 명령 글로벌v 보고서가 없는 명령은 기록입니다.
관행. POSIX.1‐2008은 버퍼 실행을 요구함으로써 역사적 관행을 확장합니다.
유사하게 취급됩니다. 그 이유는 두 가지입니다. 역사적으로 보고된 바에 따르면
새로운 보고서가 나올 때마다 버퍼에서 실행된 마지막 명령이 사용자에게 표시됩니다.
마지막을 덮어씁니다. 게다가 표준 개발자들은 버퍼 실행이 다음과 같다고 믿었습니다.
공통점이 더 많았어 글로벌v 다른 명령보다 명령 ex 명령 및
사양의 일관성과 단순성을 위해 유사하게 동작해야 합니다.

쇼 매치, sm
커서가 일치하는 문자에 소비하는 시간은 지정되지 않습니다.
시스템의 타이밍 기능은 종종 부정확하고 가변적입니다. 시간이 길어야함
사용자가 알아챌 만큼 충분하지만, 사용자가 짜증을 낼 만큼 길지는 않습니다. 일부
구현 vi 을 추가했습니다 매치타임 사용자가 번호를 설정할 수 있도록 하는 옵션
0,1초 간격으로 커서가 일치하는 문자 위에서 일시 중지됩니다.

쇼 모드
XNUMXD덴탈의 쇼 모드 옵션은 일부 역사적 구현에서 사용되었습니다. exvi
공개 모드 또는 시각적 모드에 있을 때 현재 편집 모드를 표시합니다. 편집 모드에는
일반적으로 ``명령''과 ``입력''이 포함되며 때로는 다음과 같은 다른 모드도 포함됩니다.
'바꾸다'와 '바꾸다'. 문자열은 일반적으로 맨 아래 줄에 표시됩니다.
맨 오른쪽 모서리에 있는 화면. 또한, 이전 '*' 자주 언급되는 문자
편집 버퍼의 내용이 수정되었는지 여부. 후자의 디스플레이에는
가끔은 그 일부였지 쇼 모드 옵션이며 때로는 다른 옵션을 기반으로 합니다. 이것
4 BSD의 역사적 구현에서는 옵션을 사용할 수 없었습니다. vi, 그러나 다음과 같이 간주되었습니다.
일반적으로 특히 초보 사용자에게 유용하며 POSIX.1‐2008에서 필요합니다.

XNUMXD덴탈의 smd 속기 쇼 모드 옵션이 모든 기록에 존재하지 않았습니다.
편집기 구현. POSIX.1‐2008에서는 일관성을 위해 이를 요구합니다.

편집기의 모든 역사적 구현이 명령 모드에 대한 모드 문자열을 표시한 것은 아닙니다.
모드 문자열이 없어 명령 모드와 텍스트 입력 모드를 구별합니다.
POSIX.1‐2008은 역사적 관행과의 일관성을 위해 이러한 동작을 허용하지만
구현에서는 두 모드 모두에 대한 표시 문자열을 제공하는 것이 좋습니다.

슬로오픈
역사적으로 슬로오픈 터미널 전송 속도가 낮으면 옵션이 자동으로 설정되었습니다.
1200보드보다 높거나 전송 속도가 1200보드이고 다시 그리다 옵션이 설정되지 않았습니다. 그만큼
슬로오픈 옵션에는 두 가지 효과가 있습니다. 먼저, 줄 중간에 문자를 삽입할 때,
커서 뒤의 문자는 앞으로 밀리지 않지만 덮어쓰여진 것처럼 보입니다.
둘째, 새 텍스트 줄을 만들 때 현재 줄 다음 줄은
아래로 스크롤했지만 덮어쓴 것으로 보입니다. 두 경우 모두 텍스트 입력 모드 종료
편집 버퍼의 실제 내용과 일치하도록 화면이 새로 고쳐지게 됩니다.
마지막으로, 충분히 지능적인 터미널로 인해 편집자는
슬로오픈 옵션. POSIX.1‐2008은 대부분의 기록 동작을 허용하여 기록을 확장합니다.
요구하는 연습 슬로오픈 사용자가 편집 옵션을 설정한 경우의 동작입니다.

태그
구현에 자체 경로가 있을 수 있으므로 태그 파일의 기본 경로는 지정되지 않은 채로 남아 있습니다.
태그 역사적 구현과 일치하지 않는 구현. 기본값 태그
옵션 값에는 최소한 파일이 포함되어야 합니다. ./태그.

기간
의 역사적 구현 exvi 변경 사항을 무시했습니다. 기간 편집 옵션 이후
초기 터미널 정보가 로드되었습니다. 이는 POSIX.1‐2008에서 허용됩니다. 하지만,
사용자가 언제든지 터미널 유형을 수정할 수 있도록 구현하는 것이 좋습니다.
시간.

간결한
역사적으로 간결한 편집 옵션은 선택적으로 더 짧고 덜 설명적인 오류를 제공했습니다.
메시지, 일부 오류 메시지의 경우. 이는 POSIX.1‐2008에 따라 허용되지만 필수는 아닙니다.
역사적으로 가장 일반적인 시각적 모드 오류(예: 커서를 과거로 이동하려고 시도함)
줄 끝) 오류 메시지가 표시되지 않고 단순히 터미널에 경고만 표시됩니다.
초보 사용자에게 메시지를 제공하려는 구현은 다음을 기반으로 하도록 권장됩니다.
전에, 편집 선택권 말 수가 많은, 아니 간결한.


과거 구현에서 기본값은 편집 옵션은
전송 속도는 다음과 같습니다.

1. 전송 속도가 1200 미만인 경우 편집 선택권 w300 창 값을 설정하십시오. ~을 위한
예를 들어 다음 줄은 다음과 같습니다.

세트 w300=12

전송 속도가 12 미만인 경우 창 옵션을 1200로 설정합니다.

2. 전송 속도가 1200과 같으면 편집 선택권 w1200 창 값을 설정합니다.

3. 전송 속도가 1200보다 큰 경우, 편집 선택권 w9600 창 값을 설정합니다.

XNUMXD덴탈의 w300, w1200w9600 옵션은 POSIX.1‐2008에 나타나지 않습니다.
특정 전송 속도에 대한 의존성.

역사적 구현에서 다양한 명령으로 표시되는 창의 크기는 다음과 같습니다.
와 관련이 있지만 반드시 동일하지는 않습니다. 편집 옵션. 예를 들어, 크기
창문의 설정은 다음과 같습니다. ex 명령 시각 10, 그러나 값은 변경되지 않았습니다.
편집 옵션. 그러나 값을 변경하면 편집 옵션이 변경되었습니다
화면을 다시 칠할 때 표시되는 줄 수입니다. POSIX.1‐2008은 그렇지 않습니다.
사양의 일관성과 단순성을 위해 이러한 동작을 허용합니다.
표시되는 줄 수를 변경하는 모든 명령은 다음과 같이 수행해야 합니다.
값 설정 편집 옵션.

랩마진, wm
역사적으로 포장 여백 옵션은 다음과 같은 문자를 삽입하는 지도에는 영향을 미치지 않았습니다.
관련 계산에스; 예를 들어 :지도 K 5aABC DEF. 안타깝게도 널리 사용되는
이 동작에 의존하는 맵입니다. 사양의 일관성과 단순성을 위해
POSIX.1-2008은 이 동작을 허용하지 않습니다.

역사적으로, 포장 여백 모든 문자의 열 표시 너비를 사용하여 계산되었습니다.
화면에. 예를 들어, 다음을 사용한 구현은 "^나" 대표하다 문자
명부 편집 옵션이 설정되었습니다. 여기서 '^''나는' 각각은 하나의 열을 차지했습니다.
화면에서 다음을 계산합니다. 포장 여백 각각 2의 값을 기준으로 . 그만큼 번호
편집 옵션도 마찬가지로 선의 유효 길이를 변경했습니다. POSIX.1‐2008
역사적 관행에 대한 준수가 필요합니다.

이 표준의 이전 버전에서는 XNUMX바이트 이외의 바이트로 구현이 허용되었습니다.
비트, 그러나 이것은 이 버전에서 수정되었습니다.

미래 오시는 길


없음.

onworks.net 서비스를 사용하여 온라인 exposix 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

  • 1
    페이저
    페이저
    Phaser는 빠르고 무료이며 재미있는 공개 프로그램입니다.
    제공하는 소스 HTML5 게임 프레임워크
    WebGL 및 캔버스 렌더링
    데스크톱 및 모바일 웹 브라우저. 계략
    공동 수 있습니다 ...
    페이저 다운로드
  • 2
    바살 엔진
    바살 엔진
    VASSAL은 제작을 위한 게임 엔진입니다.
    기존 보드의 전자 버전
    그리고 카드 게임. 다음을 지원합니다.
    게임 조각 렌더링 및 상호 작용,
    그리고 ...
    VASSAL 엔진 다운로드
  • 3
    OpenPDF - iText의 포크
    OpenPDF - iText의 포크
    OpenPDF는 다음을 생성하기 위한 Java 라이브러리입니다.
    및 LGPL로 PDF 파일 편집 및
    MPL 오픈 소스 라이선스. OpenPDF는
    iText의 LGPL/MPL 오픈 소스 후계자,
    에이...
    OpenPDF 다운로드 - iText 포크
  • 4
    사가 GIS
    사가 GIS
    SAGA - 자동화 시스템
    Geoscientific 분석 - 지리적입니다
    정보 시스템(GIS) 소프트웨어
    지리 데이터를 위한 엄청난 기능
    처리 및 아나...
    사가 GIS 다운로드
  • 5
    Java/JTOpen용 도구 상자
    Java/JTOpen용 도구 상자
    IBM Toolbox for Java / JTOpen은
    지원하는 Java 클래스 라이브러리
    클라이언트/서버 및 인터넷 프로그래밍
    OS/400을 실행하는 시스템에 모델,
    i5/OS, 오...
    Java/JTOpen용 도구 상자 다운로드
  • 6
    D3.js
    D3.js
    D3.js(또는 데이터 기반 문서의 경우 D3)
    할 수 있는 JavaScript 라이브러리입니다.
    동적, 대화형 데이터 생성
    웹 브라우저의 시각화. D3와 함께
    당신...
    D3.js 다운로드
  • 더»

Linux 명령

Ad