Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

exposix - Online w chmurze

Uruchom exposix w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To jest polecenie exposix, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


ex — edytor tekstu

STRESZCZENIE


ex [−rR] [−s|−v] [−c komenda] [−t ciąg tagów] [-w rozmiar] [filet...]

OPIS


Połączenia ex narzędzie jest edytorem tekstu zorientowanym liniowo. Istnieją dwa inne tryby edytora —
otwarty i wizualny – w którym dostępna jest edycja zorientowana na ekran. Jest to opisane szerzej
całkowicie przez ex koncepcja i wizualny polecenia i w vi.

Jeśli operand jest '-', wyniki są nieokreślone.

W tej sekcji używany jest termin edit bufor aby opisać bieżący tekst roboczy. Żadnego konkretnego
termin ten zakłada realizację. Wszystkie zmiany edycyjne są wykonywane na edycji
buforze i żadne zmiany w nim nie będą miały wpływu na żaden plik, dopóki polecenie edytora nie zapisze pliku
plik.

Niektóre terminale nie mają wszystkich możliwości niezbędnych do obsługi całości ex
definicji, takich jak polecenia edycji na pełnym ekranie (wizualny tryb or koncepcja tryb). Kiedy
te polecenia nie mogą być obsługiwane na takich terminalach, warunek ten nie powoduje wygenerowania błędu
komunikat o błędzie, taki jak „nie jest to polecenie edytora” lub zgłoś błąd składni. The
implementacja może albo akceptować polecenia i generować wyniki na ekranie
wynikiem nieudanej próby spełnienia wymagań niniejszego tomu
POSIX.1-2008 lub zgłoś błąd opisujący usterkę związaną z terminalem.

OPCJE


Połączenia ex narzędzie powinno być zgodne z woluminem Base Definitions POSIX.1-2008, Sekcja 12.2,
Użyteczność Składnia Wytyczne, z wyjątkiem nieokreślonego użycia '-'I to „+” może być
uznawany również za ogranicznik opcji '-'.

Obsługiwane będą następujące opcje:

−c komenda
Określ polecenie początkowe, które ma zostać wykonane w pierwszym załadowanym buforze edycji
istniejący plik (zobacz sekcję ROZSZERZONY OPIS). Wdrożenia mogą
obsługuje więcej niż jeden −c opcja. W takich wdrożeniach określone
polecenia będą wykonywane w kolejności określonej w wierszu poleceń.

−r Odzyskaj nazwane pliki (zobacz sekcję ROZSZERZONY OPIS). Powrót do zdrowia
informacje o pliku zostaną zapisane w przypadku awarii edytora lub systemu (np
przykładowo, gdy edytor jest zakończony sygnałem, który edytor może przechwycić),
lub po użyciu ex zachować dowództwo.

A crash w tym kontekście oznacza nieoczekiwaną awarię systemu lub narzędzia, które
wymaga ponownego uruchomienia uszkodzonego systemu lub narzędzia. Oznacza to awarię systemu
wszelkie narzędzia działające w tym czasie również ulegają awarii. W przypadku edytora lub systemu
awaria, liczba zmian w buforze edycji (od ostatniej wersji zachować
polecenie), które zostaną odzyskane, nie jest określone.

Jeśli nie filet podano operandy i −t opcja nie jest określona, ​​wszystkie inne
opcje, WYJDŹ zmienne i dowolne .exrc pliki należy ignorować; Lista
wszystkie możliwe do odzyskania pliki dostępne dla wywołującego użytkownika zostaną zapisane, a plik
redaktor zakończy pracę normalnie bez dalszych działań.

−R Zestaw tylko czytać opcję edycji.

-s Przygotować ex do użytku wsadowego, wykonując następujące czynności:

* Pomiń pisanie monitów i komunikatów informacyjnych (ale nie diagnostycznych).

* Zignoruj ​​wartość TERM oraz dowolny domyślny typ terminala implementacji i
załóżmy, że terminal nie obsługuje trybów otwartych ani wizualnych;
zobacz wizualny polecenie i opis vi.

* Powstrzymaj użycie WYJDŹ zmienna środowiskowa i odczyt dowolnej
.exrc plik; zobacz sekcję OPIS ROZSZERZONY.

* Pomiń automatyczne wcięcie, ignorując wartość automatyczne wcięcie opcję edycji.

−t ciąg tagów
Edytuj plik zawierający określone ciąg tagów; widzieć tagi. Tagi mają funkcję
reprezentowane przez −t ciąg tagów oraz etykieta polecenie jest opcjonalne. To powinno byc
udostępniane w dowolnym systemie, który zapewnia również zgodną implementację tagi;
w przeciwnym razie użycie −t daje niezdefiniowane rezultaty. W każdym systemie tak będzie
błąd przy określeniu więcej niż jednego −t opcja.

-w Rozpocznij w trybie wizualnym (patrz vi).

-w rozmiar Ustaw wartość okno opcja edytora do rozmiar.

OPERANDY


Obsługiwane będą następujące argumenty:

filet Ścieżka pliku, który ma być edytowany.

STDIN


Standardowe wejście składa się z szeregu poleceń i tekstu wejściowego, jak opisano w sekcji
Sekcja OPIS ROZSZERZONY. Implementacja może ograniczyć każdą linię standardowego wejścia do
długość {LINE_MAX}.

Jeżeli standardowe wejście nie jest urządzeniem końcowym, powinno to wyglądać tak, jakby -s opcja była
określony.

Jeśli odczyt ze standardowego wejścia zwróci błąd lub jeśli edytor wykryje koniec
warunku pliku ze standardowego wejścia, będzie to równoznaczne z asynchronicznym SIGHUP
zdarzenie.

WEJŚCIE AKTA


Plikami wejściowymi są pliki tekstowe lub pliki, które byłyby plikami tekstowymi, gdyby nie były niekompletne
ostatnia linia nie dłuższa niż {LINE_MAX}-1 bajtów i nie zawierająca NUL
postacie. Domyślnie każda niekompletna ostatnia linia będzie traktowana tak, jakby miała końcówkę
. Opcjonalnie można zezwolić na edycję innych form plików ex
wdrożenia.

Połączenia .exrc pliki, a pliki źródłowe będą plikami tekstowymi składającymi się z ex polecenia; zobacz
Sekcja ROZSZERZONY OPIS.

Domyślnie edytor będzie czytał linie z plików przeznaczonych do edycji bez interpretacji
dowolną z tych linii jako dowolną formę polecenia edytora.

ŚRODOWISKO ZMIENNE


Następujące zmienne środowiskowe mają wpływ na wykonanie ex:

KOLUMNY Zastąp wybrany przez system poziomy rozmiar ekranu. Zobacz definicje podstawowe
tom POSIX.1‐2008, Rozdział 8, Środowisko Zmienne dla prawidłowych wartości i
wyniki, gdy jest rozbrojony lub ma wartość null.

WYJDŹ Ustal listę ex polecenia wykonywane przy uruchomieniu edytora. Zobacz
ROZSZERZONY OPIS, aby uzyskać więcej szczegółów na temat fazy inicjalizacji.

HOME Określ ścieżkę do katalogu, w którym będzie przeszukiwany edytor start-
plik o nazwie .exrc; zobacz sekcję OPIS ROZSZERZONY.

JĘZYK Podaj wartość domyślną dla zmiennych internacjonalizacji, które nie są ustawione lub
zero. (Patrz tom Definicje podstawowe POSIX.1‐2008, Sekcja 8.2,
Umiędzynarodowienie Zmienne o pierwszeństwo internacjonalizacji
zmienne używane do określania wartości kategorii ustawień regionalnych).

LC_ALL Jeśli jest ustawiony na niepustą wartość ciągu, nadpisz wartości wszystkich pozostałych
zmienne internacjonalizacji.

LC_COLLATE
Określ lokalizację dla zachowania zakresów, klas równoważności i multi-
elementy porównywania znaków w wyrażeniach regularnych.

LC_CTYPE Określ lokalizację dla interpretacji sekwencji bajtów danych tekstowych
jako znaki (na przykład jednobajtowe w przeciwieństwie do wielobajtowych znaków w
argumenty i pliki wejściowe), zachowanie klas znaków w ramach regular
wyrażenia, klasyfikacja znaków na wielkie i małe litery,
konwersja wielkości liter i wykrywanie granic słów.

LC_MESSAGES
Określ ustawienia regionalne, które powinny być używane do wpływania na format i zawartość
komunikaty diagnostyczne zapisywane z błędem standardowym.

LINIE Zastąp wybrany przez system pionowy rozmiar ekranu używany jako liczba linii
w trybie ekranowym i pionowym w trybie wizualnym. Zobacz Bazę
Tom Definicje POSIX.1‐2008, Rozdział 8, Środowisko Zmienne za ważne
wartości i wyniki, gdy jest rozbrojone lub ma wartość null.

NLSPATH Określ lokalizację katalogów wiadomości do przetwarzania LC_MESSAGES.

PATH Określ ścieżkę wyszukiwania dla polecenia powłoki określonego w pliku ex redaktor
Polecenia !, powłoka, czytać, napisaćoraz polecenie otwierania i trybu wizualnego !; widzieć
opis wyszukiwania i wykonywania poleceń w Sekcja 2.9.1.1, Command
Szukaj i Egzekucja.

SHELL Określ preferowany interpreter wiersza poleceń, który będzie używany jako wartość domyślna
dotychczasowy powłoka opcję edycji.

TERM Określ nazwę typu terminala. Jeśli ta zmienna jest nieustawiona lub ma wartość null, an
należy zastosować nieokreślony domyślny typ terminala.

ASYNCHRONICZNY WYDARZENIA


Poniższy termin jest używany w tej i następnych sekcjach do określenia poleceń i
asynchroniczne akcje zdarzeń:

kompletny napisać
Pełny zapis to zapis całej zawartości bufora edycji do pliku
innego typu niż urządzenie końcowe lub spowodowane zapisem bufora edycyjnego
przez użytkownika wykonującego ex zachować Komenda. Zapisanie treści edycji
bufor do pliku tymczasowego, który zostanie usunięty po zamknięciu edytora
należy uznać za kompletny zapis.

Po otrzymaniu sygnałów należy podjąć następujące działania:

SIGINT Jeżeli standardowe wejście nie jest urządzeniem końcowym, ex nie zapisze pliku lub
powrócić do trybu poleceń lub wprowadzania tekstu i zakończyć działanie z wyjściem niezerowym
stan.

W przeciwnym razie, jeśli wykonujesz polecenie trybu otwartego lub wizualnego trybu wprowadzania tekstu, ex w odbiorze
SIGINT zachowuje się identycznie jak po otrzymaniu postać.

Inaczej:

1. Jeśli wykonujesz ex polecenie trybu wprowadzania tekstu, wszystkie linie wejściowe, które zostały
całkowicie wprowadzone zostaną przeniesione do bufora edycji, a wszelkie częściowo
wprowadzona linia zostanie odrzucona.

2. Jeżeli aktualnie wykonywane jest polecenie, zostanie ono przerwane i wyświetlony zostanie komunikat
wystawiany. O ile nie określono inaczej przez ex or vi opisy poleceń,
nie jest określone, czy pojawią się jakiekolwiek linie zmodyfikowane przez wykonujące polecenie
zmodyfikowane lub takie, jakie były przed modyfikacją przez wykonujące polecenie, w
bufor.

Jeśli aktualnie wykonywane polecenie było poleceniem ruchu, jest ono powiązane
polecenie zostanie odrzucone.

3. Jeżeli terminal jest w trybie otwartym lub wizualnym, zostaje ostrzeżony.

4. Edytor powróci wówczas do trybu poleceń.

SIGCONT Ekran będzie odświeżany w trybie otwartym lub wizualnym.

SIGHUP Jeśli bufor edycji został zmodyfikowany od czasu ostatniego pełnego zapisu, ex powinien
spróbuj zapisać bufor edycji, aby można go było później odzyskać za pomocą −r
opcja lub ex wyzdrowieć Komenda. Redaktor nie zapisuje pliku ani nie zwraca
do trybu poleceń lub wprowadzania tekstu i kończy się niezerowym statusem wyjścia.

SIGTERM Patrz SIGHUP.

Działania podejmowane w przypadku wszystkich pozostałych sygnałów są nieokreślone.

STDOUT


Standardowe wyjście powinno być używane wyłącznie do zapisywania podpowiedzi dla użytkownika, w celach informacyjnych
wiadomości i do zapisywania linii z pliku.

STDERR


Błąd standardowy stosuje się tylko do komunikatów diagnostycznych.

WYDAJNOŚĆ AKTA


Dane wyjściowe z ex będą plikami tekstowymi.

ROZSZERZONY OPIS


Tylko ex Tryb edytora opisano w tej sekcji. Widzieć vi do dodatkowej edycji
możliwości dostępne w ex.

Gdy wystąpi błąd, ex napiszę wiadomość. Jeśli terminal obsługuje tryb wyróżniający
(np. wideo odwrócone), wiadomość powinna być napisana w sposób wyróżniający. Jeśli terminal
nie obsługuje trybu wyróżniającego i opcji edycji dzwonki błędów jest ustawiona, akcja ostrzegawcza
poprzedza komunikat o błędzie.

Domyślnie ex rozpoczyna się w trybie dowodzenia, co jest oznaczone literą : podpowiedź; Widzieć
dotychczasowy podpowiedź Komenda. Do trybu wprowadzania tekstu można wejść poprzez dodać, wstawićlub zmiana
polecenia; można z niego wyjść (i ponownie wejść w tryb poleceń), wpisując a ('.') sam
na początku wiersza.

Inicjalizacji in ex i vi
W tej i następnych sekcjach używane są następujące symbole w celu określenia lokalizacji w
edytuj bufor:

alternatywny i aktualne nazwy ścieżek
Dwie ścieżki o nazwie aktualne i alternatywny, są prowadzone przez redakcję. Każdy ex
polecenia, które przyjmują nazwy plików jako argumenty, ustawiają je w następujący sposób:

1. Jeśli a filet argument jest określony dla ex edit, exlub wyzdrowieć polecenia, lub jeśli
an ex etykieta polecenie zastępuje zawartość bufora edycji.

A. Jeśli polecenie zastąpi zawartość bufora edycji, bieżący
nazwa ścieżki powinna być ustawiona na filet argument lub plik wskazany przez znacznik,
a alternatywna nazwa ścieżki zostanie ustawiona na poprzednią wartość prądu
nazwa ścieżki.

B. W przeciwnym razie alternatywna nazwa ścieżki powinna zostać ustawiona na filet argumenty.

2. Jeśli a filet argument jest określony dla ex Następny polecenie:

A. Jeśli polecenie zastąpi zawartość bufora edycji, bieżący
nazwa ścieżki powinna być ustawiona na pierwszą filet argument i alternatywna nazwa ścieżki
zostanie ustawiona na poprzednią wartość bieżącej ścieżki.

3. Jeśli a filet argument jest określony dla ex filet polecenie, bieżąca nazwa ścieżki
zostanie ustawiony na filet argument, a alternatywna ścieżka zostanie ustawiona na
poprzednia wartość bieżącej ścieżki.

4. Jeśli a filet argument jest określony dla ex czytać i napisać polecenia (to znaczy kiedy
odczytu lub zapisu pliku, a nie do programu o nazwie powłoka edit
opcja) lub a filet argument jest określony dla ex wyjść polecenie:

A. Jeśli bieżąca ścieżka nie ma wartości, bieżąca ścieżka zostanie ustawiona na
dotychczasowy filet argumenty.

B. W przeciwnym razie alternatywna nazwa ścieżki powinna zostać ustawiona na filet argumenty.

Jeśli alternatywna nazwa ścieżki jest ustawiona na poprzednią wartość bieżącej ścieżki, gdy
bieżąca ścieżka nie miała poprzedniej wartości, wówczas alternatywna ścieżka będzie miała taką wartość
w efekcie nie ma żadnej wartości.

aktualne linia
Linia bufora edycji, do którego odwołuje się kursor. Opis każdego polecenia
określa bieżący wiersz po wykonaniu polecenia, jako aktualne linia
wartość. Jeżeli bufor edycji nie zawiera żadnych linii, bieżąca linia będzie wynosić zero; Widzieć
Adresowanie in ex.

aktualne kolumna
Bieżąca kolumna linii wyświetlacza zajmowana przez kursor. (Kolumny będą
numerowane począwszy od 1.) Każdy opis polecenia określa bieżącą kolumnę
po wykonaniu polecenia, jako aktualne kolumna wartość. Ta kolumna to
idealny kolumna, która jest pamiętana przez całe życie redaktora. Rzeczywisty wyświetlacz
kolumna linii, na której spoczywa kursor, może różnić się od bieżącej kolumny;
zobacz dyskusję na temat pozycjonowania kursora w Command opisy in vi.

zestaw do nie-
Opis bieżącej wartości kolumny, co oznacza, że ​​bieżąca kolumna będzie
ustawić na ostatnią kolumnę linii wyświetlacza, w której wyświetlana jest jakakolwiek część pierwszej
nie- linii. Jeśli linia nie ma nie- nie- postacie,
bieżąca kolumna zostanie ustawiona na ostatnią kolumnę linii wyświetlacza, w której znajduje się
wyświetlił dowolną część ostatniej nie- znak w linii. Jeśli linia jest
puste, bieżąca kolumna zostanie ustawiona na pozycji kolumny 1.

Długość linii w buforze edycji może być ograniczona do {LINE_MAX} bajtów. W otwartym i
trybie wizualnym, długość linii w buforze edycji może być ograniczona do liczby
znaków, które zmieszczą się na wyświetlaczu. Jeśli podczas edycji którykolwiek z limitów zostanie przekroczony, an
zostanie zapisany komunikat o błędzie. Jeśli któryś z limitów zostanie przekroczony przez linię wczytaną z pliku,
zostanie zapisany komunikat o błędzie i sesja edycyjna może zostać zakończona.

Jeśli edytor przestanie działać z innego powodu niż polecenie użytkownika, a plik edit
bufor został zmodyfikowany od czasu ostatniego pełnego zapisu, będzie to równoznaczne z SIGHUP
wydarzenie asynchroniczne. Jeśli system ulegnie awarii, będzie to równoznaczne z asynchronicznym SIGHUP
zdarzenie.

Podczas inicjalizacji (zanim pierwszy plik zostanie skopiowany do bufora edycji lub dowolnego pliku user
przetwarzane są polecenia z terminala) nastąpi:

1. Jeśli zmienna środowiskowa WYJDŹ jest ustawiony, edytor wykona ex Polecenia
zawarte w tej zmiennej.

2. Jeśli WYJDŹ zmienna nie jest ustawiona i wszystkie poniższe warunki są spełnione:

a. ten HOME zmienna środowiskowa nie ma wartości null i nie jest pusta.

B. Plik .exrc w katalogu, o którym mowa w HOME Zmienna środowiskowa:

I. Istnieje

II. Jest własnością tego samego identyfikatora użytkownika, co rzeczywisty identyfikator użytkownika procesu lub
proces ma odpowiednie uprawnienia

iii. Nie może pisać nikt inny niż właściciel

redaktor wykona ex polecenia zawarte w tym pliku.

3. Wtedy i tylko wtedy, gdy spełnione są wszystkie poniższe warunki:

A. Plik bieżący nie jest odwoływany do bieżącego katalogu HOME zmienna środowiskowa.

B. Polecenie w WYJDŹ zmienna środowiskowa lub polecenie w pliku .exrc Plik w
katalog, o którym mowa w HOME zmienna środowiskowa ustawia opcję edytora
wyd.

C. ten .exrc plik w bieżącym katalogu:

I. Istnieje

II. Jest własnością tego samego identyfikatora użytkownika, co rzeczywisty identyfikator użytkownika procesu lub jednego z nich
zestaw identyfikatorów użytkowników zdefiniowanych w implementacji

iii. Nie może pisać nikt inny niż właściciel

redaktor podejmie próbę wykonania ex polecenia zawarte w tym pliku.

Linie w dowolnym .exrc Pliki zawierające puste linie będą ignorowane. Jeśli w ogóle .exrc plik istnieje,
ale nie jest czytany ze względu na własność lub pozwolenie, będzie to błąd.

Po WYJDŹ zmienne i dowolne .exrc pliki są przetwarzane, pierwszy plik określony przez
użytkownika należy edytować w następujący sposób:

1. Jeśli użytkownik określił −t opcji, efekt będzie taki, jakby ex etykieta polecenie było
wprowadzone z określonym argumentem, z wyjątkiem sytuacji, gdy ma to miejsce w przypadku przetwarzania tagów
nie spowoduje powstania pliku do edycji, efekt będzie taki, jak opisano w kroku 3 poniżej.

2. W przeciwnym razie, jeśli użytkownik podał dowolny wiersz poleceń filet argumentów, skutek będzie
jak gdyby ex edit wprowadzono polecenie z pierwszym z tych argumentów filet
argumenty.

3. W przeciwnym razie skutek będzie taki, jak gdyby ex edit wprowadzono polecenie za pomocą a
nieistniejąca nazwa pliku jako taka filet argument. Nie określono, czy będzie to działanie
ustaw bieżącą nazwę ścieżki. W implementacji, w której ta akcja nie ustawia
bieżąca ścieżka, jakiekolwiek polecenie edytora korzystające z bieżącej ścieżki zakończy się niepowodzeniem, dopóki nie zostanie wyświetlony komunikat
polecenie edytora ustawia bieżącą nazwę ścieżki.

Jeśli −r określono opcję, za pierwszym razem, gdy plik na początkowej liście argumentów lub a
plik określony przez −t opcja jest edytowana, jeśli informacje o odzyskiwaniu były już wcześniej dostępne
o tym zapisane, informacje te zostaną odzyskane, a redaktor będzie zachowywał się tak, jakby
zawartość bufora edycji została już zmodyfikowana. Jeśli istnieje wiele wystąpień
plik, który ma zostać odzyskany, zostanie odzyskany plik ostatnio zapisany, oraz
komunikat informacyjny, że istnieją poprzednie wersje pliku, które można odzyskać
zostanie napisane. Jeśli nie są dostępne żadne informacje dotyczące odzyskiwania pliku, zostanie wyświetlony komunikat informacyjny
zostanie napisany komunikat w tej sprawie, a edycja będzie kontynuowana w zwykły sposób.

Jeśli −c określono opcję, po raz pierwszy plik, który już istnieje (w tym plik
plik, który może nie istnieć, ale dla którego dostępne są informacje dotyczące odzyskiwania, gdy plik −r
określono opcję) zastępuje lub inicjuje zawartość bufora edycji, bieżący
linia zostanie ustawiona na ostatnią linię bufora edycji, na którą zostanie ustawiona bieżąca kolumna
nie- , oraz ex polecenia określone za pomocą −c opcja zostanie wykonana. W tym
w tym przypadku bieżąca linia i bieżąca kolumna nie zostaną ustawione zgodnie z opisem dla polecenia
związane z wymianą lub inicjalizacją zawartości bufora edycji. Jeśli jednak
dotychczasowy −t opcja lub A etykieta polecenie jest powiązane z tą akcją, −c polecenia opcji
zostanie wykonany i następnie nastąpi ruch do znacznika.

Bieżąca lista argumentów będzie początkowo ustawiona na nazwy plików określone przez użytkownika
wiersz poleceń. Jeśli użytkownik nie określił żadnej nazwy pliku, bieżąca lista argumentów
będzie pusty. Jeśli −t podano opcję, nie określono, czy jest to jakakolwiek nazwa pliku
wynikające z przetwarzania tagów zostaną dodane do aktualnej listy argumentów. W tej sprawie
gdzie nazwa pliku jest dodawana jako przedrostek do bieżącej listy argumentów, bieżący argument
odniesienie do listy powinno być ustawione na tę nazwę pliku. W przypadku gdy nazwa pliku nie jest dodana
jako przedrostek bieżącej listy argumentów, będzie odniesienie do bieżącej listy argumentów
logicznie znajdować się przed pierwszą z nazw plików określonych w wierszu poleceń (np
przykład, kolejny ex Następny polecenie edytuje pierwszą nazwę pliku z polecenia
linia). Jeśli −t opcja nie została określona, ​​bieżącym odwołaniem do listy argumentów powinno być odniesienie
pierwsza z nazw plików w wierszu poleceń.

Adresowanie in ex
Adresowanie w ex odnosi się do bieżącej linii i bieżącej kolumny; adres linii
jest numerem wiersza opartym na 1, adres kolumny jest jej licznikiem opartym na 1 z
początek linii. Ogólnie rzecz biorąc, bieżąca linia jest ostatnią linią, na którą wpływa polecenie.
Numer bieżącej linii jest adresem bieżącej linii. W opisie każdego polecenia
opisano wpływ polecenia na bieżący numer linii i bieżącą kolumnę.

Adresy są konstruowane w następujący sposób:

1. Charakter '.' (kropka) odnosi się do bieżącego wiersza.

2. Charakter „$” powinien adresować ostatnią linię bufora edycji.

3. Dodatnia liczba dziesiętna n zwróci się do nwiersz bufora edycji.

4. Adres "'X" odnosi się do linii oznaczonej znakiem nazwy znaku 'x', który
będzie małą literą z przenośnego zestawu znaków, znakiem cudzysłowu,
lub znak pojedynczego cudzysłowu. Jeżeli zaznaczona linia nie jest zaznaczona, będzie to błąd
aktualnie znajduje się w buforze edycji lub znacznik nie został ustawiony. Można zaznaczyć linie
z ex znak or k polecenia lub vi m dowództwo.

5. Wyrażenie regularne zawarte w postacie („/”) odnosi się do pierwszej linii
znaleźć, wyszukując do przodu od linii następującej po bieżącej linii w kierunku końca
bufor edycji i zatrzymując się na pierwszej linii, dla której linia wyklucza
zakończenie pasuje do wyrażenia regularnego. Jak stwierdzono w Regularna Expressions
in ex, adres składający się z zerowego wyrażenia regularnego rozdzielonego przez
postacie ("//") adresuje następną linię, dla której linia wyklucza
zakończenie pasuje do ostatniego napotkanego wyrażenia regularnego. Ponadto,
drugi można pominąć na końcu wiersza poleceń. Jeśli Wrapscan edit
opcja jest ustawiona, wyszukiwanie będzie obejmować początek bufora edycji i
kontynuuj aż do bieżącego wiersza włącznie, tak aby cały bufor edycji był
przeszukane. W wyrażeniu regularnym sekwencja "\/" będzie reprezentować literał
zamiast ogranicznika wyrażenia regularnego.

6. Wyrażenie regularne zawarte w postacie ('?') odnosi się do
pierwsza linia znaleziona poprzez wyszukiwanie wstecz od linii poprzedzającej bieżącą linię
w kierunku początku bufora edycji i zatrzymując się na pierwszej linii, dla której
linia z wyłączeniem zakończenia pasuje do wyrażenia regularnego. Adres
składający się z zerowego wyrażenia regularnego rozdzielonego przez postacie ("???")
adresuje poprzednią linię, dla której linia jest wyłączana z zakończeniem
pasuje do ostatniego napotkanego wyrażenia regularnego. Poza tym drugie
mark> można pominąć na końcu wiersza poleceń. Jeśli Wrapscan opcja edycji jest ustawiona,
wyszukiwanie będzie zawijane od początku bufora edycji do końca
edytuj bufor i kontynuuj aż do bieżącej linii włącznie, tak aby cała edycja
bufor jest przeszukiwany. W wyrażeniu regularnym sekwencja „\?” będzie reprezentować a
dosłowny zamiast ogranicznika RE.

7. A („+”) lub znak minus ('-'), po którym następuje liczba dziesiętna, adres
bieżący wiersz plus lub minus liczba. A „+” or '-' bez ułamka dziesiętnego
liczba będzie adresować bieżącą linię plus lub minus 1.

Opcjonalnie po adresach może następować zero lub więcej przesunięć adresu -rozdzielony.
Przesunięcia adresów są konstruowane w następujący sposób:

1. „+” or '-' po którym następuje liczba dziesiętna, należy dodać (odjąć)
wskazana liczba linii do (z) adresu. A „+” or '-' nie następuje a
liczba dziesiętna dodaje (odejmuje) 1 do (od) adresu.

2. Do adresu dodaje się liczbę dziesiętną wskazaną liczbę wierszy.

Nie powinno być błędem, jeśli wartość adresu pośredniego jest mniejsza od zera lub większa
niż ostatnia linia w buforze edycji. Będzie to błąd dla końcowej wartości adresu
być mniejsza od zera lub większa niż ostatnia linia w buforze edycji.

Polecenia przyjmują zero, jeden lub dwa adresy; zobacz opisy 1 adres i 2 adres in
Command opisy in ex. W przypadku podania większej liczby adresów niż wymagana
polecenie wymagające zerowych adresów będzie błędem. W przeciwnym razie, jeśli jest więcej niż
do polecenia podawana jest wymagana liczba adresów, adresy podane są jako pierwsze
będą oceniane, a następnie odrzucane do momentu, aż pozostanie maksymalna liczba ważnych adresów.

Adresy oddziela się od siebie znakiem: („”) lub (';').
Jeżeli przed lub po a. nie podano adresu Lub separator, tak będzie
tak, jakby adres bieżącego wiersza został podany przed lub po separatorze. w
przypadek A separator, bieżąca linia ('.') należy ustawić na pierwszą
adres i dopiero wtedy zostanie obliczony kolejny adres. Można używać tej funkcji
określić linię startu dla poszukiwań do przodu i do tyłu (patrz zasady 5. i 6.).

A ('%') będzie równoznaczne z wprowadzeniem obu adresów „1, $”.

Jakiekolwiek rozgraniczenie znaki między adresami, separatory adresów lub adresy
offsety należy odrzucić.

Command Linia Rozbiór gramatyczny zdania in ex
W tej i następnych sekcjach używany jest następujący symbol w celu opisania zachowania analizy:

uciec Jeśli znak jest określany jako `` -ucieczka” lub `` -V-
uciekł”, oznacza to, że znak nabył lub utracił specjalne znaczenie
z racji bycia poprzedzonym odpowiednio przez a Lub -V
postać. O ile nie określono inaczej, znak ucieczki zostanie odrzucony
w tym czasie i nie będą dalej rozpatrywane w żadnym celu.

Analizę wiersza poleceń należy wykonać w następujących krokach. Dla każdego kroku znaki
już ocenione należy zignorować; to znaczy, do którego odnosi się wyrażenie „główny bohater”.
następny znak, który nie został jeszcze oceniony.

1. Wiodący znaki należy pominąć.

2. Wiodący znaki należy pominąć.

3. Jeśli znak wiodący jest cudzysłowem, znaki do i
w tym następny nie- -uciekł zostaną odrzucone, a wszelkie
kolejne znaki będą analizowane jako osobne polecenie.

4. Ocenie podlegają znaki wiodące, które można zinterpretować jako adresy; Widzieć
Adresowanie in ex.

5. Wiodący znaki należy pominąć.

6. Jeśli następnym znakiem jest a znak lub a :

A. Jeśli następnym znakiem jest a :

I. Jeśli ex jest w trybie otwartym lub wizualnym, bieżąca linia zostanie ustawiona na ostatnią
podany adres, jeśli istnieje.

II. W przeciwnym razie, jeśli ostatnie polecenie zostało zakończone przez a postać,
nie zostaną podjęte żadne działania; na przykład polecenie „|| " powinien
wykonaj dwa domniemane polecenia, a nie trzy.

iii. W przeciwnym razie krok 6.b. powinien zaaplikować.

B. W przeciwnym razie dorozumianym poleceniem będzie: Komenda. Ostatni #, p, l
flagi określone dla any ex polecenie zostanie zapamiętane i będzie miało do niego zastosowanie
dorozumiane polecenie. Wykonywanie ex numer, lub podstęp polecenie ustawi
zapamiętane flagi #, nic i lodpowiednio, plus wszelkie inne flagi
określone dla tego wykonania numer, lub podstęp dowództwo.

If ex obecnie nie wykonuje światowy or v polecenia i bez adresu ani licznika
zostanie określony, bieżący wiersz zostanie zwiększony o 1 przed wydaniem polecenia
wykonany. Jeśli zwiększenie bieżącej linii spowodowałoby adres znajdujący się poza
ostatniej linii w buforze edycji, polecenie zakończy się niepowodzeniem, a inkrementacja nie
zdarzyć.

C. The Lub znak zostanie odrzucony, a każdy kolejny
znaki będą analizowane jako osobne polecenie.

7. Nazwa polecenia powinna składać się z kolejnego znaku (jeżeli znak nie jest
alfabetyczny) lub następny znak i dowolne kolejne znaki alfabetu (jeśli
znak jest alfabetyczny), z następującymi wyjątkami:

A. Polecenia składające się z dowolnego przedrostka znaków w nazwie polecenia usunąć,
po którym następuje bezpośrednio dowolny ze znaków „ja”, 'P', „+”, '-'lub „#” niech będzie
interpretowane jako usunąć polecenie, po którym następuje a , po którym następują znaki
które nie były częścią przedrostka usunąć Komenda. Maksymalna liczba
znaki zostaną dopasowane do nazwy polecenia usunąć; na przykład, „del” powinien
nie być traktowanym jako „de” po którym następuje flaga l.

B. Polecenia składające się ze znaku „k”, po którym następuje znak, który może być
używana jako nazwa znaku, będzie równoważna poleceniu mark, po którym następuje a
, po którym następuje znak następujący po „k”.

C. Polecenia składające się ze znaku 's', po którym następują znaki, które mogą być
interpretowane jako ważne opcje do s polecenie, będzie odpowiednikiem polecenia s
polecenie, bez żadnego wzorca ani wartości zastępczych, po którym następuje a ,
po którym następują znaki po 's'.

8. Nazwę polecenia porównuje się z możliwymi nazwami poleceń i poleceniem
nazwa zawierająca przedrostek odpowiadający znakom określonym przez użytkownika będzie nazwą
wykonane polecenie. W przypadku poleceń, w których znaki określone przez użytkownika
może być niejednoznaczne, wykonane polecenie powinno wyglądać następująco:

┌───┬────────┬┬───┬───────┬┬───┬───────┐
adodać ││nNastępny ││tt
czmiana ││p ││uanulować
chzmiana ││pr ││unanulować
eedit ││rczytać ││vv
mruch ││reczytać ││wnapisać
maznak ││ss ││ │ │
└───┴────────┴┴───┴───────┴┴───┴───────────┘
Nie sprawdza się rozszerzeń implementacyjnych o nazwach powodujących podobne niejasności
dla dopasowania, aż wszystkie możliwe dopasowania dla poleceń określonych w POSIX.1-2008 będą miały
zostało sprawdzone.

9. Jeśli poleceniem jest: a ! polecenie, lub jeśli poleceniem jest a czytać polecenie, po którym następuje zero
albo więcej postacie i A !lub jeśli poleceniem jest a napisać polecenie, po którym następuje
jeden lub więcej postacie i A !, reszta polecenia będzie obejmować wszystkie
znaków do nie- -uciekł . The niech będzie
odrzucane, a wszelkie kolejne znaki będą analizowane jako osobne znaki ex dowództwo.

10. W przeciwnym razie, jeśli poleceniem jest edit, exlub Następny polecenie lub a wizualny polecenie podczas
w trybie otwartym lub wizualnym następną część polecenia należy przeanalizować w następujący sposób:

a. Każdy '!' znak bezpośrednio po poleceniu należy pominąć i uwzględnić go
polecenia.

B. Wszelkie wiodące znaki należy pomijać i stanowić część polecenia.

C. Jeśli następnym znakiem jest a „+”, znaki do pierwszej nie- -uciekł
lub nie- -uciekł należy pominąć i stanowić część
dowództwo.

D. Pozostałą część polecenia ustala się w drodze kroków określonych w ust
12.

11. W przeciwnym razie, jeśli poleceniem jest a światowy, koncepcja, slub v polecenie, dalsza część
polecenie zostanie przeanalizowane w następujący sposób:

A. Wszelkie wiodące znaki należy pomijać i stanowić część polecenia.

B. Jeśli następny znak nie jest alfanumerycznym cudzysłowem, ,
, Lub postać:

I. Następny znak będzie używany jako ogranicznik polecenia.

II. Jeżeli poleceniem jest a światowy, koncepcjalub v polecenie, znaki do pierwszego
nie- -uciekł lub pierwszy nie- -ucieczony ogranicznik
znak, należy pominąć i stanowić część polecenia.

iii. Jeśli poleceniem jest s polecenie, znaki do pierwszego
nie- -uciekł lub drugi nie- -uciekł
znak ogranicznika, należy pominąć i stanowić część polecenia.

C. Jeżeli poleceniem jest a światowy or v polecenie, znaki do pierwszego
nie- -uciekł należy pominąć i stanowić część polecenia.

D. W przeciwnym razie resztę polecenia ustala się w drodze kroków określonych w
akapit 12.

12. Inaczej:

A. Jeśli polecenie brzmiało a mapa, usuń mapę, skracaćlub niekrótki polecenie, znaki
do pierwszego nie- -V-uciekł , lub podwójnie
Znak cudzysłowu należy pominąć i stanowić część polecenia.

B. W przeciwnym razie znaki do pierwszej nie- -uciekł ,
lub znak cudzysłowu należy pominąć i uwzględnić w nim
dowództwo.

C. Jeśli polecenie było dodać, zmianalub wstawić polecenie i krok 12.b. zakończył się
o godz znak, dowolne kolejne znaki, aż do następnego
nie- -uciekł będzie używany jako tekst wejściowy polecenia.

D. Jeżeli polecenie zostało zakończone znakiem cudzysłowu, wszystkie kolejne znaki,
do następnego nie- -uciekł , należy odrzucić.

mi. Zakończenie Lub znak zostanie odrzucony, a wszelkie
kolejne znaki będą analizowane jako osobne ex dowództwo.

Argumenty poleceń należy analizować zgodnie z opisem i opisem każdego z nich
indywidualny ex Komenda. Takiej analizy nie będzie -wrażliwe, z wyjątkiem !
argument, który musi następować po nazwie polecenia bez wtrącania się postacie i
gdzie w przeciwnym razie byłoby to niejednoznaczne. Na przykład, liczyć i flaga argumenty nie muszą być
-oddzielone, ponieważ „d22p” nie jest dwuznaczne, ale filet argumenty do ex Następny
polecenie musi być oddzielone jednym lub większą liczbą postacie. Każdy w poleceniu
argumenty za skracać, niekrótki, mapa, usuń mapę polecenia mogą być -V-
uciekł, w takim przypadku nie może być używany jako ogranicznik argumentów. Każdy
w argumencie polecenia dla dowolnego innego polecenia może być -uciekł, w takim przypadku
To nie może być używany jako ogranicznik argumentów.

W argumentach poleceń dla skracać, niekrótki, mapa, usuń mapę polecenia, dowolne
charakter może być -V-uciekł. Wszystkie takie znaki ucieczki będą traktowane
dosłownie i nie będzie miało żadnego specjalnego znaczenia. W ramach argumentów poleceń dla wszystkich pozostałych ex
polecenia, które nie są wyrażeniami regularnymi ani ciągami zastępczymi, dowolny znak, który by to zrobił
w przeciwnym razie mogą mieć specjalne znaczenie -uciekł. Uciekające znaki powinny być
traktowane dosłownie, bez specjalnego znaczenia jako znaki rozszerzenia powłoki lub '!', '%',
„#” postacie rozwinięcia. Widzieć Regularna Expressions in ex i Wymiana Smyczki in ex dla
opisy argumentów poleceń, które są wyrażeniami regularnymi lub ciągami zastępczymi.

Nie- -uciekł '%' postacie pojawiające się w filet argumenty do żadnego ex polecenie
zostać zastąpione bieżącą nazwą ścieżki; bez ucieczki „#” znaki zastępuje się przez
alternatywna nazwa ścieżki. Będzie to błąd, jeśli '%' or „#” znaki pojawiają się bez zmiany znaczenia w pliku
argument i odpowiadające mu wartości nie są ustawione.

Nie- -uciekł '!' znaków w argumentach albo ex ! polecenie lub
tryb otwarty i wizualny ! polecenie lub w argumentach polecenia ex czytać polecenie, gdzie
pierwszy nie- po nazwie polecenia jest a '!' znaku lub w argumentach metody
ex napisać polecenie, gdzie po nazwie polecenia następuje jeden lub więcej postacie i
pierwszy nie- po nazwie polecenia jest a '!' znak, zastępuje się przez
argumenty ostatniego z tych trzech poleceń, które mimo wszystko pojawiły się bez zmiany znaczenia
'%', „#”, '!' znaki zostały zastąpione. Będzie to błąd, jeśli '!' znaków
pojawiają się bez zmiany znaczenia w jednym z tych poleceń i żadne z nich nie zostało wcześniej wykonane
z tych poleceń.

Jeśli podczas analizowania lub wykonywania pliku wystąpi błąd ex polecenie:

* Należy w tym celu napisać komunikat informacyjny. Wykonanie ex komenda
powinien się zatrzymać, a kursor (na przykład bieżący wiersz i kolumna) nie
dalej zmodyfikowany.

* Jeśli ex polecenie wynikało z rozszerzenia mapy, wszystkie postacie z tej mapy
rozszerzenie należy odrzucić, chyba że w art mapa dowództwo.

* W przeciwnym razie, jeśli ex polecenie powstało w wyniku przetworzenia pliku WYJDŹ środowisko
zmienna, A .exrc Plik a :źródło polecenie, A −c opcja lub a +komenda określony dla
ex edit, ex, Następnylub wizualny polecenie, żadnych dalszych poleceń ze źródła
polecenia zostaną wykonane.

* W przeciwnym razie, jeśli ex polecenie wynikało z wykonania bufora lub a światowy or v
polecenie, żadnych dalszych poleceń spowodowanych wykonaniem bufora lub światowy or v
polecenie zostanie wykonane.

* W przeciwnym razie, jeśli ex polecenie nie zostało zakończone przez a , wszystkie znaki do
i łącznie z następnymi nie- -uciekł zostaną odrzucone.

Wkład Edycja in ex
W tej i następnych sekcjach używany jest następujący symbol do określenia polecenia
działania:

słowo W ustawieniach regionalnych POSIX słowo składa się z maksymalnej sekwencji liter, cyfr,
i podkreślenia, oddzielone na obu końcach znakami innymi niż litery,
cyfry, podkreślenia, początek lub koniec wiersza lub bufora edycji.

Akceptując znaki wejściowe od użytkownika, w obu przypadkach ex tryb poleceń lub ex wprowadzania tekstu
tryb, ex umożliwia przetwarzanie danych wejściowych w trybie kanonicznym, zgodnie z definicją w Interfejsach Systemu
tom POSIX.1‐2008.

Jeśli w ex tryb wprowadzania tekstu:

1. Jeśli numer opcja edycji jest ustawiona, ex wyświetli monit o wprowadzenie danych przy użyciu numeru wiersza
zostanie przypisany do wiersza, jeśli zostanie wprowadzony w formacie określonym dla ex
numer dowództwo.

2. Jeśli automatyczne wcięcie opcja edycji jest ustawiona, ex wyświetli monit o wprowadzenie danych za pomocą automatyczne wcięcie
postacie, zgodnie z opisem automatyczne wcięcie opcję edycji. automatyczne wcięcie postacie powinny
podążaj za numerem wiersza, jeśli taki istnieje.

Jeśli w ex tryb poleceń:

1. Jeśli podpowiedź opcja edycji jest ustawiona, zostanie wyświetlony monit o użycie pojedynczego ':'
postać; w przeciwnym razie monit nie będzie wyświetlany.

Znaki wprowadzone w poniższych sekcjach będą miały następujące skutki
linia wejściowa.

Przewiń
streszczenie:
euf

Zobacz opis stty euf znak stty.

Jeśli w ex tryb poleceń:

Jeśli euf znak jest pierwszym znakiem wprowadzonym w wierszu, wiersz taki będzie
oceniany tak, jakby zawierał dwa znaki: a -D i A .

W przeciwnym razie euf znak nie będzie miał specjalnego znaczenia.

Jeśli w ex tryb wprowadzania tekstu:

Jeśli kursor podąża za automatyczne wcięcie charakter, automatyczne wcięcie postacie w
linia zostanie zmodyfikowana w taki sposób, aby znajdowała się część następnego znaku wejściowego tekstu
wyświetlane w pierwszej kolumnie w wierszu po poprzedniej szerokość przesunięcia opcja edycji
granicę kolumny, a użytkownik zostanie ponownie poproszony o wprowadzenie danych dla tej samej linii.

W przeciwnym razie, jeśli kursor podąża za a "0", który następuje po automatyczne wcięcie charakter i
dotychczasowy "0" był poprzednim znakiem wejściowym tekstu, "0" i wszystkich automatyczne wcięcie
znaki w wierszu zostaną usunięte, a użytkownik zostanie ponownie poproszony o ich wprowadzenie
wejście dla tej samej linii.

W przeciwnym razie, jeśli kursor podąża za a '^', który następuje po automatyczne wcięcie charakter i
dotychczasowy '^' był poprzednim znakiem wejściowym tekstu, '^' i wszystkich automatyczne wcięcie
znaki w wierszu zostaną usunięte, a użytkownik zostanie ponownie poproszony o ich wprowadzenie
wejście dla tej samej linii. Ponadto, automatyczne wcięcie poziom dla następnej linii wejściowej
należy wyprowadzić z tej samej linii, z której automatyczne wcięcie poziom dla prądu
wyprowadzono linię wejściową.

W przeciwnym razie, jeśli nie ma automatyczne wcięcie lub znaków wejściowych tekstu w wierszu, euf
znak należy odrzucić.

W przeciwnym razie euf znak nie będzie miał specjalnego znaczenia.


streszczenie:

-J

Jeśli w ex tryb poleceń:

Powoduje przeanalizowanie wiersza poleceń; -J zostanie przypisany do
w tym celu.

Jeśli w ex tryb wprowadzania tekstu:

Zakończ bieżącą linię. Jeśli nie ma innych znaków niż automatyczne wcięcie
znaków w wierszu, wszystkie znaki w wierszu zostaną odrzucone.

Monituj o wprowadzenie tekstu w nowym wierszu po bieżącym wierszu. Jeśli automatyczne wcięcie edit
opcja jest ustawiona, odpowiednia liczba automatyczne wcięcie znaki należy dodać jako a
przedrostek linii zgodnie z opisem w ex automatyczne wcięcie opcję edycji.


streszczenie:


Zezwól na wprowadzenie kolejnego Lub -J jako znak dosłowny, usuwając
jakieś specjalne znaczenie, jakie może mieć dla edytora w trybie wprowadzania tekstu. The
znak powinien zostać zachowany i oceniony podczas analizowania wiersza poleceń lub zachowany i
dołączane, gdy tekst wejściowy staje się częścią bufora edycji.

-V
streszczenie:
-V

Zezwól na wprowadzenie dowolnego kolejnego znaku jako znaku dosłownego, usuwając wszelkie znaki specjalne
co oznacza, że ​​może mieć to wpływ na edytor w trybie wprowadzania tekstu. The - Znak V
zostanie odrzucony przed przeanalizowaniem wiersza poleceń lub wprowadzeniem tekstu stanie się częścią
edytuj bufor.

Jeśli funkcja „dosłownego następnego” jest wykonywana przez system bazowy, tak jest
implementacja zdefiniowana, czy znak inny niż -V pełni tę funkcję.

-W
streszczenie:
-W

Odrzuć -W i poprzedzające je słowo w wierszu wejściowym, łącznie z any
znaków następujących po słowie i poprzedzających -W. Jeśli ,,słowo
Funkcja kasowania jest wykonywana przez system bazowy i jest zdefiniowana w implementacji
czy znak inny niż -W pełni tę funkcję.

Command opisy in ex
W tej sekcji używane są następujące symbole do reprezentowania modyfikatorów poleceń. Niektóre z
modyfikatory te można pominąć, w takim przypadku należy zastosować określone wartości domyślne.

1 adres Adres jednoliniowy, podany w dowolnej formie opisanej w Adresowanie in ex;
domyślnie będzie to bieżąca linia ('.'), o ile nie podano inaczej.

Jeżeli adres linii wynosi zero, będzie to błąd, chyba że w ust
poniższe opisy poleceń.

Jeśli bufor edycji jest pusty, a adres został określony poleceniem other
niż =, dodać, wstawić, koncepcja, położyć, czytaćlub wizualnylub adres nie jest zerem,
będzie to błąd.

2 adres Dwa adresy określające zakres obejmujący linie. Jeśli nie ma adresów
określony, domyślny dla 2 adres będzie tylko bieżącą linią („.,.”), chyba że
inaczej określono w poniższych opisach poleceń. Jeśli jest jeden adres
określony, 2 adres określa tylko ten wiersz, chyba że w art
następujące opisy poleceń.

Będzie to błąd, jeśli pierwszy adres jest większy niż drugi adres.

Jeśli bufor edycji jest pusty i oba adresy są określone za pomocą polecenia
inne niż !, napisać, wqlub wyjść poleceń lub którykolwiek z adresów nie jest zerem, to
będzie błędem.

liczyć Dodatnia liczba dziesiętna. Jeśli liczyć jest określone, będzie ono równoważne
podanie dodatkowego adresu do polecenia, chyba że określono inaczej
poniższe opisy poleceń. Dodatkowy adres będzie równy
ostatni adres podany w poleceniu (jawnie lub domyślnie) plus
liczyć−1.

Jeśli spowodowałoby to adres większy niż ostatnia linia edycji
buforze, należy go skorygować tak, aby był równy ostatniej linii bufora edycji.

Flagi Jeden lub więcej znaków „+”, '-', „#”, 'P'lub „ja” (łokieć). Flaga
mogą być postacie -oddzielne, w dowolnej kolejności lub kombinacji. The
znaków „#”, 'P', „ja” spowoduje zapisanie linii w formacie
określone przez polecenie z określonym Flagi.

Wiersze, które należy zapisać, są następujące:

1. Wszystkie linie bufora edycji zapisane podczas wykonywania ex &, ~, podstęp,
numer, koncepcja, , s, wizualny, z Polecenia należy zapisywać zgodnie ze specyfikacją
by Flagi.

2. Po zakończeniu ex polecenie z flagą jako argumentem, the
bieżący wiersz zostanie zapisany w sposób określony przez Flagi, chyba że bieżąca linia
była ostatnią linią zapisaną przez polecenie.

Postaci „+” i '-' powodują wartość bieżącej linii po
wykonanie ex polecenie, które należy dostosować za pomocą adresu przesunięcia, jak opisano w
Adresowanie in ex. Korekta ta powinna nastąpić przed ustawieniem bieżącej linii
napisane w sposób opisany w punkcie 2. powyżej.

Domyślnie dla Flagi nie będzie żadnego.

bufor Jeden z wielu nazwanych obszarów do przechowywania tekstu. Określono nazwane bufory
znakami alfanumerycznymi ustawień narodowych POSIX. Będzie też jeden
bufor „nienazwany”. Jeśli nie określono bufora dla poleceń edytora korzystających z a
buforu, należy zastosować bufor nienazwany. Polecenia przechowujące tekst w buforach
przechowuje tekst w stanie sprzed wejścia w życie polecenia i przechowuje
tekst występujący wcześniej w pliku przed tekstem występującym w pliku później,
niezależnie od tego, jak określono region tekstowy. Polecenia przechowujące tekst w
bufory przechowują tekst w nienazwanym buforze, a także w dowolnym określonym
bufor.

In ex poleceń, nazwy buforów są określane jako same nazwy. W otwartym lub
polecenia trybu wizualnego nazwa jest poprzedzona podwójnym cudzysłowem („””) postać.

Jeśli określona nazwa bufora jest wielką literą i zawartość bufora
mają zostać zmodyfikowane, bufor należy dołączyć, a nie być
nadpisany. Jeżeli bufor nie jest modyfikowany, podanie nazwy bufora w
małe i wielkie litery dają identyczne wyniki.

Będą także bufory oznaczone numerami od 1 do 9. Otwarte i wizualne
tryb, jeśli obszar tekstu zawierający znaki z więcej niż jednej linii jest
modyfikowane przez vi c or d polecenia, znak ruchu powiązany z
dotychczasowy c or d Commands określa, że ​​tekst w buforze będzie w trybie liniowym, lub
Polecenia %, `, /, ?, (, ), N, n, {lub } służą do definiowania obszaru tekstu
dotychczasowy c or d poleceń, zawartość buforów od 1 do 8 zostanie przeniesiona do
bufor nazwany następną, numerycznie większą wartością, zawartość bufora 9
zostanie odrzucony, a obszar tekstu zostanie skopiowany do bufora 1. To
oprócz kopiowania tekstu do bufora określonego przez użytkownika lub bez nazwy
bufor lub jedno i drugie. Bufory numeryczne można określić jako bufor źródłowy dla otwarcia
i polecenia trybu wizualnego; jednakże określając bufor numeryczny podczas zapisu
cel polecenia w trybie otwartym lub wizualnym powinien mieć nieokreślone wyniki.

Tekst każdego bufora powinien znajdować się w wierszu lub
tryb znakowy. Dołączenie tekstu do niepustego bufora ustawia odpowiedni tryb
charakterystyka dołączanego tekstu. Dołączanie tekstu do bufora powinno
spowodować utworzenie przynajmniej jednej dodatkowej linii w buforze. Cały tekst
przechowywane w buforach przez ex polecenia powinny być w trybie liniowym. The ex komendy, które
użyj buforów jako źródła tekstu, określ indywidualnie sposób buforowania różnych
tryby są obsługiwane. Każde polecenie w trybie otwartym lub wizualnym, które używa buforów dla dowolnego
cel określa indywidualnie tryb tekstu przechowywanego w buforze i
jak obsługiwane są bufory różnych trybów.

filet Tekst polecenia używany do wyprowadzenia nazwy ścieżki. Wartość domyślna to prąd
ścieżka, jak zdefiniowano wcześniej, w takim przypadku, jeśli nie ma jeszcze bieżącej ścieżki
zostało ustalone, stanowi to błąd, chyba że zostało to wyraźnie zaznaczone w pkt
poniższe opisy poszczególnych poleceń. Jeśli tekst polecenia zawiera jakiekolwiek
postaci '~', '{', '[', '*', '?', „$”, „””, cudzysłów, pojedynczy cudzysłów,
I , zostanie poddany procesowi „rozszerzenia powłoki”,
Jak opisano poniżej; jeśli zostanie zwrócona więcej niż jedna ścieżka i polecenie
oczekuje tylko jednego, będzie to błąd.

Proces rozwijania powłoki w edytorze należy wykonać w następujący sposób. The ex
narzędzie przekaże dwa argumenty do programu nazwanego opcją edycji powłoki;
pierwszy będzie −c, a drugi będzie ciągiem znaków "Echo" i polecenie
tekst jako pojedynczy argument. Standardowe wyjście i błąd standardowy tego
polecenie zastępuje tekst polecenia.

! Znak, który można dodać do nazwy polecenia w celu modyfikacji jego działania, np
szczegółowo opisano w opisach poszczególnych poleceń. Z wyjątkiem ex
czytać, napisać, ! polecenia, '!' znak będzie działać jako modyfikator tylko wtedy, gdy
nie ma znaków pomiędzy nim a nazwą polecenia.

zapamiętane szukanie kierunek
Połączenia vi Polecenia N i n rozpocznij wyszukiwanie w przód lub w tył
bufor edycji oparty na zapamiętanym kierunku wyszukiwania, którym jest początkowo
rozbrojony i ustawiany przez ex światowy, v, s, etykieta polecenia, a vi / i ?
Polecenia.

Skracać
streszczenie:
Ab[skrócić][lhs Rhs]

If lhs i Rhs nie są określone, wpisz aktualną listę skrótów i nic nie rób
więcej.

Implementacje mogą ograniczać zestaw znaków akceptowanych w lhs or Rhs, oprócz tego
znaki do wydrukowania i znaki nie będą ograniczone. Dodatkowy
ograniczenia zostaną określone w ramach wdrożenia.

Zarówno lhs i Rhs, dowolny znak może zostać zmieniony za pomocą a -V, w takim przypadku
znaków nie należy używać do rozdzielania lhs od Rhs, i ucieczka -V będzie
odrzucone.

W otwartym i wizualnym trybie wprowadzania tekstu, jeśli nie jest to słowo lub znak, przed którym nie ma ucieczki
przez A - Znak V wprowadza się po znaku słowa, należy sprawdzić, czy a
zestaw pasujących znaków lhs, w tekście wprowadzonym podczas tego polecenia. Jeśli to jest
znalezione, efekt będzie taki, jak gdyby Rhs wprowadzono zamiast lhs.

Zbiór sprawdzanych znaków jest zdefiniowany w następujący sposób:

1. Jeśli przed słowem nie wstawiono żadnych znaków i nie jest to słowo lub postacie
który spowodował sprawdzenie, zestaw znaków będzie się składał ze słowa znak.

2. Jeżeli znak wstawiony przed słowem i nie-słowem lub postacie, które
wywołany sprawdzeniem jest znak słowny, zestaw znaków będzie się składał z
znaki wstawiane bezpośrednio przed znakami wyzwalającymi, którymi są słowa
znaków plus wyzwalający znak słowa.

3. Jeżeli znak wstawiony przed słowem i nie-słowem lub postacie, które
wywołane sprawdzeniem nie jest znak słowny, z którego składa się zestaw znaków
znaki, które zostały wstawione przed znakami wyzwalającymi, które nie są żadnymi
znaków ani znaków wyrazu plus wyzwalający znak słowa.

Nie jest określone, czy lhs argument wprowadzony dla ex skracać i niekrótki
polecenia są zastępowane w ten sposób. Niezależnie od tego, czy nastąpi wymiana, czy nie,
skutek polecenia będzie taki, jak gdyby zamiana nie nastąpiła.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Dodać
streszczenie:
[1 adres] a[dołącz][!]

Wchodzę ex tryb wprowadzania tekstu; wprowadzony tekst zostanie umieszczony po określonej linii. Jeśli linia
podano zero, tekst zostanie umieszczony na początku bufora edycyjnego.

Na to polecenie ma wpływ numer i automatyczne wcięcie opcje edycji; śledząc
nazwa polecenia z '!' spowoduje automatyczne wcięcie edytować ustawienie opcji, które ma być przełączane
tylko czas trwania tego polecenia.

Aktualny linia: Ustaw na ostatnią linię wejściową; jeśli nie wprowadzono żadnych linii, ustaw na określoną
linii lub do pierwszej linii bufora edycji, jeśli określono linię zerową, lub zero, jeśli
bufor edycji jest pusty.

Aktualny kolumna: Ustaw na nie- .

Argumenty
streszczenie:
ar[gs]

Zapisz bieżącą listę argumentów, umieszczając pomiędzy nią bieżący wpis listy argumentów, jeśli istnieje '['
i ']' postacie.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

zmiana
streszczenie:
[2 adres] c[Hange][!][liczyć]

Wchodzę ex tryb wprowadzania tekstu; wprowadzony tekst zastępuje określone wiersze. Określony
linie zostaną skopiowane do nienazwanego bufora, który stanie się buforem trybu liniowego.

Na to polecenie ma wpływ numer i automatyczne wcięcie opcje edycji; śledząc
nazwa polecenia z '!' spowoduje automatyczne wcięcie edytować ustawienie opcji, które ma być przełączane
tylko czas trwania tego polecenia.

Aktualny linia: Ustaw na ostatnią linię wejściową; jeśli nie wprowadzono żadnych linii, ustaw poprzednią linię
pierwszego adresu lub do pierwszej linii bufora edycji, jeśli nie poprzedzają jej żadne linie
pierwszy adres lub do zera, jeśli bufor edycji jest pusty.

Aktualny kolumna: Ustaw na nie- .

zmiana Informator
streszczenie:
cd[ir][!][katalog]
cd[!][katalog]

Zmień bieżący katalog roboczy na katalog.

Jeśli nie katalog argument jest określony i HOME zmienna środowiskowa jest ustawiona na wartość inną niż
wartość null i niepusta, katalog domyślnie przyjmuje wartość podaną w pliku HOME
Zmienna środowiskowa. Jeśli HOME zmienna środowiskowa jest pusta lub jest niezdefiniowana, the
domyślna wartość katalog jest zdefiniowany w implementacji.

Jeśli nie '!' jest dołączany do nazwy polecenia i od tego czasu bufor edycji został zmodyfikowany
ostatni pełny zapis, a bieżąca ścieżka nie zaczyna się od a „/”, to powinno byc
błąd.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Skopiuj
streszczenie:
[2 adres] co[py] 1 adres [Flagi]
[2 adres] t 1 adres [Flagi]

Skopiuj określone linie po określonej linii docelowej; linia zerowa to określa
linie należy umieścić na początku bufora edycyjnego.

Aktualny linia: Ustaw na ostatnią skopiowaną linię.

Aktualny kolumna: Ustaw na nie- .

Usuń
streszczenie:
[2 adres] d[wybierać][bufor][liczyć][Flagi]

Usuń określone linie do bufora (domyślnie jest to bufor bez nazwy), który powinien
stać się buforem trybu liniowego.

Flagi mogą występować bezpośrednio po nazwie polecenia; Widzieć Command Linia Rozbiór gramatyczny zdania in ex.

Aktualny linia: Ustaw linię następującą po usuniętych liniach lub ostatnią linię w edycji
bufor, jeśli ta linia znajduje się poza końcem bufora edycji, lub do zera, jeśli bufor edycji jest
pusty.

Aktualny kolumna: Ustaw na nie- .

Edytuj
streszczenie:
e[powiedział][!][+komenda][filet]
ex[!][+komenda][filet]

Jeśli nie '!' jest dołączany do nazwy polecenia i od tego czasu bufor edycji został zmodyfikowany
ostatni pełny zapis, będzie to błąd.

If filet jest określony, zastąp bieżącą zawartość bufora edycji bieżącą
zawartość fileti ustaw bieżącą ścieżkę na filet. Jeśli filet nie jest określony, wymienić
bieżącą zawartość bufora edycji z bieżącą zawartością pliku o nazwie
bieżąca nazwa ścieżki. Jeśli z jakiegoś powodu nie można uzyskać dostępu do bieżącej zawartości pliku,
bufor edycji powinien być pusty.

Połączenia +komenda opcja będzie -ograniczony; znaków w +komenda mogą
można uciec, poprzedzając je a postać. The +komenda niech będzie
interpretowane jako ex polecenie natychmiast po umieszczeniu zawartości bufora edycji
zastąpione, a bieżąca linia i kolumna zostały ustawione.

Jeśli bufor edycji jest pusty:

Aktualny linia: Ustaw na 0.

Aktualny kolumna: Ustaw na 1.

W przeciwnym razie, jeśli zostanie wykonany w trakcie ex tryb poleceń lub jeśli +komenda argument jest określony:

Aktualny linia: Ustawia ostatnią linię bufora edycji.

Aktualny kolumna: Ustaw na nie- .

W przeciwnym razie, jeśli filet jest pomijany lub daje w wyniku bieżącą nazwę ścieżki:

Aktualny linia: Ustaw na pierwszą linię bufora edycji.

Aktualny kolumna: Ustaw na nie- .

W przeciwnym razie, jeśli filet jest taki sam jak ostatnio edytowany plik, należy ustawić wiersz i kolumnę
następująco; jeżeli plik był wcześniej edytowany, wiersz i kolumnę można ustawić następująco:

Aktualny linia: Ustawia ostatnią wartość przechowywaną podczas ostatniej edycji tego pliku. Jeśli ta wartość jest
nieprawidłowa linia w nowym buforze edycji, ustawiona na pierwszą linię bufora edycji.

Aktualny kolumna: Jeśli bieżąca linia została ustawiona na ostatnią wartość przechowywaną, gdy plik był ostatni
edytowany, ustawiany na ostatnią wartość przechowywaną podczas ostatniej edycji pliku. W przeciwnym razie lub jeśli
ostatnia wartość nie jest prawidłową kolumną w nowym buforze edycji, ustawiona na nie- .

Inaczej:

Aktualny linia: Ustaw na pierwszą linię bufora edycji.

Aktualny kolumna: Ustaw na nie- .

filet
streszczenie:
f[s][filet]

Jeśli filet argument, alternatywna ścieżka zostanie ustawiona na bieżącą
pathname, a bieżąca ścieżka zostanie ustawiona na filet.

Napisz wiadomość informacyjną. Jeżeli plik ma aktualną nazwę ścieżki, należy ją uwzględnić
w tej wiadomości; w przeciwnym razie komunikat będzie wskazywał, że nie ma bieżącej ścieżki.
Jeśli bufor edycji zawiera linie, bieżący numer linii i liczba linii w pliku
bufor edycyjny będzie zawarty w tej wiadomości; w przeciwnym razie wiadomość będzie o tym informować
bufor edycji jest pusty. Jeśli bufor edycji został zmodyfikowany od czasu ostatniego ukończenia
napisz, fakt ten zostanie uwzględniony w tej wiadomości. Jeśli tylko czytać opcja edycji jest ustawiona,
fakt ten zostanie uwzględniony w tej wiadomości. Wiadomość może zawierać inne, nieokreślone
informacje.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Globalne
streszczenie:
[2 adres] g[lobalny] /wzorzec/ [Polecenia]
[2 adres] v /wzorzec/ [Polecenia]

Opcjonalne '!' znak po światowy polecenie będzie takie samo jak wykonanie v
dowództwo.

If wzorzec jest pusty (np. "//") lub nie określono, ostatnie użyte wyrażenie regularne
w poleceniu edytora będzie używane jako wzorzec, wzorzec można wyznaczyć przez
znaków (pokazanych w streszczeniu), a także wszelkich znaków innych niż alfanumeryczne lub nie-alfanumerycznych.
inny niż , , lub podwójny cudzysłów.

Jeśli nie określono żadnych wierszy, domyślnie będą one dotyczyły całego pliku.

Połączenia światowy i v polecenia są logicznie operacjami dwuprzebiegowymi. Najpierw zaznacz linie wewnątrz
określone linie, dla których linia z wyłączeniem zakończenia mecze
(światowy) lub nie pasuje (v or światowy!) określony wzór. Po drugie, wykonaj ex
polecenia wydane przez Polecenia, z bieżącą linią ('.') ustawione na każdą zaznaczoną linię. Jeżeli
podczas tego procesu wystąpi błąd lub zawartość bufora edycji zostanie zastąpiona (np
przykład przez ex edit: polecenie) zostanie zapisany komunikat o błędzie i nie będzie żadnych dalszych poleceń
wynikające z wykonania tego polecenia zostaną przetworzone.

Wielokrotność ex polecenia można określić, wprowadzając wiele poleceń w jednym wierszu za pomocą
A aby je rozdzielić, lub po jednym w wierszu, uciekając przed każdym z
.

Jeśli nie określono żadnych poleceń:

1. Jeśli w ex trybie poleceń, będzie tak, jakby podano polecenie.

2. W przeciwnym razie żadne polecenie nie zostanie wykonane.

Dla dodać, zmiana, wstawić poleceń, wprowadzony tekst powinien być zawarty jako część
polecenie i zakończenie można pominąć, jeśli polecenie zakończy listę
polecenia. ten koncepcja i wizualny polecenia można określić jako jedno z poleceń, w którym
w tym przypadku każda zaznaczona linia powoduje przejście edytora w tryb otwarty lub wizualny. Jeśli otwarte lub
Tryb wizualny można opuścić za pomocą vi Q polecenia, bieżący wiersz zostanie ustawiony na następny
zaznaczoną linię i ponownie wejdź w tryb otwarty lub wizualny, aż pojawi się lista zaznaczonych linii
wyczerpany.

Połączenia światowy, v, anulować poleceń nie można używać w Polecenia. Zaznaczone linie można usunąć
poprzez polecenia wykonywane dla linii występujących wcześniej w pliku niż linie zaznaczone. W
w tym przypadku dla usuniętych linii nie zostaną wykonane żadne polecenia.

Jeżeli zapamiętany kierunek wyszukiwania nie jest ustawiony, światowy i v polecenia powinny to ustawić
Naprzód.

Połączenia autodruk i automatyczne wcięcie opcje edycji zostaną zablokowane na czas trwania g or
v dowództwo.

Aktualny linia: Jeśli nie wykonano żadnych poleceń, ustaw ostatnią zaznaczoną linię. Inaczej jak
określone dla wykonanego ex Polecenia.

Aktualny kolumna: Jeśli nie są wykonywane żadne polecenia, ustaw na nie- ; w przeciwnym razie, jak określono
dla jednostki ex Polecenia.

wstawka
streszczenie:
[1 adres] i[nsert][!]

Wchodzę ex tryb wprowadzania tekstu; wprowadzony tekst należy umieścić przed określoną linią. Jeśli
linia ma wartość zero lub 1, tekst należy umieścić na początku bufora edycyjnego.

Na to polecenie ma wpływ numer i automatyczne wcięcie opcje edycji; śledząc
nazwa polecenia z '!' spowoduje automatyczne wcięcie edytować ustawienie opcji, które ma być przełączane
tylko czas trwania tego polecenia.

Aktualny linia: Ustaw na ostatnią linię wejściową; jeśli nie wprowadzono żadnych linii, ustaw poprzednią linię
określonej linii lub do pierwszej linii bufora edycji, jeśli nie ma żadnych linii
poprzedzający określoną linię lub zero, jeśli bufor edycji jest pusty.

Aktualny kolumna: Ustaw na nie- .

Dołącz do rejestru
streszczenie:
[2 adres] j[oin][!][liczyć][Flagi]

If liczyć jest specyficzne:

Jeżeli nie podano adresu, plik przystąpić polecenie będzie zachowywać się tak, jakby 2 adres Gdzie
bieżąca linia i bieżąca linia plus liczyć (.,. + liczyć).

Jeśli podano jeden adres, plik przystąpić polecenie będzie zachowywać się tak, jakby 2 adres Gdzie
podany adres i podany adres plus liczyć (Addr,Addr + liczyć).

Jeśli określono dwa adresy, plik przystąpić polecenie będzie zachowywać się jak dodatkowe
adres, równy ostatniemu adresowi plus liczyć -1 (adres 1,adres 2,adres 2 + liczyć -1),
został określony.

Jeśli spowodowałoby to drugi adres większy niż ostatnia linia edycji
buforze, należy go skorygować tak, aby był równy ostatniej linii bufora edycji.

Jeśli nie liczyć jest specyficzne:

Jeżeli nie podano adresu, plik przystąpić polecenie będzie zachowywać się tak, jakby 2 adres Gdzie
bieżąca linia i następna linia (.,. +1).

Jeśli podano jeden adres, plik przystąpić polecenie będzie zachowywać się tak, jakby 2 adres Gdzie
podany adres i następna linia (Addr,Addr + 1).

Połącz tekst z określonych linii w jedną linię, która zostanie zastąpiona
określone linie.

Jeśli '!' znak jest dołączany do nazwy polecenia, tzw przystąpić będzie bez
modyfikacja dowolnej linii, niezależnie od bieżących ustawień regionalnych.

W przeciwnym razie w ustawieniach regionalnych POSIX ustaw bieżącą linię na pierwszą z określonych linii,
a następnie dla każdej kolejnej linii postępuj w następujący sposób:

1. Odrzuć prowadzenie znaków z linii, która ma zostać złączona.

2. Jeśli linia do połączenia jest teraz pusta, usuń ją i pomiń kroki od 3 do 5.

3. Jeśli bieżąca linia kończy się na a lub pierwszy znak linii, która ma zostać dołączona
jest ')' znak, połącz linie bez dalszych modyfikacji.

4. Jeśli ostatnim znakiem bieżącego wiersza jest a '.', połącz linie z dwoma
znaków pomiędzy nimi.

5. W przeciwnym razie połącz linie pojedynczym między nimi.

Aktualny linia: Ustaw na pierwszą określoną linię.

Aktualny kolumna: Ustaw na nie- .

Lista
streszczenie:
[2 adres] l[jest][liczyć][Flagi]

Polecenie to będzie równoważne z poleceniem ex polecenie:

[2 adres] p[rint][liczyć] l[Flagi]

See .

Mapa
streszczenie:
mapa[!][lhs Rhs]

If lhs i Rhs nie są określone:

1. Gdyby '!' jest określony, napisz aktualną listę map trybu wprowadzania tekstu.

2. W przeciwnym razie zapisz aktualną listę map trybu poleceń.

3. Nic więcej nie rób.

Implementacje mogą ograniczać zestaw znaków akceptowanych w lhs or Rhs, oprócz tego
znaki do wydrukowania i znaki nie będą ograniczone. Dodatkowy
ograniczenia zostaną określone w ramach wdrożenia. Zarówno lhs i Rhs, może nim być dowolny znak
uciekł z -V, w którym to przypadku znak nie powinien być używany do ograniczania lhs
od Rhs, i ucieczka -V należy odrzucić.

Jeśli postać '!' jest dołączony do mapa nazwę polecenia, mapowanie będzie skuteczne
podczas otwartego lub wizualnego trybu wprowadzania tekstu, a nie koncepcja or wizualny tryb poleceń. To pozwala
lhs mieć dwa różne mapa jednocześnie definicje: jedną dla trybu poleceń i jedną
dla trybu wprowadzania tekstu.

W przypadku mapowań trybu poleceń:

Podczas lhs jest wprowadzany jako dowolna część a vi polecenie w trybie otwartym lub wizualnym (ale nie
jako część argumentów polecenia), działanie będzie wyglądało tak, jakby
odpowiedni Rhs został wprowadzony.

Jeśli jakikolwiek znak w poleceniu, inny niż pierwszy, zostanie zmieniony za pomocą a
-V, znak ten nie będzie częścią dopasowania do lhs.

Nie określono, czy wdrożenia będą wspierać mapa polecenia, gdzie lhs
ma więcej niż jeden znak, gdzie pierwszy znak lhs is
nadający się do druku.

If lhs zawiera więcej niż jeden znak, a pierwszym znakiem jest „#”, śledzony przez
ciąg cyfr odpowiadający ponumerowanemu klawiszowi funkcyjnemu, a następnie, gdy to
zostanie wpisany klawisz funkcyjny, na który zostanie on zamapowany Rhs. Znaki inne niż cyfry
następujące „#” znak reprezentuje również klawisz funkcyjny nazwany przez te znaki
lhs po „#” i może być mapowany Rhs. Nie jest określone w jaki sposób
jakie są nazwy klawiszy funkcyjnych lub jakie klawisze funkcyjne są obsługiwane.

W przypadku mapowań trybu wprowadzania tekstu:

Podczas lhs jest wprowadzany jako dowolna część tekstu wprowadzona podczas wprowadzania tekstu otwartego lub wizualnego
trybach, działanie będzie takie samo Rhs został wprowadzony.

Jeśli jakikolwiek znak w tekście wejściowym zostanie zmieniony za pomocą a - Znak V, to
znak nie powinien być częścią dopasowania do lhs.

Nie jest określone, czy lhs tekst wprowadzony jako następny mapa or usuń mapę Polecenia
zastępuje się Rhs tekst na potrzeby wyświetlania na ekranie; niezależnie od tego
czy wyświetlacz wygląda tak, jakby był odpowiedni Rhs wprowadzono tekst,
skutek polecenia będzie taki, jakby lhs wprowadzono tekst.

Jeśli tylko część lhs zostanie wpisany, nie jest określone jak długo redaktor będzie czekał
dodatkowe, ewentualnie pasujące znaki, zanim potraktujesz już wprowadzone znaki jako
nie pasujące do lhs.

Połączenia Rhs Znaki same będą podlegać remapowaniu, chyba że określono inaczej
dotychczasowy remap opcję edycji, z tą różnicą, że jeśli znaki in lhs występują jako znaki przedrostka w
Rhs, znaki te nie będą ponownie mapowane.

Na terminalach działających w trybie blokowym mapowanie nie musi nastąpić natychmiast (może na przykład nastąpić
po tym jak terminal prześle do systemu grupę znaków), ale osiągnie
takie same skutki, jakby wystąpiły natychmiast.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Mark
streszczenie:
[1 adres] ma[rk] charakter
[1 adres] k charakter

Wdrożenia będą wspierać charakter wartości pojedynczej małej litery standardu POSIX
ustawienia regionalne oraz znaki cudzysłowu i pojedynczego cudzysłowu; wsparcie innych postaci jest
zdefiniowana implementacja.

Jeśli wykonujesz vi m polecenie, ustaw określony znacznik na bieżącą linię i na podstawie 1
numerowany znak, do którego odwołuje się bieżąca kolumna, jeśli istnieje; w przeciwnym razie pozycja kolumny 1.

W przeciwnym razie ustaw określony znacznik na określoną linię i najpierw numeruj od 1
nie- nie- w wierszu, jeśli istnieje; w przeciwnym razie ostatni nie- w
linia, jeśli istnieje; w przeciwnym razie pozycja kolumny 1.

Znak pozostaje powiązany z linią do czasu zresetowania znaku lub linii
usunięte. Jeśli usunięta linia zostanie przywrócona przez kolejną anulować polecenie, wszelkie wcześniejsze znaki
związane z linią, które nie zostały zresetowane, również zostaną przywrócone. Jakiekolwiek użycie
znak niezwiązany z bieżącą linią w buforze edycji będzie błędem.

Znaki ` i ' należy ustawić w sposób opisany wcześniej, bezpośrednio przed poniższym
zdarzenia zachodzą w edytorze:

1. Sposób użycia „$” jako ex adres

2. Użycie dodatniej liczby dziesiętnej jako ex adres

3. Użycie polecenia wyszukiwania jako ex adres

4. Stosowanie odniesienia do znaku jako ex adres

5. Zastosowanie następujących poleceń trybu otwartego i wizualnego: -], %, (, ), [, ], {,
}

6. Zastosowanie następujących poleceń trybu otwartego i wizualnego: ', G, H, L, M, z Jeśli
bieżąca linia ulegnie zmianie w wyniku wykonania polecenia

7. Zastosowanie poleceń trybu otwartego i wizualnego: /, ?, N, `, n jeśli bieżąca linia lub
kolumna ulegnie zmianie w wyniku wykonania polecenia

8. Korzystanie z ex polecenia trybu: z, anulować, światowy, v

W przypadku zasad 1., 2., 3. i 4., ` i ' znaków nie należy ustawiać, jeżeli ex polecenie jest
analizowany zgodnie z zasadą 6.a. W Command Linia Rozbiór gramatyczny zdania in ex.

W przypadku zasad 5., 6. i 7., ` i ' znaczniki nie powinny być ustawiane, jeśli polecenia są używane jako
polecenia ruchu w trybie otwartym i wizualnym.

Dla zasad 1., 2., 3., 4., 5., 6., 7. i 8., ` i ' znaków nie należy ustawiać, jeżeli
polecenie kończy się niepowodzeniem.

Połączenia ` i ' znaczniki należy ustawić w sposób opisany powyżej, każdorazowo przy edycji treści
bufory są zastępowane (łącznie z edycją bufora początkowego), jeśli są otwarte lub wizualne
trybie lub jeśli jest w ex trybie i bufor edycji nie jest pusty przed jakimikolwiek poleceniami lub ruchami
(w tym polecenia lub ruchy określone przez −c or −t opcje lub +komenda
argument) są wykonywane w buforze edycji. Jeśli jest w trybie otwartym lub wizualnym, znaki powinny być
ustaw tak, jakby wykonywał vi m Komenda; w przeciwnym razie, tak jakby wykonywał ex znak dowództwo.

Przy zmianie z ex tryb otwarty lub tryb wizualny, jeśli ` i ' znaków już nie ma
Ustaw ` i ' znaki należy ustawić w sposób opisany wcześniej.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Przenieść
streszczenie:
[2 adres] m[ove] 1 adres [Flagi]

Przesuń określone linie po określonej linii docelowej. Miejsce docelowe linii zerowej
określa, że ​​linie zostaną umieszczone na początku bufora edycji. To powinno byc
błąd, jeśli linia docelowa znajduje się w zakresie linii, które mają zostać przeniesione.

Aktualny linia: Ustawia ostatnią z przesuniętych linii.

Aktualny kolumna: Ustaw na nie- .

Następna
streszczenie:
n[ext][!][+komenda][filet ...]

Jeśli nie '!' jest dołączany do nazwy polecenia i od tego czasu bufor edycji został zmodyfikowany
ostatni pełny zapis, będzie to błąd, chyba że plik zostanie pomyślnie zapisany jako
określone przez automatyczne pisanie opcja.

Jeśli określono jeden lub więcej plików:

1. Ustaw listę argumentów na określone nazwy plików.

2. Ustaw bieżące odwołanie do listy argumentów jako pierwszy wpis na liście argumentów.

3. Ustaw bieżącą ścieżkę na pierwszą określoną nazwę pliku.

Inaczej:

1. Błędem będzie brak kolejnych nazw plików na liście argumentów po
nazwa pliku, do której aktualnie się odwołuje.

2. Ustaw bieżącą ścieżkę i aktualne odwołanie do listy argumentów na następującą po niej nazwę pliku
nazwa pliku, do której aktualnie odwołuje się lista argumentów.

Zastąp zawartość bufora edycji zawartością pliku o nazwie bieżącej
nazwa ścieżki. Jeśli z jakiegoś powodu nie można uzyskać dostępu do zawartości pliku, bufor edycji
będzie pusty.

Na to polecenie ma wpływ automatyczne pisanie i napisz cokolwiek opcje edycji.

Połączenia +komenda opcja będzie -ograniczony; znaków, za pomocą których można uciec
poprzedzając je literą a postać. The +komenda należy interpretować jako ex
polecenie natychmiast po zastąpieniu zawartości bufora edycji i
bieżący wiersz i kolumna zostały ustawione.

Aktualny linia: Ustaw zgodnie z opisem dla edit dowództwo.

Aktualny kolumna: Ustaw zgodnie z opisem dla edit dowództwo.

Numer
streszczenie:
[2 adres] nu[bursztyn][liczyć][Flagi]
[2 adres] #[liczyć][Flagi]

Polecenia te będą równoważne z poleceniem ex polecenie:

[2 adres] p[rint][liczyć] #[Flagi]

See .

Otwarte
streszczenie:
[1 adres] o[długopis] /wzorzec/ [Flagi]

To polecenie nie musi być obsługiwane na terminalach działających w trybie blokowym lub terminalach z niewystarczającą liczbą
możliwości. Jeśli standardowe wejście, standardowe wyjście lub standardowy błąd nie są terminalami
urządzeń, wyniki są nieokreślone.

Wejdź w tryb otwarty.

Można pominąć końcowy ogranicznik wzorzec na końcu wiersza poleceń. Jeśli
wzorzec jest pusty (np. "//") lub nie określono, ostatnie wyrażenie regularne użyte w
edytor będzie używany jako wzór. Wzór może być ograniczony przez
znaków (pokazanych w streszczeniu), a także wszelkich znaków alfanumerycznych lub innych niż inny niż
, , lub podwójny cudzysłów.

Aktualny linia: Ustaw na określoną linię.

Aktualny kolumna: Ustaw na nie- .

Zachować
streszczenie:
przed[służyć]

Zapisz bufor edycji w formie, którą można później odzyskać za pomocą −r opcja lub przez
używając ex wyzdrowieć Komenda. Po zapisaniu pliku zostanie wysłana wiadomość pocztowa
wysłane do użytkownika. Wiadomość tę można odczytać po wywołaniu przycisku mailx pożytek. ten
wiadomość powinna zawierać nazwę pliku, czas przechowywania oraz nazwę pliku ex komenda
które można wykorzystać do odzyskania pliku. W mailu mogą być zawarte dodatkowe informacje
wiadomość.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.


streszczenie:
[2 adres] p[rint][liczyć][Flagi]

Zapisz zaadresowane linie. Zachowanie jest nieokreślone, jeśli liczba kolumn w pliku
wyświetlana jest mniejsza niż liczba kolumn wymaganych do zapisania dowolnego pojedynczego znaku w pliku
linie są pisane.

Znaki niedrukowalne, z wyjątkiem , należy zapisać jako zdefiniowane w implementacji
ciągi wieloznakowe.

Jeśli # podano flagę lub numer ustawiona jest opcja edycji, każda linia powinna być poprzedzona
według numeru wiersza w następującym formacie:

„%6d ", <linia numer>

Jeśli l podano flagę lub podstęp opcja edycji jest ustawiona:

1. Znaki wymienione w tomie Base Definitions normy POSIX.1-2008, Stół 5-1 ,
Ucieczka Sekwencje i Powiązany Akcje należy zapisać jako odpowiednią ucieczkę
sekwencja.

2. Znaki niedrukowalne, których nie ma w tomie Base Definitions normy POSIX.1-2008, Stół
5-1 , Ucieczka Sekwencje i Powiązany Akcje należy zapisać jako jedną trzycyfrową ósemkę
numer (z poprzedzającym ) dla każdego bajtu znaku (najbardziej znaczący
pierwszy bajt).

3. Koniec każdej linii należy oznaczyć literą „$”i dosłownie „$” znaki wewnątrz
wiersz należy zapisać z poprzedzaniem .

Długie liny należy złożyć; długość, na której następuje fałdowanie, nie jest określona, ​​ale powinna
być odpowiednie dla terminala wyjściowego, biorąc pod uwagę liczbę kolumn terminala.

Jeśli linia jest złożona i l flaga nie jest określona i podstęp opcja edycji nie jest ustawiona,
nie określono, czy znak wielokolumnowy w pozycji składania jest oddzielony;
nie należy go wyrzucać.

Aktualny linia: Ustaw na ostatnią zapisaną linię.

Aktualny kolumna: Bez zmian, jeśli bieżąca linia pozostaje niezmieniona; w przeciwnym razie ustaw na nie- .

PUT
streszczenie:
[1 adres] pu[t][bufor]

Dołącz tekst z określonego bufora (domyślnie nienazwanego bufora) do określonego
linia; linia zerowa określa, że ​​tekst zostanie umieszczony na początku edycji
bufor. Każda część linii w buforze stanie się nową linią w buforze edycji,
niezależnie od trybu bufora.

Aktualny linia: Ustaw na ostatnią linię wprowadzoną do bufora edycji.

Aktualny kolumna: Ustaw na nie- .

porzucić
streszczenie:
q[uit][!]

Jeśli nie '!' jest dołączany do nazwy polecenia:

1. Jeżeli bufor edycyjny został zmodyfikowany od czasu ostatniego pełnego zapisu, będzie to:
Błąd.

2. Jeśli na liście argumentów znajdują się nazwy plików po aktualnie powołanej nazwie pliku,
a ostatnim poleceniem nie było a porzucić, wq, wyjśćlub ZZ (Patrz Wyjście) polecenie, będzie to polecenie
Błąd.

W przeciwnym razie zakończ sesję edycyjną.

Czytaj
streszczenie:
[1 adres] r[EAD][!][filet]

If '!' nie jest pierwszym nie- podążać za nazwą polecenia, kopię określonego
plik zostanie dodany do bufora edycji po określonej linii; linia zerowa określa
że kopia zostanie umieszczona na początku bufora edycyjnego. Liczba linii i
odczytane bajty zostaną zapisane. Jeśli nie filet zostanie nazwany, bieżąca nazwa ścieżki będzie brzmieć
domyślny. Jeśli nie ma bieżącej nazwy ścieżki, to filet stanie się bieżącą nazwą ścieżki. Jeśli
nie ma bieżącej nazwy ścieżki lub filet operand, będzie to błąd. Określanie filet że
nie jest typu regularnego, powinien mieć nieokreślone wyniki.

W przeciwnym razie, jeśli filet jest poprzedzony '!', reszta linii po '!' powinna mieć '%',
„#”, '!' znaki rozwinięte zgodnie z opisem w Command Linia Rozbiór gramatyczny zdania in ex.

Połączenia ex Następnie narzędzie przekaże dwa argumenty do programu nazwanego przez edycję powłoki
opcja; pierwszy będzie −c a drugi będzie rozszerzonym argumentem do czytać
polecenie jako pojedynczy argument. Standardowe wejście programu powinno być ustawione na
standardowe wejście ex programu w momencie jego wywołania. Błąd standardowy i standard
Dane wyjściowe programu zostaną dodane do bufora edycji po określonej linii.

Każda linia w skopiowanym pliku lub wynikach programu (zgodnie z ograniczeniami znaki lub
koniec pliku lub wyniku, jeśli nie jest bezpośrednio poprzedzony a ), niech będzie
osobną linię w buforze edycji. Wszelkie wystąpienia I
pary na wyjściu należy traktować jako pojedyncze postacie.

Szczególne znaczenie '!' po czytać polecenie można zastąpić poprzez ucieczkę
to z postać.

Aktualny linia: Jeśli do bufora edycji nie zostaną dodane żadne linie, niezmienione. W przeciwnym razie, jeśli jest otwarty
lub tryb wizualny, ustaw na pierwszą linię wprowadzoną do bufora edycji. W przeciwnym razie ustaw na
ostatnia linia wprowadzona do bufora edycji.

Aktualny kolumna: Ustaw na nie- .

Recover
streszczenie:
rec[koniec][!] filet

Jeśli nie '!' jest dołączany do nazwy polecenia i od tego czasu bufor edycji został zmodyfikowany
ostatni pełny zapis, będzie to błąd.

Jeśli nie filet podano operand, wówczas zostanie użyta bieżąca nazwa ścieżki. Jeżeli nie ma
bieżąca nazwa ścieżki lub filet operand, będzie to błąd.

Jeśli wcześniej nie zapisano żadnych informacji dotyczących odzyskiwania filetThe wyzdrowieć polecenie
zachowywać się identycznie jak edit polecenie oraz komunikat informacyjny w tym celu
zostać napisanym.

W przeciwnym razie ustaw bieżącą ścieżkę na fileti zastąp bieżącą zawartość edycji
bufor z odzyskaną zawartością filet. Jeśli istnieje wiele wystąpień pliku
do odzyskania, zostanie odzyskany ostatnio zapisany plik oraz informacja
zostanie wyświetlony komunikat informujący, że istnieją poprzednie wersje pliku, które można odzyskać
pisemny. Edytor będzie zachowywał się tak, jakby zawartość bufora edycyjnego już była
zmodyfikowany.

Aktualny filet: Ustaw zgodnie z opisem dla edit dowództwo.

Aktualny kolumna: Ustaw zgodnie z opisem dla edit dowództwo.

Rewind
streszczenie:
ponownie [ind][!]

Jeśli nie '!' jest dołączany do nazwy polecenia i od tego czasu bufor edycji został zmodyfikowany
ostatni pełny zapis, będzie to błąd, chyba że plik zostanie pomyślnie zapisany jako
określone przez automatyczne pisanie opcja.

Jeśli lista argumentów jest pusta, będzie to błąd.

Bieżące odwołanie do listy argumentów i bieżąca nazwa ścieżki zostaną ustawione na pierwsze
nazwa pliku na liście argumentów.

Zastąp zawartość bufora edycji zawartością pliku o nazwie bieżącej
nazwa ścieżki. Jeśli z jakiegoś powodu nie można uzyskać dostępu do zawartości pliku, bufor edycji
będzie pusty.

Na to polecenie ma wpływ automatyczne pisanie i napisz cokolwiek opcje edycji.

Aktualny linia: Ustaw zgodnie z opisem dla edit dowództwo.

Aktualny kolumna: Ustaw zgodnie z opisem dla edit dowództwo.

Zestaw
streszczenie:
se [t][opcja[=[wartość]] ...][Nieopcja ...][opcja? ...][cała kolekcja]

Jeśli nie określono żadnych argumentów, wpisz wartość semestr opcję edycji i te opcje
których wartości zostały zmienione w stosunku do ustawień domyślnych; kiedy argument cała kolekcja is
określony, wpisz wszystkie wartości opcji.

Podanie nazwy opcji, po której następuje znak '?' spowoduje bieżącą wartość tego
opcja do napisania. The '?' można oddzielić od nazwy opcji zero lub więcej
postacie. The '?' będzie konieczne tylko w przypadku opcji o wartościach logicznych. Wartość logiczna
opcjom można nadać wartości w formularzu zestaw opcja aby je włączyć lub zestaw Nieopcja skręcić
je wyłączone; Opcje łańcuchowe i numeryczne można przypisać za pomocą formularza zestaw opcja=wartość, Każdy
znaki w ciągach mogą być dołączane w niezmienionej postaci, poprzedzając każdy z nich z
ucieczka . Za pomocą jednego polecenia ustawiania można ustawić lub wyświetlić więcej niż jedną opcję
poprzez określenie wielu argumentów, każdy oddzielony od następnego jednym lub większą liczbą
postacie.

See Edytuj Opcje in ex aby uzyskać szczegółowe informacje na temat konkretnych opcji.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Powłoka
streszczenie:
cii[łokieć]

Wywołaj program wymieniony w pliku powłoka opcję edycji z pojedynczym argumentem -tj (interaktywny
tryb). Edycja zostanie wznowiona po zamknięciu programu.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Źródło
streszczenie:
Więc[urwa] filet

Przeczytaj i wykonaj ex komendy z filet. Linie w pliku, które są pustymi liniami, powinny być
ignorowane.

Aktualny linia: Jak określono dla danej osoby ex Polecenia.

Aktualny kolumna: Jak określono dla danej osoby ex Polecenia.

namiastka
streszczenie:
[2 adres] s[substytut][/wzorzec/zastępstwo/[Opcje][liczyć][Flagi]]
[2 adres] &[Opcje][liczyć][Flagi]]
[2 adres] ~[Opcje][liczyć][Flagi]]

Zastąp pierwsze wystąpienie wzorca wzorzec przez sznurek zastępstwo na każdym określonym
linia. (Widzieć Regularna Expressions in ex i Wymiana Smyczki in ex.) Wszelkie znaki niealfabetyczne,
nie- ogranicznik inny niż , '|', lub można użyć podwójnego cudzysłowu
zamiast „/”. znaków można używać do unikania ograniczników,
znaków i innych znaków specjalnych.

Można pominąć końcowy ogranicznik wzorzec lub zastępstwo na końcu polecenia
linia. Jeśli oba wzorzec i zastępstwo nie są określone lub są puste (na przykład "//"),
trwać s polecenie należy powtórzyć. Gdyby tylko wzorzec nie jest określony lub jest pusty, ostatni
Jako wzorzec należy zastosować wyrażenie regularne użyte w edytorze. Gdyby tylko zastępstwo nie jest
określony lub jest pusty, wzór nie zostanie zastąpiony niczym. Jeżeli całość
wzór wymiany to '%', ostatni wzorzec zamiany na an s należy zastosować polecenie.

Wprowadzanie A W zastępstwo (co wymaga ucieczki W ex tryb
i ucieczka -V w otwartym lub vi tryb) podzieli linię w tym punkcie,
utworzenie nowej linii w buforze edycji. The zostaną odrzucone.

If Opcje zawiera list 'g' (światowy), wszystkie nienakładające się wystąpienia wzorca
w wierszu należy zastąpić.

If Opcje zawiera list 'C' (potwierdzać), to przed każdą podstawieniem linia powinna
zostać napisanym; napisany wiersz odzwierciedla wszystkie poprzednie podstawienia. W następujących
linia, znaki należy wpisać pod znakami wiersza, które są
przed wzorzec do wymiany oraz '^' znaki zapisane pod znakami
Włączone do systemu wzorzec do wymiany. The ex narzędzie będzie następnie czekać na odpowiedź od
użytkownik. Odpowiedź twierdząca powoduje dokonanie zamiany, natomiast każda inna
dane wejściowe nie powodują podstawienia. Odpowiedź twierdząca powinna składać się z linii
z odpowiedzią twierdzącą (zdefiniowaną w bieżących ustawieniach regionalnych) na początku
linia. Linia ta podlega edycji w taki sam sposób jak ex wiersz poleceń.

W przypadku przerwania (patrz rozdział ZDARZENIA ASYNCHRONICZNE), wszelkie modyfikacje potwierdzone przez
użytkownik zostanie zachowany w buforze edycji po przerwaniu.

Jeżeli zapamiętany kierunek wyszukiwania nie jest ustawiony, s polecenie ustawi je na forward.

W drugim podsumowaniu pt & polecenie powtórzy poprzednie podstawienie, tak jakby &
polecenie zostało zastąpione przez:

s/wzorzec/zastępstwo/

gdzie wzorzec i zastępstwo są takie, jak określono w poprzednim s, &lub ~ dowództwo.

W trzecim podsumowaniu pt ~ polecenie powtórzy poprzednie podstawienie, tak jakby '~'
zostały zastąpione przez:

s/wzorzec/zastępstwo/

gdzie wzorzec będzie ostatnim wyrażeniem regularnym określonym edytorowi, oraz zastępstwo powinien
pochodzić z poprzedniego podstawienia (w tym & i ~) Komenda.

Na te polecenia mają wpływ: LC_MESSAGES zmienna środowiskowa.

Aktualny linia: Ustaw na ostatnią linię, w której nastąpiła zamiana, lub bez zmian, jeśli nie
nastąpiła zamiana.

Aktualny kolumna: Ustaw na nie- .

Zawiesić
streszczenie:
su[wydać][!]
st[op][!]

Pozwól kontroli powrócić do procesu wywoływania; ex zawiesi się tak, jakby miał
odebrał sygnał SIGTSTP. Zawieszenie nastąpi tylko wtedy, gdy włączona jest kontrola zadań
wywołująca powłoka (patrz opis zestaw −m).

Na te polecenia mają wpływ: automatyczne pisanie i napisz cokolwiek opcje edycji.

Prąd podejrz charakter (zob stty) będzie równoważne zawieszać dowództwo.

etykieta
streszczenie:
ta [g][!] ciąg tagów

Wyniki nie są określone, jeśli format pliku znaczników nie jest zgodny z określonym w pliku tagi
narzędzie (patrz tagi) opis.

Połączenia etykieta polecenie będzie szukać ciąg tagów w plikach znaczników, o których mowa w etykieta edit
opcję, w kolejności, w jakiej zostały określone, aż do odwołania do ciąg tagów jest znalezione. Akta
będą przeszukane od początku do końca. Jeżeli nie zostanie znalezione żadne odniesienie, oznacza to błąd
i zostanie zapisany odpowiedni komunikat o błędzie. Jeśli odniesienie nie zostanie znalezione lub jeśli
podczas przetwarzania pliku, o którym mowa w ust etykieta opcję edycji, będzie to opcja
błędu, a przy pierwszym wystąpieniu takiego błędu zapisywany jest komunikat o błędzie.

W przeciwnym razie, jeśli plik tagów zawierał wzór, wzór będzie traktowany jak zwykły
wyrażenie używane w edytorze; na przykład w celach s dowództwo.

Jeśli ciąg tagów znajduje się w pliku o innej nazwie niż bieżąca ścieżka, ustaw opcję
bieżącą ścieżkę do nazwy tego pliku i zastąp zawartość bufora edycji
z zawartością tego pliku. W tym przypadku, jeśli nie '!' jest dołączany do nazwy polecenia,
i bufor edycyjny został zmodyfikowany od czasu ostatniego pełnego zapisu, będzie to błąd,
chyba że plik zostanie pomyślnie zapisany zgodnie z instrukcją automatyczne pisanie opcja.

Na to polecenie ma wpływ automatyczne pisanie, etykieta, długość znacznika, napisz cokolwiek edit
opcje.

Aktualny linia: Jeśli plik znaczników zawierał numer linii, ustaw ten numer linii. Jeśli
numer linii jest większy niż ostatnia linia w buforze edycji, pojawi się komunikat o błędzie
zapisane, a bieżąca linia zostanie ustawiona tak, jak określono dla edit dowództwo.

Jeśli plik tagów zawierał wzorzec, ustaw pierwsze wystąpienie wzorca w pliku
plik. Jeżeli nie zostanie znaleziony pasujący wzorzec, zostanie zapisany komunikat o błędzie i bieżący
linia powinna być ustawiona tak, jak określono dla edit dowództwo.

Aktualny kolumna: Jeśli plik tagów zawierał odwołanie do numeru linii i ten numer linii
nie był większy niż ostatnia linia w buforze edycji lub jeśli plik znaczników zawierał plik
wzorzec i ten wzorzec został znaleziony, ustaw na nie- . W przeciwnym razie ustaw zgodnie z opisem
dotychczasowy edit dowództwo.

Nieskrótowe
streszczenie:
nie[skrót] lhs

If lhs nie jest wpisem w obowiązującym wykazie skrótów (por Skracać), to powinno byc
błąd. W przeciwnym razie usuń lhs z listy skrótów.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

odpiąć
streszczenie:
u[nCzy]

Cofnij zmiany wprowadzone ostatnim poleceniem, które zmodyfikowało treść edycji
bufor, w tym anulować. W tym celu światowy, v, koncepcja, wizualny polecenia i
brane są pod uwagę polecenia wynikające z wykonania bufora i odwzorowanych rozwinięć znaków
pojedyncze polecenia.

Jeśli nie poprzedzała go żadna akcja, którą można cofnąć anulować polecenia, będzie to błąd.

Jeśli anulować polecenie przywraca zaznaczone linie, znak również zostanie przywrócony
chyba że został zresetowany po usunięciu wierszy.

Aktualny linia:

1. Jeśli w pliku dodano lub zmieniono linie, ustaw pierwszą dodaną lub zmienioną linię.

2. Ustaw linię przed usunięciem pierwszej linii, jeśli istnieje.

3. Ustaw na 1, jeśli bufor edycji nie jest pusty.

4. Ustaw na zero.

Aktualny kolumna: Ustaw na nie- .

Usuń mapę
streszczenie:
unm[ap][!] lhs

If '!' jest dołączany do nazwy polecenia i if lhs nie jest wpisem na liście tekstów
definicji map trybu wejściowego, będzie to błąd. W przeciwnym razie usuń lhs z listy
definicje map trybu wprowadzania tekstu.

Jeśli nie '!' jest dołączany do nazwy polecenia i if lhs nie jest wpisem na listę
definicji map trybu poleceń, będzie to błąd. W przeciwnym razie usuń lhs z listy
definicje map trybu poleceń.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Wersja
streszczenie:
ja[Rsion]

Napisz wiadomość zawierającą informacje o wersji dla redaktora. Format wiadomości
jest nieokreślony.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Wizualny
streszczenie:
[1 adres] vi[suala][rodzaj][liczyć][Flagi]

If ex jest obecnie w trybie otwartym lub wizualnym, Streszczenie i zachowanie polecenia wizualnego
będzie taki sam jak edit polecenie, jak określono przez Edytuj.

W przeciwnym razie to polecenie nie musi być obsługiwane na terminalach w trybie blokowym lub terminalach z
niewystarczające możliwości. Jeśli standardowe wejście, standardowe wyjście lub standardowy błąd nie są
urządzeń końcowych, wyniki są nieokreślone.

If liczyć jest określona, ​​wartość okno opcja edycji powinna być ustawiona na liczyć (tak jak
opisane w okno). Jeśli '^' określono również znak typu, okno edit
opcja powinna być ustawiona przed użyciem przez znak typu.

Wejdź w tryb wizualny. Jeśli rodzaj nie jest określony, będzie tak, jakby a rodzaj of „+” była
określony. ten rodzaj spowoduje następujące skutki:

+ Umieść początek określonej linii na górze wyświetlacza.

- Umieść koniec określonej linii na dole wyświetlacza.

. Umieść początek określonej linii na środku wyświetlacza.

^ Jeśli określona linia jest mniejsza lub równa wartości okno opcja edycji,
ustaw linię na 1; w przeciwnym razie zmniejsz linię o wartość okno edit
opcja minus 1. Umieść początek tej linii jak najbliżej dołu
wyświetlane linie tak bardzo, jak to możliwe, jednocześnie wyświetlając wartość okno edit
opcja liczba linii.

Aktualny linia: Ustaw na określoną linię.

Aktualny kolumna: Ustaw na nie- .

Pisać
streszczenie:
[2 adres] w[obrzęd][!][>>][filet]
[2 adres] w[obrzęd][!][filet]
[2 adres] wq[!][>>][filet]

Jeśli nie określono żadnych wierszy, domyślnie będą one dotyczyły całego pliku.

Komenda wq będzie równoważne a napisać polecenie, po którym następuje a porzucić Komenda; wq!
będzie równoważne pisać! następnie porzucić. W obu przypadkach, jeśli napisać komenda
zawodzi, porzucić nie należy próbować.

Jeśli po nazwie polecenia nie następuje jeden lub więcej znaków lub filet nie jest
poprzedzone '!' charakter, napisać będzie do pliku.

1. Jeśli >> argument jest podany, a plik już istnieje, linie będą
dołączany do pliku zamiast zastępować jego zawartość. Jeśli >> argumentem jest
określony, a plik jeszcze nie istnieje, nie jest określone, czy zapis
będzie postępować tak, jak gdyby >> argument nie został określony lub zapis się nie powiedzie.

2. Jeśli tylko czytać opcja edycji jest ustawiona (patrz tylko czytać), napisać zakończy się niepowodzeniem.

3. Gdyby filet jest określony i nie jest bieżącą nazwą ścieżki, a plik istnieje, plik napisać
zakończy się niepowodzeniem.

4. Gdyby filet nie zostanie określony, zostanie użyta bieżąca nazwa ścieżki. Jeśli nie ma prądu
nazwa ścieżki, napisać polecenie zakończy się niepowodzeniem.

5. Jeśli używana jest bieżąca nazwa ścieżki, a bieżąca ścieżka została zmieniona przez filet
or czytać poleceń i plik istnieje, plik napisać zakończy się niepowodzeniem. Jeśli napisać is
udany, kolejny napisaćs nie zawiedzie z tego powodu (chyba że prąd
ścieżka zostanie ponownie zmieniona).

6. Jeżeli nie jest zapisywany cały bufor edycyjny, a plik do zapisania istnieje, to
napisać zakończy się niepowodzeniem.

W przypadku zasad 1., 2., 3. i 5., napisać można wymusić poprzez dodanie znaku '!' do
nazwa polecenia.

W przypadku zasad 2., 3. i 5., napisać można wymusić poprzez ustawienie napisz cokolwiek opcję edycji.

Dodatkowe testy zdefiniowane w implementacji mogą powodować napisać nie zdać.

Jeżeli bufor edycyjny jest pusty, zostanie zapisany plik bez zawartości.

Wiadomość informacyjną należy zapisać, podając liczbę zapisanych wierszy i bajtów.

W przeciwnym razie, jeśli po poleceniu następuje jedno lub więcej znaków i plik jest
poprzedzony '!', reszta linii po '!' powinna mieć '%', „#”, '!'
znaki rozwinięte zgodnie z opisem w Command Linia Rozbiór gramatyczny zdania in ex.

Połączenia ex Następnie narzędzie przekaże dwa argumenty do programu nazwanego przez powłoka edit
opcja; pierwszy będzie −c a drugi będzie rozszerzonym argumentem do napisać
polecenie jako pojedynczy argument. Podane linie zostaną zapisane na standardowe wejście
polecenia. Błąd standardowy i standardowe wyjście programu, jeśli takie istnieją
napisane zgodnie z opisem dla Komenda. Jeśli ostatnim znakiem na tym wyjściu nie jest a
, A zostaną zapisane na końcu wyniku.

Szczególne znaczenie '!' po napisać polecenie można zastąpić poprzez ucieczkę
to z postać.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Pisać i Wyjście
streszczenie:
[2 adres] x[it][!][filet]

Jeśli bufor edycji nie został zmodyfikowany od czasu ostatniego ukończenia napisać, wyjść niech będzie
równoważny z porzucić polecenie, lub jeśli a '!' jest dołączany do nazwy polecenia, to zrezygnować!.

Inaczej, wyjść będą równoważne wq polecenie, lub jeśli a '!' jest dołączony do
nazwa polecenia, do wq!.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Jankes
streszczenie:
[2 adres] ya[nk][bufor][liczyć]

Skopiuj określone linie do określonego bufora (domyślnie nienazwanego bufora), który
stanie się buforem liniowym.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Dostosować okno
streszczenie:
[1 adres] z[!][rodzaj ...][liczyć][Flagi]

Jeżeli nie określono żadnej linii, linią domyślną będzie bieżąca linia; Jeśli rodzaj jest pomijany jako
cóż, bieżąca wartość linii powinna być najpierw zwiększona o 1. W przypadku zwiększania prądu
line spowoduje, że będzie ona większa niż ostatnia linia w buforze edycji, powinna to być wartość an
Błąd.

Jeśli tam są znaki pomiędzy rodzaj argument i poprzedni z nazwa polecenia
lub opcjonalnie '!' znaku, będzie to błąd.

If liczyć jest określona, ​​wartość okno opcja edycji powinna być ustawiona na liczyć (tak jak
opisane w okno). Jeśli liczyć zostanie pominięty, domyślnie przyjmuje wartość 2-krotności wartości
przewijać opcję edycji lub jeśli ! została określona, ​​liczba wierszy na wyświetlaczu minus 1.

If rodzaj jest pominięty, to liczyć należy zapisać wiersze rozpoczynające się od określonego wiersza.
Inaczej, liczyć linie zaczynające się od linii określonej przez rodzaj argument będzie
napisany.

Połączenia rodzaj argument zmieni wiersze, które mają zostać zapisane. Możliwe wartości rodzaj są jak
następuje:

− Podany wiersz należy pomniejszyć o następującą wartość:

(((numer of ``-'' postacie) x liczyć) −1)

Jeżeli obliczenie dałoby liczbę mniejszą niż 1, byłoby to błędem. Pisać
linie z bufora edycji, zaczynając od nowej wartości linii, aż do liczyć linie lub
ostatnia linia w buforze edycji została zapisana.

+ Podany wiersz należy zwiększyć o następującą wartość:

(((numer of ``+'' postacie) -1) x liczyć) +1

Jeśli obliczenie dałoby liczbę większą niż ostatnia linia edycji
buforze, będzie to błąd. Zapisz linie z bufora edycji, zaczynając od nowego
wartość linii, aż liczyć linii lub ostatnia linia w buforze edycji
napisany.

=,. Jeśli więcej niż jeden '.' or '=' zostanie określony, będzie to błąd. Następujące
należy podjąć kroki:

1. Gdyby liczyć wynosi zero, nic nie zostanie zapisane.

2. Zapisz jak najwięcej N linie przed bieżącą linią w buforze edycji jako
istnieć. Jeśli liczyć or '!' został określony, N niech będzie:

(liczyć −1) /2

Inaczej, N niech będzie:

(liczyć -3) /2

If N jest liczbą mniejszą niż 3, nie należy wpisywać żadnych wierszy.

3. Gdyby '=' został określony jako znak typu, napisz linię składającą się z
mniejsza z liczby kolumn na wyświetlaczu podzielona przez dwa lub 40 '-'
postacie.

4. Napisz bieżącą linię.

5. Powtórz krok 3.

6. Zapisz jak najwięcej N linie po bieżącej linii w buforze edycji, jeśli istnieją.
N definiuje się jak w kroku 2. Jeżeli N jest liczbą mniejszą niż 3, nie powinno być żadnych linii
pisemny. Gdyby liczyć jest mniejsza niż 3, nie należy zapisywać żadnych wierszy.

^ Podany wiersz należy pomniejszyć o następującą wartość:

(((numer of ``^'' postacie) + 1) x liczyć) −1

Jeżeli obliczenie dałoby liczbę mniejszą niż 1, byłoby to błędem. Pisać
linie z bufora edycji, zaczynając od nowej wartości linii, aż do liczyć linie lub
ostatnia linia w buforze edycji została zapisana.

Aktualny linia: Ustawia ostatnią zapisaną linię, chyba że typ jest taki =, w takim przypadku ustaw na
określoną linię.

Aktualny kolumna: Ustaw na nie- .

Ucieczka
streszczenie:
! komenda
[Addr]! komenda

Zawartość linii po '!' powinna mieć '%', „#”, '!' znaki rozwinięte
jak opisano w Command Linia Rozbiór gramatyczny zdania in ex. Jeśli rozwinięcie powoduje tekst linii
aby zmienić, zostanie on ponownie wyświetlony, poprzedzony pojedynczym '!' znaków.

Połączenia ex Narzędzie wykona program nazwany przez powłoka opcję edycji. Minie dwa
argumenty do programu; pierwszy będzie −c, a drugi będzie rozszerzony
argumenty do ! polecenie jako pojedynczy argument.

Jeśli nie określono żadnych linii, standardowe wejście, standardowe wyjście i standardowy błąd pliku
program powinien być ustawiony na standardowe wejście, standardowe wyjście i standardowy błąd ex
programu w momencie jego wywołania. Ponadto w przypadku edycji zostanie wyświetlony komunikat ostrzegawczy
bufor został zmodyfikowany od czasu ostatniego pełnego zapisu, oraz ostrzec opcja edycji jest ustawiona.

Jeśli podano linie, należy je przekazać do programu jako standardowe wejście, a plik
standardowe wyjście i standardowy błąd programu zastąpią te linie w edycji
bufor. Każda linia wyniku programu (ograniczona przez znaków lub końca
wyniku, jeśli nie jest bezpośrednio poprzedzony a ), powinno być osobną linią
w buforze edycji. Wszelkie wystąpienia I pary na wyjściu
będą traktowane jako osoby samotne postacie. Do podanych linii należy skopiować
nienazwany bufor przed ich zastąpieniem, a nienazwany bufor stanie się linią
bufor trybu.

Jeśli w ex tryb, pojedynczy '!' znak zostanie zapisany po zakończeniu programu.

Na to polecenie ma wpływ powłoka i ostrzec opcje edycji. Jeśli nie ma linii
określony, na to polecenie będzie miało wpływ automatyczne pisanie i napisz cokolwiek opcje edycji. Jeśli
linie są określone, na to polecenie będzie miało wpływ autodruk opcję edycji.

Aktualny linia:

1. Jeśli nie określono żadnych linii, bez zmian.

2. W przeciwnym razie ustaw ostatnią wczytaną linię, jeśli wczytywane są jakieś linie.

3. W przeciwnym razie ustaw linię poprzedzającą pierwszą linię z określonych linii, jeśli jest to linia
istnieje.

4. W przeciwnym razie ustaw pierwszą linię bufora edycji, jeśli bufor edycji nie jest pusty.

5. W przeciwnym razie ustaw na zero.

Aktualny kolumna: Jeśli nie określono żadnych linii, niezmienione. W przeciwnym razie ustaw na nie- .

Shift Lewa
streszczenie:
[2 adres] <[< ...][liczyć][Flagi]

Przesuń określone linie na początek linii; liczba pozycji kolumn, które mają być
przesunięty oznacza liczbę znaków polecenia pomnożoną przez wartość szerokość przesunięcia edit
opcja. Tylko wiodący znaki zostaną usunięte lub zamienione na inne
znaki w przesunięciu; inne znaki nie zostaną naruszone.

Linie, które mają zostać przesunięte, zostaną skopiowane do nienazwanego bufora, który stanie się linią
bufor trybu.

Na to polecenie ma wpływ autodruk opcję edycji.

Aktualny linia: Ustawia ostatnią linię w określonych liniach.

Aktualny kolumna: Ustaw na nie- .

Shift Prawa
streszczenie:
[2 adres] >[> ...][liczyć][Flagi]

Przesuń określone linie od początku linii; liczba pozycji kolumn
do przesunięcia powinna być liczba znaków polecenia pomnożona przez wartość szerokość przesunięcia
opcję edycji. Przesunięcie następuje poprzez dodanie znaki jako przedrostek
linię lub zmianę prowadzenia znaków na inne postacie. Puste linie
nie ulegnie zmianie.

Linie, które mają zostać przesunięte, zostaną skopiowane do nienazwanego bufora, który stanie się linią
bufor trybu.

Na to polecenie ma wpływ autodruk opcję edycji.

Aktualny linia: Ustawia ostatnią linię w określonych liniach.

Aktualny kolumna: Ustaw na nie- .

-D
streszczenie:
-D

Napisz następny n linie, gdzie n jest minimalną wartością przewijać opcję edycji i
liczba linii po bieżącej linii w buforze edycji. Jeśli bieżąca linia to
ostatnia linia bufora edycji, będzie to błąd.

Aktualny linia: Ustaw na ostatnią zapisaną linię.

Aktualny kolumna: Ustaw na nie- .

Pisać Linia Numer
streszczenie:
[1 adres] = [Flagi]

If linia nie jest określony, domyślnie będzie to ostatnia linia w buforze edycji. Napisz
numer linii określonej linii.

Aktualny linia: Bez zmian.

Aktualny kolumna: Bez zmian.

Wykonać
streszczenie:
[2 adres] @ bufor
[2 adres] * bufor

Jeśli nie określono żadnego bufora lub określono jako „@” or '*', zostanie wykonany ostatni bufor
używany. Jeżeli żaden poprzedni bufor nie został wykonany, będzie to błąd.

Dla każdej linii określonej przez adresy ustaw bieżącą linię ('.') do określonego
wierszu i wykonaj zawartość pliku o nazwie bufor (podobnie jak w tamtym czasie @ komenda
został stracony) jako ex polecenia. Dla każdej linii bufora trybu liniowego i wszystkich oprócz ostatniej
linia bufora trybu znakowego, ex Parser poleceń będzie zachowywał się tak, jakby linia była
zakończone przez A .

Jeśli podczas tego procesu wystąpi błąd lub linia określona przez adresy nie
istnieje, gdy zostanie na niego ustawiona bieżąca linia lub określono więcej niż jedną linię
przez adresy, a zawartość bufora edycji jest zastępowana (na przykład przez ex
edit: polecenie) zostanie zapisany komunikat o błędzie i nie będzie już żadnych poleceń wynikających z
wykonanie tego polecenia zostanie zrealizowane.

Aktualny linia: Jak określono dla danej osoby ex Polecenia.

Aktualny kolumna: Jak określono dla danej osoby ex Polecenia.

Regularna Expressions in ex
Połączenia ex Narzędzie powinno obsługiwać wyrażenia regularne będące nadzbiorem podstawowego wyrażenia regularnego
wyrażenia opisane w tomie Base Definitions normy POSIX.1-2008, Sekcja 9.3, Basic
Regularna Expressions. Wyrażenie regularne o wartości null ("//") będzie równoważne ostatniemu
napotkano wyrażenie regularne.

Wyrażenia regularne mogą być używane w adresach do określania linii, a w niektórych poleceniach (np
przykład zastąpić polecenie), aby określić fragmenty linii, które mają zostać zastąpione.

Do ulepszenia podstawowych wyrażeń regularnych można użyć następujących konstrukcji:

\< Dopasowuje początek a słowo. (Zobacz definicję słowo na początku
Command opisy in ex.)

\> Dopasuj koniec a słowo.

~ Dopasuj część zamienną ostatniej zastąpić Komenda. The ('~')
znak można zmienić w wyrażeniu regularnym, aby stał się normalnym znakiem
żadnego specjalnego znaczenia. The zostaną odrzucone.

Gdy opcja edytora magia nie jest ustawiony, będą stosowane wyłącznie znaki o znaczeniu specjalnym
be '^' na początku wzoru, „$” na końcu wzoru i . The
znaków '.', '*', '[', '~' będą traktowane jak zwykłe znaki, chyba że zostaną poprzedzone
przez A ; gdy jest poprzedzone a odzyskają swoje szczególne znaczenie,
lub w przypadku , należy traktować jako pojedynczy . postacie
użyte do ucieczki od innych znaków zostaną odrzucone.

Wymiana Smyczki in ex
Postać „&” („\&” jeśli opcja edytora magia nie jest ustawiona) w ciągu zastępczym
oznacza tekst odpowiadający wzorowi, który ma zostać zastąpiony. Charakter '~' („\~” if
magia nie jest ustawiony) zostaje zastąpiony częścią zamienną poprzedniego zastąpić
Komenda. Sekwencja '\n', Gdzie n jest liczbą całkowitą, zastępuje się dopasowanym tekstem
poprzez odpowiednie wyrażenie odwołania wstecznego. Jeśli odpowiednie odwołanie wsteczne
wyrażenie nie pasuje, to znaki '\n' zostanie zastąpiony pustym ciągiem.

Sznurki „\l”, „\u”, „\L”, „\U” może służyć do modyfikowania wielkości liter elementów w
ciąg zastępczy (przy użyciu metody „\&” or „\”cyfra) notacja. Sznurek „\l” („\u”) być
powodują konwersję następującego znaku na małe (wielkie litery). Sznurek „\L”
(„\U”) spowoduje, że wszystkie znaki następujące po nim zostaną zamienione na małe litery
(wielkie litery), gdy są wstawiane przez podstawienie aż do ciągu znaków '\mi' or '\MI'Lub
napotkano koniec ciągu zastępującego.

W przeciwnym razie dowolny znak następujący po a należy traktować tak dosłownie
charakteru i ucieczki zostaną odrzucone.

Przykład konwersji przypadków za pomocą s polecenie jest następujące:

:p
Połączenia jak wieś on dotychczasowy mata.
:s/\<.at\>/\u&/gp
Połączenia Kot Sob on dotychczasowy Mata.
:s/S\(.*\)M/S\U\1\eM/p
Połączenia Kot Sobota ON THE Mata.

Edytuj Opcje in ex
Połączenia ex Narzędzie posiada wiele opcji modyfikujących jego zachowanie. Te opcje mają
ustawienia domyślne, które można zmienić za pomocą przycisku zestaw dowództwo.

Opcje mają wartość logiczną, chyba że określono inaczej.

automatyczne wcięcie, ai
[Domyślny rozbrojony]

If automatyczne wcięcie jest ustawiona, każda linia w trybie wprowadzania będzie wcięta (używając najpierw as many
znaków, jak to możliwe, zgodnie z opcją edytora tabulator, a następnie za pomocą
znaków), aby wyrównać je z inną linią w następujący sposób:

1. Jeśli jesteś w trybie otwartym lub wizualnym, a wprowadzanie tekstu jest częścią polecenia liniowego (patrz
ROZSZERZONY OPIS w vi), wyrównaj do pierwszej kolumny.

2. W przeciwnym razie w trybie otwartym lub wizualnym wcięcie dla każdej linii należy ustawić jako
następuje:

A. Jeżeli w ramach tego polecenia wstawiono wcześniej linię, należy ją ustawić na
domyślnie wcięcie ostatnio wstawionej linii lub w inny sposób określony dla
the -D znak w Wkład Moda Polecenia in vi.

B. W przeciwnym razie należy ustawić na wcięcie poprzedniej bieżącej linii, jeśli
każdy; w przeciwnym razie do pierwszej kolumny.

3. Dla ex a, i, c poleceń, wcięcie dla każdego wiersza należy ustawić w następujący sposób:

A. Jeżeli w ramach tego polecenia wstawiono wcześniej linię, należy ją ustawić na
domyślnie wcięcie ostatnio wstawionej linii lub w inny sposób określony dla
dotychczasowy euf znak Przewiń.

B. W przeciwnym razie, jeśli poleceniem jest ex a polecenie, należy je ustawić w wierszu
dołączony po, jeśli istnieje; w przeciwnym razie do pierwszej kolumny.

C. W przeciwnym razie, jeśli poleceniem jest ex i polecenie, należy je ustawić w wierszu
wstawiony wcześniej, jeśli istnieje; w przeciwnym razie do pierwszej kolumny.

D. W przeciwnym razie, jeśli poleceniem jest ex c polecenie, należy je ustawić na wcięcie
wymienionej linii.

autodruk, ap
[Domyślny zestaw]

If autodruk jest ustawiony, po każdym z nich zostanie zapisany bieżący wiersz ex polecenie modyfikujące
zawartość bieżącego bufora edycji i po każdym etykieta polecenie, dla którego tag
odnaleziono wzorzec wyszukiwania lub numer linii sloganu był prawidłowy, chyba że:

1. Polecenie zostało wykonane w trybie otwartym lub wizualnym.

2. Polecenie zostało wykonane w ramach a światowy or v polecenie lub @ wykonanie bufora.

3. Polecenie było formą czytać polecenie wczytujące plik do bufora edycji.

4. Polecenie brzmiało dodać, zmianalub wstawić dowództwo.

5. Polecenie nie zostało zakończone przez a .

6. Bieżąca linia zostanie zapisana flagą podaną w poleceniu; Na przykład,
usunąć # zapisuje bieżącą linię określoną dla modyfikatora flagi do pliku usunąć
polecenie, a nie jak określono w pliku autodruk opcję edycji.

automatyczny zapis, aw
[Domyślny rozbrojony]

If automatyczne pisanie jest ustawiony, a bufor edycji został całkowicie zmodyfikowany od czasu jego ostatniej aktualizacji
zapisana do dowolnego pliku, zawartość bufora edycyjnego zostanie zapisana tak, jakby ex napisać
polecenie zostało określone bez argumentów, przed każdym poleceniem, na które wpływa
automatyczne pisanie opcja edycji jest wykonywana. Dołączenie znaku '!' do nazwy polecenia any
ukończenia ex polecenia z wyjątkiem '!' uniemożliwi zapis. Jeśli zapis się nie powiedzie, będzie to plik
błąd i polecenie nie zostanie wykonane.

upiększać, bf
[Domyślny rozbrojony]

If upiększać jest ustawiona, wszystkie znaki niedrukowalne, inne niż , , I
Feed> znaki, zostaną usunięte z tekstu wczytanego z plików.

informator, reż
[Domyślny zdefiniowana implementacja]

Wartość tej opcji określa katalog, w którym ma się znajdować bufor edytora
umieszczony. Jeśli użytkownik nie może zapisać tego katalogu, redaktor zakończy pracę.

edkompatybilny, ed
[Domyślny rozbrojony]

Powoduje obecność g i c przyrostki w poleceniach zastępczych, które należy zapamiętać, oraz
przełączane poprzez powtarzanie przyrostków.

dzwonki błędów, eb
[Domyślny rozbrojony]

Jeśli redaktor jest obecny ex tryb, a terminal nie obsługuje trybu wyróżniającego (takiego jak
odwrócone wideo) i dzwonki błędów jest ustawiony, komunikaty o błędach będą poprzedzone powiadomieniem
terminal.

wyd
[Domyślny rozbrojony]

If wyd jest ustawiony, ex uzyska dostęp do dowolnego .exrc plik w bieżącym katalogu, jak opisano w
Inicjalizacji in ex i vi. Jeśli wyd nie jest ustawiony, ex zignoruje żadnego .exrc Plik w
bieżący katalog podczas inicjalizacji, chyba że bieżącym katalogiem jest ten o nazwie
HOME zmienna środowiskowa.

ignorować przypadek, ic
[Domyślny rozbrojony]

If ignorowanie przypadku jest ustawiona, znaki, które mają reprezentację wielkich i małych liter, powinny to zrobić
należy uznać te reprezentacje za równoważne do celów wyrażeń regularnych
porównanie.

Połączenia ignorowanie przypadku opcja edycji będzie miała wpływ na wszystkie zapamiętane wyrażenia regularne; Na przykład,
rozbrajanie ignorowanie przypadku opcja edycji spowoduje następną vi n polecenie wyszukiwania
ostatnie podstawowe wyrażenie regularne z uwzględnieniem wielkości liter.

podstęp
[Domyślny rozbrojony]

If podstęp jest ustawiony, edytuj linie bufora zapisane w programie ex tryb poleceń należy zapisać jako
określone dla polecenie z l określona flaga. W trybie otwartym lub wizualnym, każdy
linia bufora edycji będzie wyświetlana zgodnie z ustawieniami dla ex polecenie z l flaga
określony. W otwartym lub wizualnym trybie wprowadzania tekstu, gdy kursor nie spoczywa na żadnym
znak w linii, powinien on spoczywać na „$” zaznaczając koniec linii.

magia
[Domyślny zestaw]

If magia jest ustawiony, zmodyfikuj interpretację znaków w wyrażeniach regularnych i
ciągi zastępcze podstawienia (patrz Regularna Expressions in ex i Wymiana Smyczki in
ex).

wiadomość
[Domyślny zestaw]

If wiadomość jest ustawione, pozwolenie innym na korzystanie z napisać or mówić polecenia do zapisu
terminal powinien być włączony w trybie otwartym lub wizualnym. Polecenie na poziomie powłoki wiadomość
n mają pierwszeństwo przed jakimkolwiek ustawieniem opcji ex wiadomość opcja; to znaczy, jeśli wiadomość y była
wydane przed uruchomieniem edytora (lub w ucieczce z powłoki), takie jak:

:!wiadomość y

dotychczasowy wiadomość opcja w ex będzie tłumić wiadomości przychodzące, ale wiadomość opcja nie
włącz wiadomości przychodzące, jeśli wiadomość n zostało wydane.

numer, nu
[Domyślny rozbrojony]

If numer jest ustawiony, edytuj linie bufora zapisane w programie ex tryb poleceń należy zapisać za pomocą
numery linii, w formacie określonym przez polecenie z # określona flaga. W
ex w trybie wprowadzania tekstu, każda linia będzie poprzedzona numerem linii, którą będzie miała w pliku
plik.

W trybie otwartym lub wizualnym każda linia bufora edycji będzie wyświetlana z poprzedzającą linią
numer, w formacie określonym przez ex polecenie z # określona flaga. Ten
Numer linii nie będzie uważany za część linii dla celów oceny
bieżąca kolumna; oznacza to, że pozycja kolumny 1 będzie pierwszą pozycją kolumny po
format określony przez dowództwo.

akapity, dla
[Domyślnie w ustawieniach regionalnych POSIX IPLPPPQPP LIpplpipbp]

Połączenia pkt opcja edycji definiuje dodatkowe granice akapitów dla otwierania i
polecenia trybu wizualnego. The pkt opcję edycji można ustawić na ciąg znaków
składający się z zera lub większej liczby par znaków. Ustawienie wartości nieparzystej będzie błędem
liczba znaków.

podpowiedź
[Domyślny zestaw]

If podpowiedź jest ustawiony, ex Wejście w trybie poleceń będzie sygnalizowane za pomocą a (':'); gdy
nieustawione, żaden monit nie zostanie zapisany.

tylko czytać
[Domyślny widzieć XNUMX]

Jeśli tylko czytać opcja edycji jest ustawiona, należy włączyć tryb tylko do odczytu (patrz Pisać).
tylko czytać opcja edycji powinna zostać zainicjowana w celu ustawienia, jeśli spełniony jest którykolwiek z poniższych warunków
prawdziwe:

* Podano opcję wiersza poleceń −R.

* Wykonywanie czynności równoważnych z dostęp() funkcja wywoływana w następujący sposób
arguments wskazuje, że plik nie ma uprawnień do zapisu:

1. Bieżąca nazwa ścieżki jest używana jako ścieżka argumenty.

2. Stała W_OK jest używany jako amoda argumenty.

Połączenia tylko czytać opcję edycji można zainicjować w celu ustawienia dla innych, zdefiniowanych w implementacji
powodów. The tylko czytać opcja edycji nie powinna być inicjowana w celu rozbrojenia w oparciu o jakiekolwiek specjalne
uprawnienia użytkownika lub procesu. The tylko czytać opcja edycji powinna zostać ponownie zainicjowana
czas, w którym zawartość bufora edycji zostaje zastąpiona (na przykład przez plik edit or Następny
polecenie), chyba że użytkownik wyraźnie to ustawił, w takim przypadku powinno pozostać ustawione do
użytkownik wyraźnie to rozbraja. Po rozbrojeniu będzie za każdym razem ponownie inicjowany
zawartość bufora edycji zostaje zastąpiona.

przerysować
[Domyślny rozbrojony]

Edytor symuluje inteligentny terminal na głupim terminalu. (Ponieważ jest to prawdopodobne
wymagają dużej ilości sygnału wyjściowego do terminala, jest to przydatne tylko przy dużej transmisji
prędkości.)

remap
[Domyślny zestaw]

If remap jest ustawione, tłumaczenie mapy powinno uwzględniać mapy zdefiniowane w odniesieniu do innych map;
tłumaczenie będzie kontynuowane aż do uzyskania produktu końcowego. Jeśli nieustawione, tylko jeden krok
tłumaczenie zostanie wykonane.

raport
[Domyślnie 5]

Wartość tego raport opcja edycji określa, jaka liczba linii jest dodawana, kopiowana,
usunięte lub zmodyfikowane w buforze edycji spowoduje zapisanie komunikatu informacyjnego
użytkownikowi. Poniższe warunki powodują wyświetlenie komunikatu informacyjnego. Wiadomość
powinien zawierać liczbę dodanych, skopiowanych, usuniętych lub zmodyfikowanych wierszy, ale jest inaczej
nieokreślony.

* Jakiś ex or vi polecenie edytora inne niż koncepcja, anulowaćlub wizualny, to przynajmniej modyfikuje
wartość raport opcja edycji liczba linii, która nie jest częścią ex
światowy or v polecenie, lub ex or vi wykonanie bufora, spowoduje wyświetlenie komunikatu
wiadomość do napisania.

* Jakiś ex szarpać or vi y or Y polecenie, które kopiuje przynajmniej wartość raport edit
opcja plus 1 liczba linii i która nie jest częścią ex światowy or v polecenie, lub
ex or vi wykonanie bufora, spowoduje zapisanie komunikatu informacyjnego.

* Jakiś ex światowy, v, koncepcja, anulowaćlub wizualny polecenie lub ex or vi wykonanie bufora, które dodaje
lub usuwa w sumie co najmniej wartość raport opcja edycji liczby linii,
i który nie jest częścią ex światowy or v polecenie, lub ex or vi wykonanie bufora,
spowoduje zapisanie komunikatu informacyjnego. (Na przykład, jeśli 3 linie były
dodano i 8 linii usunięto podczas ex wizualny polecenia, 5 będzie porównywaną liczbą
przed raport opcję edycji po zakończeniu polecenia.)

zwój, scr
[Domyślne (liczba linii na wyświetlaczu −1)/2]

Wartość przewijać Opcja edycji określa liczbę linii przewijanych przez ex
-D i z polecenia. Dla vi -D i - Rozkazujesz, tak będzie
początkowa liczba wierszy do przewinięcia, jeśli nie ma poprzednich -D lub -U polecenie
został wykonany.

działy
[Domyślnie w ustawieniach regionalnych POSIX NHSHH HUnhsh]

Połączenia działy opcja edycji definiuje dodatkowe granice przekroju dla otwartego i
polecenia trybu wizualnego. The działy opcję edycji można ustawić na ciąg znaków składający się z
zero lub więcej par znaków; ustawienie liczby nieparzystej będzie błędem
postacie.

muszla, sh
[Domyślnie ze zmiennej środowiskowej SHELL]

Wartością tej opcji będzie ciąg znaków. Wartość domyślna zostanie pobrana z SHELL
Zmienna środowiskowa. Jeśli SHELL zmienna środowiskowa ma wartość null lub jest pusta, the sh (Patrz sh)
narzędzie będzie ustawieniem domyślnym.

szerokość przesunięcia, sw
[Domyślnie 8]

Wartość tej opcji określa szerokość w kolumnach użytego poziomu wcięcia
podczas automatycznego wcięcia i za pomocą poleceń shift (< i >).

mecz pokazowy, sm
[Domyślny rozbrojony]

Funkcjonalność opisana dla showmatch opcja edycji nie musi być obsługiwana w blokach
terminale trybu lub terminale o niewystarczających możliwościach.

If showmatch jest ustawiony, w trybie otwartym lub wizualnym, gdy a ')' or '}' jest wpisywane, jeśli pasuje
'(' or '{' jest aktualnie widoczny na wyświetlaczu, dopasowanie '(' or '{' zostaną oznaczone
przesunięcie kursora w jego miejsce na czas nieokreślony.

tryb pokazu
[Domyślny rozbrojony]

If tryb pokazu jest ustawiony, w trybie otwartym lub wizualnym, bieżący tryb, w którym znajduje się edytor
zostanie wyświetlony w ostatniej linii wyświetlacza. Tryb poleceń i tryb wprowadzania tekstu powinny być
zróżnicowany; mogą być inne nieokreślone tryby i informacje zdefiniowane w implementacji
wystawiany.

powolne otwieranie
[Domyślny rozbrojony]

If powolne otwieranie jest ustawiony w trybie otwartego i wizualnego wprowadzania tekstu, edytor nie będzie aktualizował
części wyświetlacza inne niż te kolumny linii wyświetlacza, w których wyświetlane są znaki
wprowadzone przez użytkownika (patrz Wkład Moda Polecenia in vi).

przystanek tabulatorowy, ts
[Domyślnie 8]

Wartość tej opcji edycji będzie określać granicę kolumny używaną przez a w
wyświetlacz (patrz autodruk, ap i Wkład Moda Polecenia in vi).

długość znacznika, tl
[Domyślne zero]

Wartość tej opcji edycji powinna określać maksymalną liczbę znaków
uważane za istotne w nazwie znacznika określonej przez użytkownika oraz w nazwie znacznika ze znaczników
plik. Jeżeli wartość wynosi zero, wszystkie znaki w obu nazwach tagów będą znaczące.

tagi
[Domyślny widzieć XNUMX]

Wartością tej opcji edycji będzie ciąg znaków -rozdzielone ścieżki plików
używane przez etykieta Komenda. Wartość domyślna jest nieokreślona.

semestr
[Domyślnie ze zmiennej środowiskowej TERM]

Wartość tej opcji edycji powinna być ciągiem znaków. Wartość domyślna zostanie pobrana z TERM
zmienna w środowisku. Jeśli TERM zmienna środowiskowa jest pusta lub ma wartość null, the
wartość domyślna jest nieokreślona. Aby to ustalić, redaktor użyje wartości tej opcji edycji
typ urządzenia wyświetlającego.

Wyniki są nieokreślone, jeśli użytkownik później zmieni wartość opcji edycji terminu
inicjalizacja edytora.

lakoniczny
[Domyślny rozbrojony]

If lakoniczny jest ustawiona, komunikaty o błędach mogą być mniej szczegółowe. Jednakże poza tym zastrzeżeniem,
komunikaty o błędach są nieokreślone. Co więcej, nie wszystkie komunikaty o błędach wymagają zmiany
różne ustawienia tej opcji.

ostrzec
[Domyślny zestaw]

If ostrzec jest ustawiony, a zawartość bufora edycji została zmodyfikowana od czasu, gdy była
ostatni całkowicie napisany, redaktor napisze ostrzeżenie przed pewnymi !
polecenia (patrz Ucieczka).

okno
[Domyślny widzieć XNUMX]

Wartość używana w trybie otwartym i wizualnym przez -Zespół -F polecenia i, in
tryb wizualny, aby określić liczbę linii wyświetlanych podczas ponownego malowania ekranu.

Jeśli -w nie określono opcji wiersza poleceń, wartość domyślną należy ustawić na
wartość LINIE Zmienna środowiskowa. Jeśli LINIE zmienna środowiskowa jest pusta lub
null, domyślnie będzie to liczba linii na wyświetlaczu minus 1.

Ustawianie okno edit na zero lub na wartość większą niż liczba linii
wyświetlacz minus 1 (albo jawnie, albo na podstawie -w opcja lub LINIE środowisko
zmienna) spowoduje okno opcję edycji, aby ustawić liczbę linii w pliku
wyświetlacz minus 1.

Szybkość transmisji linii terminala może zmienić wartość domyślną w sposób zdefiniowany w implementacji
sposób.

margines zawijania, wm
[Domyślnie 0]

Jeśli wartość tej opcji edycji wynosi zero, nie będzie ona miała żadnego efektu.

Jeśli nie jest to ustawienie regionalne POSIX, efekt tej opcji edycji jest zdefiniowany przez implementację.

W przeciwnym razie należy określić liczbę kolumn od marginesu końcowego terminala.

W trybach otwartego i wizualnego wprowadzania tekstu dla każdego znaku, dla którego dowolna część
znak jest wyświetlany w kolumnie mniejszej niż margines zawijania kolumny od końca
marginesie linii wyświetlacza, edytor powinien postępować w następujący sposób:

1. Jeśli postacią wywołującą to zdarzenie jest a , to i wszystko bezpośrednio poprzedzające
znaków w bieżącej linii wprowadzonych podczas wykonywania bieżącego
polecenie wprowadzenia tekstu zostanie odrzucone, a edytor będzie zachowywał się tak, jakby użytkownik to zrobił
wszedł do singla Zamiast. Ponadto, jeśli następnym znakiem wprowadzonym przez użytkownika jest
A , należy go również odrzucić.

2. W przeciwnym razie, jeśli jest jeden lub więcej natychmiast znaków w bieżącym wierszu
poprzedzający ostatnią grupę wstawionych nie- znaków, które zostały wprowadzone podczas
wykonanie bieżącego polecenia wprowadzania tekstu, znaki będą
zastąpione tak, jakby użytkownik wprowadził pojedynczy Zamiast.

Jeśli automatyczne wcięcie ustawiona jest opcja edycji i wykonywane są zdarzenia opisane w punkcie 1 lub 2,
każdy znaki znajdujące się przy kursorze lub za nim w bieżącym wierszu zostaną odrzucone.

Margines końcowy ustalany jest przez system lub zmieniany przez użytkownika, zgodnie z art
opisane dla KOLUMNY w sekcji ZMIENNE ŚRODOWISKOWE oraz w tomie Definicje podstawowe
POSIX.1-2008, Rozdział 8, Środowisko Zmienne.

skanowanie opakowań, ws
[Domyślny zestaw]

If Wrapscan jest ustawiony, wyszukuje (the ex / or ? adresy lub tryb otwarty i wizualny /, ?, N,
i n polecenia) powinny otaczać początek lub koniec bufora edycji; gdy rozbrojony,
wyszukiwania powinny kończyć się na początku lub na końcu bufora edycji.

napisz dowolny, wa
[Domyślny rozbrojony]

If napisz cokolwiek jest ustawiona, niektóre kontrole przeprowadzane podczas wykonywania ex napisać Polecenia
zostanie zablokowane, zgodnie z opisem w opcji edytora automatyczne pisanie.

EXIT STATUS


Zwracane są następujące wartości wyjściowe:

0 Pomyślne zakończenie.

>0 Wystąpił błąd.

KONSEKWENCJE OF BŁĘDY


W przypadku napotkania błędu i standardowym wejściem nie jest plik urządzenia końcowego, ex
nie zapisze pliku ani nie powróci do trybu poleceń lub wprowadzania tekstu i zakończy się
niezerowy status wyjścia.

W przeciwnym razie, gdy napotkany zostanie nieodwracalny błąd, będzie to równoznaczne z SIGHUP
wydarzenie asynchroniczne.

W przeciwnym wypadku, w przypadku napotkania błędu, redaktor zachowa się w sposób określony w Command
Linia Rozbiór gramatyczny zdania in ex.

Połączenia następujący działy jest informacyjny.

WNIOSEK ZASTOSOWANIE


Jeśli sygnał SIGSEGV zostanie odebrany podczas ex zapisuje plik, plik może nie być
pomyślnie zapisane.

Połączenia Następny polecenie może zaakceptować więcej niż jeden plik, więc użycie takie jak:

Następny `ls [abc]*`

jest ważna; nie byłoby to ważne dla edit or czytać polecenia, na przykład dlatego, że one
spodziewaj się tylko jednego pliku i wystąpią nieokreślone wyniki.

PRZYKŁADY


Brak.

RACJONALNE UZASADNIENIE


Połączenia ex/vi Specyfikacja opiera się na praktyce historycznej zawartej w 4 BSD i Systemie
V wdrożenia ex i vi.

A ograniczony redaktor (zarówno historyczne czerwony użyteczność i modyfikacje ex) byli
rozpatrzone i odrzucone do włączenia. Żadna z opcji nie zapewniała takiego poziomu bezpieczeństwa
użytkownicy mogą się spodziewać.

Uznaje się, że ex tryb wizualny i powiązane funkcje byłyby trudne, gdyby nie
niemożliwe, do zadowalającego wdrożenia na terminalu w trybie blokowym lub terminalu bez
dowolna forma adresowania kursora; zatem posiadanie takich funkcji nie jest wymogiem obowiązkowym
powinno działać na wszystkich terminalach. Zamierzeniem jest jednak, aby ex realizacja
powinien zapewniać pełen zestaw możliwości na wszystkich terminalach, które je obsługują.

Opcje
Połączenia −c zamiennik +komenda był inspirowany przez -tj opcja sed. Historycznie wszystkie
takie polecenia (patrz edit i Następny również) zostały wykonane od ostatniej linii edycji
bufor. Oznaczało to na przykład, że „+/wzór” zakończy się niepowodzeniem, chyba że Wrapscan opcja
było ustawione. POSIX.1-2008 wymaga zgodności z praktyką historyczną. The +komenda Jest opcja
nie jest już określony w POSIX.1-2008, ale może być obecny w niektórych implementacjach.
Historycznie rzecz biorąc, niektóre implementacje ograniczały ex polecenia, które mogą być wymienione jako część
argumentów wiersza poleceń. Dla zachowania spójności, POSIX.1-2008 na to nie pozwala
ograniczenia.

W historycznych implementacjach edytora, −R opcja (i tylko czytać opcja edycji)
zapobiegał jedynie nadpisywaniu plików; dołączanie do plików było nadal dozwolone, mapowanie
luźno w csh nocnik zmienny. Jednak niektóre wdrożenia nie zostały zrealizowane
ta semantyka i tylko czytać nie pozwala również na dołączanie. POSIX.1-2008 podąża za
ta druga praktyka, wierząc, że jest to bardziej oczywiste i intuicyjne znaczenie tylko czytać.

Połączenia -s opcja pomija wszystkie interaktywne opinie użytkowników i jest przydatna do edycji skryptów
w zadaniach wsadowych. Lista konkretnych skutków jest praktyką historyczną. Typ terminala
„niezdolny do obsługi trybów otwartych i wizualnych” był historycznie nazywany „głupim”.

Połączenia −t opcja była wymagana, ponieważ tagi Narzędzie pojawia się w POSIX.1-2008 i
opcja jest dostępna we wszystkich historycznych implementacjach ex.

Historycznie ex i vi media odebrane a −x opcja, która szyfrowała w oparciu o
algorytm znaleziony w historii krypta pożytek. ten −x opcja szyfrowania i
powiązany krypta użytkowe, zostały pominięte, ponieważ zastosowanego algorytmu nie można było określić, a
przepisy dotyczące kontroli eksportu obowiązujące w niektórych krajach utrudniają eksport materiałów kryptograficznych
technologia. Ponadto w przeszłości nie zapewniał takiego poziomu bezpieczeństwa, jaki zapewniał użytkownikom
mógłby się spodziewać.

Standard Wkład
Warunek końca pliku nie jest równoznaczny ze znakiem końca pliku. Wspólny koniec-
znak pliku, -D, jest historycznie ex dowództwo.

W historycznych implementacjach nie było maksymalnej długości linii ex. Konkretnie, jak to
został przeanalizowany fragmentarycznie, adresy miały inną maksymalną długość niż nazwy plików.
Ponadto maksymalny rozmiar bufora linii został zadeklarowany jako BUFSIZ, który miał różną długość
w różnych systemach. W tej wersji wybrano wartość {LINE_MAX}, aby narzucić rozsądną
ograniczenia dotyczące przenośnego korzystania z ex oraz aby pomóc twórcom zestawów testów w ich opracowywaniu
realistyczne testy sprawdzające ten limit.

Wkład Akta
Twórcy standardu podjęli wyraźną decyzję, że a dodać do dowolnego
plik, którego brakuje. Uważano, że ta cecha ex i vi na którym polegali użytkownicy w
aby utworzyć pliki tekstowe bez końcówki bardziej przenośny. Uznaje się, że
będzie to wymagało opcji określonej przez użytkownika lub rozszerzenia dla implementacji, które na to pozwalają ex
i vi do edycji plików innego typu niż tekst, jeśli takie pliki nie są inaczej identyfikowane przez
system. Uzgodniono, że przydatna może być możliwość edycji plików dowolnego typu,
jednak nie uznano za konieczne nakazanie, aby: ex or vi wymagane będzie wdrożenie
do obsługi plików innych niż pliki tekstowe.

Akapit w sekcji PLIKI WEJŚCIOWE, ``Domyślnie ...'', ma na celu zamknięcie pliku
długotrwały problem bezpieczeństwa w ex i vi; „modeline” lub „modelines”
opcję edycji. Ta funkcja pozwala na użycie dowolnej linii w pierwszych lub pięciu ostatnich liniach pliku
zawierające ciągi "były:" or „vi:” (i najwyraźniej „ei:” or „vx:”) być linią
zawierające polecenia edytora i ex interpretuje cały tekst aż do następnego ':' Lub
jako polecenie. Rozważmy na przykład konsekwencje użycia niczego niepodejrzewającego użytkownika ex or
vi jako redaktor podczas odpowiadania na wiadomość e-mail, w której znajduje się wiersz taki jak:

były:! rm −rf :

pojawił się w liniach podpisu. Twórcy standardu mocno wierzyli, że edytor
nie powinien domyślnie interpretować żadnych wierszy pliku. Sprzedawcy są usilnie proszeni o usunięcie
tę funkcję z ich implementacji ex i vi.

Asynchroniczny Eventy
Intencją wyrażenia „zapis kompletny” jest zapisanie całego bufora edycyjnego
do stabilnego przechowywania. Uwaga dotycząca plików tymczasowych przeznaczona jest dla wdrożeń, które
użyj plików tymczasowych do tworzenia kopii zapasowych buforów edycji nienazwanych przez użytkownika.

Historycznie rzecz biorąc, SIGQUIT był ignorowany przez ex, ale był odpowiednikiem Q polecenie w trybie wizualnym
tryb; to znaczy opuścił tryb wizualny i wszedł ex tryb. POSIX.1-2008 pozwala, ale tak
nie wymaga tego zachowania. Historycznie rzecz biorąc, SIGINT był często używany przez vi użytkowników do zakończenia
tryb wprowadzania tekstu ( -C jest często łatwiejsze do wprowadzenia niż ). Niektóre wdrożenia
of vi powiadomili terminal o tym zdarzeniu, a niektórzy tego nie zrobili. Wymaga tego POSIX.1-2008
SIGINT zachowuje się identycznie jak i aby terminal nie został powiadomiony.

Historycznie rzecz biorąc, zawieszenie ex edytor w trybie wprowadzania tekstu był podobny do SIGINT, as
wypełnione wiersze zostały zachowane, ale część częściowego wiersza została odrzucona, a redaktor powrócił do
tryb poleceń. POSIX.1-2008 milczy na ten temat; zachęcamy do realizacji
tam, gdzie to możliwe, postępuj zgodnie z praktyką historyczną.

Historycznie vi redaktor nie traktował SIGTSTP jako zdarzenia asynchronicznego i tak było
dlatego nie można zawiesić edytora w trybie wizualnego wprowadzania tekstu. Są dwa główne
powody tego. Po pierwsze, SIGTSTP jest sygnałem rozgłoszeniowym w systemach UNIX i
łańcuch wydarzeń, w którym powłoka execto aplikacja, która wtedy execs vi zwykle spowodowane
zamieszanie dla stanu końcowego, jeśli SIGTSTP został dostarczony do grupy procesów w
sposób domyślny. Po drugie, większość implementacji systemu UNIX pomstowanie pakiet zrobił
nie obsługują protokołu SIGTSTP w sposób bezpieczny, a otrzymanie protokołu SIGTSTP w niewłaściwym czasie mogłoby je spowodować
rozbić się. POSIX.1-2008 milczy na ten temat; wdrożenia są zachęcane do leczenia
zawieszenie jako zdarzenie asynchroniczne, jeśli to możliwe.

Historycznie rzecz biorąc, modyfikacje bufora edycji wprowadzone zanim SIGINT przerwał operację
zostały zachowane; oznacza to, że może mieć dowolną wartość od zera do wszystkich linii, które mają zostać zmodyfikowane
zostały zmodyfikowane do czasu przybycia SIGINT. Zmiany te nie zostały odrzucone przez
przybycie SIGINTA. POSIX.1-2008 pozwala na takie zachowanie, zauważając, że anulować polecenie jest
wymagane, aby móc cofnąć te częściowo wykonane polecenia.

Akcja podejmowana dla sygnałów innych niż SIGINT, SIGCONT, SIGHUP i SIGTERM to
nieokreślony, ponieważ niektóre implementacje próbują zapisać bufor edycji w użytecznym stanie
gdy odebrane zostaną inne sygnały.

Standard Błąd
W razie zamówieenia projektu ex/vi, komunikaty diagnostyczne to komunikaty zgłoszone w wyniku nieudanej próby
przywoływać ex or vi, takie jak nieprawidłowe opcje, niewystarczające zasoby lub anormalność
warunek zakończenia. Komunikatów diagnostycznych nie należy mylić z komunikatami o błędach
generowane przez niewłaściwe lub nielegalne polecenia użytkownika.

Inicjalizacji in ex i vi
Jeżeli ex polecenie (inne niż cd, chdirlub źródło) ma argument w postaci nazwy pliku, jeden lub oba
zostaną ustawione alternatywne i bieżące nazwy ścieżek. Nieformalnie są one ustawione w następujący sposób:

1. Jeśli ex polecenie to takie, które zastępuje zawartość bufora edycji i to
się powiedzie, bieżąca ścieżka zostanie ustawiona na argument nazwy pliku (pierwszy
Argument nazwy pliku w przypadku Następny polecenie), a alternatywna nazwa ścieżki będzie brzmieć
ustaw na poprzednią bieżącą nazwę ścieżki, jeśli taka istnieje.

2. W przypadku formatów odczytu/zapisu pliku o formacie czytać i napisać polecenia, jeśli istnieją
brak bieżącej nazwy ścieżki, bieżąca ścieżka zostanie ustawiona na argument nazwa pliku.

3. W przeciwnym razie alternatywna ścieżka zostanie ustawiona na argument nazwa pliku.

Na przykład, edit: bla i :odzyskiwać bla, jeśli się powiedzie, ustaw bieżącą nazwę ścieżki i,
jeśli istniała poprzednia bieżąca nazwa ścieżki, alternatywna nazwa ścieżki. Polecenia :pisać,
!Komenda, edit: nie ustawiaj bieżących ani alternatywnych nazw ścieżek. Jeśli edit: bla
polecenie z jakiegoś powodu nie powiedzie się, zostanie ustawiona alternatywna ścieżka dostępu. The czytać i
napisać polecenia ustawiają alternatywną nazwę ścieżki na ich filet argument, chyba że bieżący
ścieżka nie jest ustawiona, w takim przypadku ustawiają bieżącą ścieżkę na ich filet argumenty.
Alternatywna nazwa ścieżki nie była historycznie ustawiana przez plik :źródło Komenda. POSIX.1-2008
wymaga zgodności z praktyką historyczną. Implementacje dodające polecenia, które pobierają
zachęca się do ustawienia alternatywnych nazw plików jako argumentów, jak opisano tutaj.

Historycznie ex i vi przeczytać .exrc Plik w $ HOME katalog dwukrotnie, jeśli edytor
został stracony w $ HOME informator. POSIX.1-2008 zabrania takiego zachowania.

Historycznie rzecz biorąc, 4 BSD ex i vi przeczytać $ HOME i lokalne .exrc pliki, jeśli były ich własnością
poprzez prawdziwy identyfikator użytkownika lub źródłodowolne opcja została ustawiona, niezależnie od innej
rozważania. Był to problem bezpieczeństwa, ponieważ możliwe jest umieszczenie normalnego systemu UNIX
polecenia systemowe wewnątrz a .exrc plik. POSIX.1-2008 nie określa źródłodowolne opcja,
i historyczne wdrożenia zachęca się do jego usunięcia.

Połączenia .exrc pliki muszą należeć do prawdziwego identyfikatora użytkownika i nie mogą być zapisywane przez nikogo innego
niż właściciel. Odpowiedni wyjątek dotyczący uprawnień ma na celu umożliwienie użytkownikom
uzyskać specjalne przywileje, ale nadal korzystać z .exrc pliki w swoich katalogach domowych.

System V w wersji 3.2 i nowszych vi implementacje dodały tę opcję [nie]wyr. Zachowanie
czy to lokalne .exrc pliki są tylko do odczytu, jeśli wyd opcja jest ustawiona. Wartość domyślna dla
wyd opcja była wyłączona, więc domyślnie lokalnie .exrc pliki nie zostały odczytane. To był problem
Rozwiązaniem było to, że System V pozwalał użytkownikom na rozdawanie plików, zatem nie ma takiej możliwości
ewentualny test własności lub możliwości zapisu, aby upewnić się, że plik jest bezpieczny. To wciąż jest
problem bezpieczeństwa w systemach, w których użytkownicy mogą rozdawać pliki, ale nic nie ma
dodatkowo, co potrafi POSIX.1-2008. Wyjątek zdefiniowany w implementacji ma na celu
zezwolić grupom na posiadanie lokalnych .exrc plików udostępnianych przez użytkowników, tworząc pseudoużytkowników
być właścicielem udostępnionych plików.

POSIX.1-2008 nie wspomina o wymaganiach ogólnosystemowych ex i vi pliki startowe. Chociaż istnieją w
kilka realizacji ex i vi, nie są one obecne w żadnych implementacjach
uznawana za praktykę historyczną w POSIX.1-2008. Implementacje posiadające takie pliki
powinien ich używać tylko wtedy, gdy są własnością prawdziwego identyfikatora użytkownika lub odpowiedniego użytkownika (np
na przykład root w systemach UNIX) i jeśli nie może ich zapisywać żaden inny użytkownik niż on
właściciel. Przed uruchomieniem należy przeczytać ogólnosystemowe pliki startowe WYJDŹ zmienny, $HOME/.exrc,
lub lokalny .exrc pliki są oceniane.

Historycznie rzecz biorąc, dowolne ex polecenie można wprowadzić w pliku WYJDŹ zmienna lub .exrc file,
chociaż te, które wymagają, aby bufor edycji zawierał już ogólnie linie tekstu
spowodował spadek historycznych implementacji edytora core. Wymaga tego POSIX.1-2008
każdy ex polecenie jest dozwolone w WYJDŹ zmienna i .exrc pliki, dla uproszczenia
specyfikacji i spójności, chociaż wiele z nich w oczywisty sposób zawiedzie pod wieloma względami
okoliczności.

Inicjalizacja zawartości bufora edycji wykorzystuje frazę „efekt powinien”.
być” w odniesieniu do różnych ex polecenia. Intencją tego wyrażenia jest bufor edycji
zawartość załadowana podczas fazy inicjalizacji nie zostanie utracona; to znaczy ładowanie edycji
bufor powinien zakończyć się niepowodzeniem, jeśli .exrc plik wczytał zawartość pliku i tego nie zrobił
następnie zapisz bufor edycji. Dodatkowym celem tego wyrażenia jest określenie tego
początkowa bieżąca linia i kolumna są ustawione zgodnie z indywidualnymi ustawieniami ex Polecenia.

Historycznie −t opcja zachowywała się tak, jakby wyszukiwanie tagów było a +komenda; to znaczy, było
wykonywany od ostatniej linii pliku określonego przez znacznik. To zaowocowało poszukiwaniami
nie powiedzie się, jeśli wzorzec był wzorcem wyszukiwania do przodu i Wrapscan opcja edycji nie była
ustawić. POSIX.1-2008 nie pozwala na takie zachowanie, wymagając wyszukiwania znacznika
wzorzec zostanie wykonany na całym pliku, a jeśli nie zostanie znaleziony, ustaw bieżącą linię
do bardziej rozsądnego miejsca w pliku.

Historycznie rzecz biorąc, pusty bufor edycji prezentowany do edycji, gdy plik nie został określony przez
użytkownik był anonimowy. Jest to dozwolone przez POSIX.1-2008; jednak wdrożenia są
zachęca się do nadania użytkownikom tymczasowej nazwy pliku dla tego bufora, ponieważ na to pozwala
Zastosowanie ex polecenia korzystające z bieżącej ścieżki podczas tymczasowych sesji edycji.

Historycznie rzecz biorąc, plik określony za pomocą −t opcja nie była częścią bieżącego argumentu
lista. Praktyka ta jest dozwolona przez POSIX.1-2008; jednakże zachęca się do wdrożenia
aby uwzględnić jego nazwę na bieżącej liście argumentów, aby zachować spójność.

Historycznie −c polecenie zwykle nie było wykonywane, dopóki plik już nie istniał
był edytowany. POSIX.1-2008 wymaga zgodności z tą historyczną praktyką. To nakazuje
może spowodować −c polecenie, które ma zostać wykonane, obejmuje ex Polecenia edit, Następny, wyzdrowieć,
przewijanie do tyłu, etykietai vi polecenia -^ i -]. Historycznie rzecz biorąc, czytając A
plik do bufora edycji nie spowodował −c polecenie do wykonania (nawet jeśli mogłoby to nastąpić
ustaw bieżącą ścieżkę) z wyjątkiem tego, że spowodowało to błąd −c nakazać być
wykonywane, jeśli: redaktor był obecny ex w trybie bufor edycji nie miał bieżącej ścieżki, plik edit
bufor był pusty i nie wykonano jeszcze żadnych poleceń odczytu. Dla spójności i
prostota specyfikacji, POSIX.1-2008 nie pozwala na takie zachowanie.

Historycznie −r opcja była taka sama jak w przypadku normalnej sesji edycji, jeśli nie było odzyskiwania
informacje dostępne dla pliku. Pozwoliło to użytkownikom wprowadzić:

vi −r *.C

i odzyskaj wszystkie pliki, które udało się odzyskać. W niektórych wdrożeniach odzyskiwanie było
podjęto próbę tylko na pierwszym wymienionym pliku, a plik nie został wprowadzony do argumentu
lista; w innych próbowano odzyskać każdy wymieniony plik. Poza tym trochę historycznych
implementacje ignorowane −r if −t został określony lub nie obsługiwał wiersza poleceń filet
argumenty z −t opcja. Dla spójności i prostoty specyfikacji,
POSIX.1-2008 nie dopuszcza takich specjalnych przypadków i wymaga podjęcia próby odzyskania
przy pierwszej edycji każdego pliku.

Historycznie vi zainicjował ` i ' znaki, ale ex nie. Oznaczało to, że jeśli
pierwsze polecenie w ex tryb był wizualny lub jeśli ex polecenie zostało wykonane jako pierwsze (np.
vi + 10 filet), vi został wprowadzony bez zainicjowania znaków. Bo norma
twórcy uważali, że znaki są ogólnie przydatne, a także zapewniają spójność i prostotę
specyfikacji, POSIX.1-2008 wymaga, aby zawsze były one inicjowane, jeśli są otwarte lub
tryb wizualny lub, jeśli jest włączony ex trybie i bufor edycji nie jest pusty. Nie inicjuję go ex
tryb, jeśli bufor edycji jest pusty, jest praktyką historyczną; jednak zawsze tak było
możliwe jest ustawianie (i używanie) znaczników w pustych buforach edycji w trybie edycji otwartej i wizualnej
sesje.

Adresowanie
Historycznie ex i vi zaakceptował dodatkowe formularze adresowe „\/” i „\?”. Byli
równoważny "//" i "???"odpowiednio. W większości nie są one wymagane przez POSIX.1-2008
ponieważ nikt nie pamięta, czy kiedykolwiek w historii zrobili coś innego.

Historycznie ex i vi zezwolił na adres zerowy dla kilku poleceń i jest dozwolony
dotychczasowy % adres w pustych plikach dla innych. Aby zachować spójność, wymagana jest obsługa POSIX.1-2008
w przypadku pierwszego w kilku poleceniach, w których ma to sens, i uniemożliwia inne działanie. W
dodatkowo, ponieważ wymaga tego POSIX.1-2008 % być logicznie równoważne „1, $”, to jest
wspierane również tam, gdzie ma to sens, i niedopuszczalne w innych przypadkach.

Historycznie % po adresie nie mogły następować dalsze adresy. Dla spójności
i prostota specyfikacji, POSIX.1-2008 wymaga, aby dodatkowe adresy były
utrzymany.

Wszystkie poniższe są ważne Adresy:

+++ Trzy linie po bieżącej linii.

/re/− Jedna linia przed następnym wystąpieniem re.

−2 Dwie linie przed bieżącą linią.

3 −−−− 2 Linia pierwsza (zwróć uwagę na pośredni adres ujemny).

1 2 3 Linia szósta.

Do poleceń pobierających adresy można podać dowolną liczbę adresów; Na przykład,
"1,2,3,4,5p" wypisuje wiersze 4 i 5, ponieważ dwa to największa liczba prawidłowych adresów
akceptowane przez Komenda. To w połączeniu z ogranicznik,
umożliwia użytkownikom tworzenie poleceń w oparciu o uporządkowane wzorce w pliku. Na przykład
komenda 3;/foo/;+2drukuj wyświetli pierwszą linię po linii 3, która zawiera wzór
bla, plus dwie kolejne linie. Pamiętaj, że adres 3; należy ocenić zanim zostanie
odrzucone, ponieważ źródło wyszukiwania dla /bla/ polecenie zależy od tego.

Historycznie rzecz biorąc, wartości można było dodawać do adresów, umieszczając je po jednym lub większej liczbie adresów
znaki; Na przykład, 3 - 5p napisał siódmą linię pliku i /bla/ 5
był taki sam jak /foo/+5. Jednakże można było dodać tylko wartości bezwzględne; Na przykład,
5 /bla/ był błąd. POSIX.1-2008 wymaga zgodności z praktyką historyczną. Adres
przesunięcia są określane oddzielnie od adresów, ponieważ w przeszłości mogło tak być
dostarczane do poleceń wyszukiwania w trybie wizualnym.

Historycznie rzecz biorąc, wszelkie brakujące adresy domyślnie wskazywały bieżącą linię. To było prawdą dla
Adresy początkowe i końcowe rozdzielane oraz końcowe adresy rozdzielane
adresy. Dla spójności, POSIX.1-2008 wymaga tego dla wiodących adresów jako
dobrze.

Historycznie ex i vi zaakceptował '^' znak zarówno jako adres, jak i jako przesunięcie flagi
dla poleceń. W obu przypadkach było to samo '-' postać. POSIX.1-2008 nie
wymagać lub zakazywać takiego zachowania.

Historycznie rzecz biorąc, ulepszenia podstawowych wyrażeń regularnych można było stosować w adresowaniu;
Na przykład, '~', '\<', '\>'. POSIX.1-2008 wymaga zgodności z danymi historycznymi
ćwiczyć; to znaczy, aby użycie wyrażeń regularnych było spójne i regularne
ulepszenia wyrażeń są obsługiwane wszędzie tam, gdzie używane są wyrażenia regularne.

Command Linia Rozbiór gramatyczny zdania in ex
Historia ex Analiza poleceń była jeszcze bardziej złożona niż opisana tutaj. POSIX.1-2008
wymaga podzbioru analizy poleceń, który według twórców standardów był taki
udokumentowane i od użytkowników można zasadnie oczekiwać, że będą z nich korzystać w sposób przenośny, oraz
co było historycznie spójne między wdrożeniami. (Odrzucona funkcjonalność to
w najlepszym wypadku niejasne.) Wdrożenia historyczne będą wymagały zmian, aby były zgodne
z POSIX.1-2008; jednak nie oczekuje się, że użytkownicy zauważą którąkolwiek z tych zmian. Bardzo
złożoności w ex parsowanie ma obsłużyć trzy specjalne przypadki zakończenia:

1. !, światowy, vi wersje filtrów czytać i napisać polecenia są rozdzielane
przez znaki (mogą zawierać znaki , które zwykle są
rury osłonowe).

2. ex, edit, Następny, wizualny w trybie otwartym i wizualnym wszystkie polecenia są wykonywane ex polecenia,
opcjonalnie zawierające znaki jako pierwsze argumenty.

3. s polecenie przyjmuje wyrażenie regularne jako pierwszy argument i używa metody
rozdzielanie znaków w celu odgraniczenia polecenia.

Historycznie rzecz biorąc, znaki w +komenda argument ex, edit, Następny,
vi, wizualny polecenia i w wzorzec i wymiana części s polecenie, zrobiłem
nie ograniczaj poleceń, aw przypadkach filtrów dla czytać i napisaći !, światowy,
i v poleceń, w ogóle nie ograniczały polecenia. Na przykład poniższe
wszystkie polecenia są prawidłowe:

:edycja +25 | s/abc/ABC/plik.c
:s/ | /RURA/
:czytaj !spell % | felietonować
:globalny/wzorzec/p | l
:s/a/b/ | s/c/d | ustawić

Historycznie rzecz biorąc, puste lub wypełnione linie .exrc plików i źródłod pliki (a także
WYJDŹ zmienne i ex skrypty poleceń) były traktowane jako polecenia domyślne; to jest,
polecenia. POSIX.1-2008 wyraźnie wymaga, aby były one ignorowane w przypadku ich napotkania
.exrc i źródłod, aby wyeliminować częste źródło błędów nowego użytkownika.

Historycznie ex polecenia z wieloma sąsiadującymi (lub ) liniami pionowymi
były obsługiwane dziwnie po wykonaniu z ex tryb. Na przykład polecenie 🇧🇷 <powóz-
return>, gdy kursor znajdował się w linii 1, wyświetlał linie 2, 3 i 5 pliku. W
dodatkowo polecenie | wyświetli tylko linię po następnej linii, zamiast
kolejne dwie linijki. Ten pierwszy działał bardziej logicznie, gdy był wykonywany vi tryb i wyświetlony
linie 2, 3 i 4. POSIX.1-2008 wymaga vi zachowanie; to znaczy pojedyncza wartość domyślna
przyrost numeru polecenia i wiersza dla każdego separatora poleceń oraz końcowy
znaki po separatorach są odrzucane.

Historycznie ex zezwolono na pojedynczy dodatkowy jako wiodący znak polecenia; Do
przykład, :g/wzór/:p było ważnym poleceniem. POSIX.1-2008 uogólnia to, aby tego wymagać
usunięta zostanie dowolna liczba wiodących znaków .

Historycznie rzecz biorąc, dowolny przedrostek usunąć polecenie można było wykonać bez interwencji
znaki znakiem flagi, ponieważ w poleceniu d p, p jest interpretowany jako
bufor p. POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historycznie k po poleceniu może następować nazwa znaku bez wtrącania
postacie. POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historycznie s po poleceniu mogą bezpośrednio następować znaki flagi i opcji;
Na przykład, s/e/E/|s|sgc3p było ważnym poleceniem. Jednak postacie flagowe nie mogły znieść
sam; na przykład polecenia sp i s l zakończy się niepowodzeniem, podczas gdy polecenie SGP i s gl
by się udało. (Oczywiście, „#” znak flagi został użyty jako znak rozdzielający, jeśli tak
wykonał polecenie.) Innym problemem było to, że znaki opcji musiały poprzedzać flagę
znaki, nawet jeśli polecenie zostało w pełni określone; na przykład polecenie s/e/E/str
zakończy się niepowodzeniem, podczas gdy polecenie s/e/E/gp by się udało. POSIX.1-2008 wymaga zgodności z
praktyka historyczna.

Historycznie rzecz biorąc, pierwsza nazwa polecenia, która miała przedrostek pasujący do danych wejściowych użytkownika
było wykonane polecenie; Na przykład, ve, ver, do wszyscy wykonali wersja dowództwo.
Polecenia były jednak w określonej kolejności, więc tak a dopasowane dodać, Nie skracać.
POSIX.1-2008 wymaga zgodności z praktyką historyczną. Ograniczenie poleceń
kolejność wyszukiwania implementacji z rozszerzeniami polega na unikaniu dodawania poleceń takich jak
że przedrostki historyczne nie będą działać przenośnie.

Historyczne realizacje ex i vi nie poradził sobie poprawnie z wieloma ex polecenia,
oddzielone znakami , które weszły lub wyszły z trybu wizualnego lub edytora.
Ponieważ implementacje vi istnieją, które nie wykazują tego trybu awarii, POSIX.1-2008
nie pozwala na to.

Wymóg, aby alfabetyczne nazwy poleceń składały się ze wszystkich następujących po sobie liter
znaki do następnego znaku niealfabetycznego oznaczają alfabetyczne nazwy poleceń
muszą być zwykle oddzielone od argumentów jednym lub większą liczbą znaków niealfabetycznych
lub '!' znak, z wyjątkiem przypadków określonych dla wyjątków, the usunąć, k, s
Polecenia.

Historycznie rzecz biorąc, wielokrotne wykonanie ex domyślnym polecenia (-D, euf,
, ) usunęło wszelkie znaki zachęty i wyświetliło następne linie
bez przewijania terminala; to znaczy bezpośrednio pod wszystkimi poprzednio wyświetlanymi liniami.
Zapewniło to użytkownikowi czytelniejszą prezentację linii w pliku. POSIX.1-2008
nie wymaga takiego zachowania, ponieważ w niektórych sytuacjach może to być niemożliwe; Jednakże,
W miarę możliwości zdecydowanie zaleca się, aby implementacje zapewniały taką semantykę.

Historycznie rzecz biorąc, możliwa była zmiana plików w trakcie wykonywania polecenia i uzyskanie efektu
reszta polecenia wykonana w nowym pliku; Na przykład:

edit: + 25 plik.c | s/abc/ABC/ | 1

było poprawnym poleceniem i podjęto próbę podstawienia w nowo edytowanym pliku.
POSIX.1-2008 wymaga zgodności z praktyką historyczną. Następujące polecenia są
przykłady ćwiczące ex parser:

przegapić 'bla | bar' > plik1; przegapić „foo/bar” > plik2;
vi
edit: +1 | s/|/RURA/ | w file1 | e file2 | 1 | s/\//ukośnik/ | wq

Historycznie rzecz biorąc, nie było zabezpieczeń, których należało unikać w implementacjach edytorów ex światowy, v, @,
or * polecenia zmieniające bufory edycji podczas wykonywania powiązanych z nimi poleceń. Ponieważ
prawie zawsze kończyłoby się to katastrofalną porażką redaktora i
istnieją implementacje, które wykazują te problemy, POSIX.1-2008 wymaga zmiany
bufor edycji podczas a światowy or v polecenia lub podczas a @ or * polecenie, dla którego tam
będzie więcej niż jedno wykonanie, będzie błędem. Implementacje obsługujące wiele
Zdecydowanie zaleca się jednoczesne edytowanie buforów, aby zastosować tę samą semantykę
przełączanie między buforami.

Połączenia ex polecenie cytowania wymagane przez POSIX.1-2008 jest nadzbiorem cytowania w formacie historycznym
implementacje edytora. Na przykład w przeszłości nie było możliwości ucieczki przed:
w nazwie pliku; Na przykład, edit: bla\\\ bar zgłosiłoby to za dużo nazw plików
wprowadzono dla polecenia edycji i nie było metody ucieczki przed wejściem
pierwszy argument an edit, ex, Następnylub wizualny w ogóle rozkazywać. Rozszerzenie POSIX.1-2008
praktykę historyczną, wymagającą, aby sposób cytowania był spójny we wszystkich przypadkach ex
polecenia, z wyjątkiem mapa, usuń mapę, skracać, niekrótki polecenia, które
w przeszłości używano znaków -V zamiast do cytowania. Dla tych
cztery polecenia, POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Cytowanie z ukośnikiem odwrotnym ex jest nieintuicyjne. -ucieczki są ignorowane, chyba że tak
uciec od znaku specjalnego; na przykład podczas występu filet rozwinięcie argumentacji,
ciąg "\\%" odpowiada '\%', a nie „\<aktualne nazwa ścieżki>”. Może to być mylące
użytkowników, ponieważ jest zwykle jednym ze znaków powodujących rozwinięcie powłoki
zostać wykonane i dlatego należy wziąć pod uwagę zasady cytowania powłoki.
Ogólnie rzecz biorąc, znaki cytowania są brane pod uwagę tylko wtedy, gdy uciekają od znaku specjalnego i
dla każdej warstwy analizy, dla której ten znak jest przeznaczony, należy podać znak cudzysłowu
specjalny. Jako inny przykład, potrzebny jest tylko pojedynczy ukośnik odwrotny „\l” sekwencja
w zastępczych wzorach zastępczych, ponieważ znak „ja” nie jest dla nikogo wyjątkowy
analizowanie warstwy nad nią.

-V cytując ex różni się nieco od cytowania z ukośnikiem odwrotnym. W czwórce
polecenia, w których stosuje się cudzysłów -V (skracać, niekrótki, mapa, usuń mapę), każdy
znak może być poprzedzony znakiem -V, niezależnie od tego, czy miałby on specjalne znaczenie, czy nie.
POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historyczne implementacje edytora nie wymagały ograniczników w obrębie znaku
klasy, z których należy uciec; na przykład polecenie :S/[/]// na sznurku „xxx/rrrr” by
usuń „/” ze sznurka. POSIX.1-2008 zabrania tej historycznej praktyki
spójności oraz dlatego, że wymagając tego, nakłada duże obciążenie na wdrażanie
znajomość wyrażeń regularnych jest wbudowana w parser edytora.

Historycznie rzecz biorąc, cytowanie znaków w ex polecenia były obsługiwane niekonsekwentnie. W
w większości przypadków znak zawsze kończył polecenie, niezależnie od jakiegokolwiek
poprzedzający znak ucieczki, ponieważ znaki nie uciekły
dla większości znaków ex polecenia. Jednak niektórzy ex polecenia (np. s, mapa,
skrót) pozwoliło na użycie znaków ucieczki (chociaż w przypadku mapa
i skrót, znaki -V zamiast znaków ).
Dotyczyło to nie tylko wiersza poleceń, ale także .exrc i źródłopliki d. Na przykład,
Komenda:

mapa = foobar

odniesie sukces, chociaż czasami trudno było uzyskać -V i wstawić
przekazany do ex parser. Dla spójności i prostoty specyfikacji,
POSIX.1-2008 wymaga, aby istniała możliwość ucieczki znaków ex polecenia o godz
zawsze, w większości przypadków używając znaków ex poleceń i używając -V
znaki dla mapa i skrót polecenia. Na przykład polecenie
podstęp musi zostać przeanalizowany jako pojedyncze polecenie podstęp.
Chociaż różni się to od praktyki historycznej, twórcy POSIX.1-2008 uznali to za mało prawdopodobne
że każdy skrypt lub użytkownik zależał od zachowania historycznego.

Historycznie rzecz biorąc, błąd w poleceniu określonym za pomocą −c opcja nie spowodowała reszty
ukończenia −c polecenia do odrzucenia. POSIX.1-2008 nie pozwala na to ze względu na spójność z
mapowane klawisze, @, światowy, źródło, v polecenia, WYJDŹ zmienna środowiskowa i
dotychczasowy .exrc akta.

Wkład Edycja in ex
Jedno z powszechnych zastosowań historycznych ex edytor ma wolne połączenia sieciowe.
Edytory działające w trybie kanonicznym mogą wymagać znacznie mniejszego ruchu do i z oraz znacznie mniejszego
przetwarzanie na maszynie hosta, a także łatwiejszą obsługę terminali w trybie blokowym.
Z tych powodów wymaga tego POSIX.1-2008 ex zostać zaimplementowane przy użyciu wejścia w trybie kanonicznym
przetwarzania, jak to miało miejsce w przeszłości.

POSIX.1-2008 nie wymaga historycznych 4 znaków edycji danych wejściowych BSD „kasowanie słów”
lub „dosłownie następny”. Z tego powodu nie jest określone, w jaki sposób są one traktowane ex,
chociaż muszą mieć wymagany efekt. Implementacje, które rozwiązują je po
linia została zakończona przy użyciu znaku lub -M i implementacje, które to umożliwiają
polegają na podstawowej obsłudze terminala systemowego w przypadku tego przetwarzania, są zgodne.
Zdecydowanie zaleca się, aby we wdrożeniach wykorzystywano podstawową funkcjonalność systemu, jeśli w ogóle ją stosowano
możliwe, aby zapewnić kompatybilność z innymi systemowymi interfejsami wprowadzania tekstu.

Historycznie rzecz biorąc, kiedy euf znak został użyty do zmniejszenia automatyczne wcięcie poziom,
kursor przesunięty, aby wyświetlić nowy koniec automatyczne wcięcie znaków, ale nie przesunął
kursor do nowej linii, ani nie usuwał znaku -D z linii.
POSIX.1-2008 nie określa, że ​​kursor ma pozostać w tej samej linii ani że reszta
linia zostaje usunięta; jednak zdecydowanie zaleca się wdrażanie, aby zapewnić to, co najlepsze
możliwy interfejs użytkownika; oznacza to, że kursor powinien pozostać w tej samej linii i dowolnej
-Znak D w linii powinien zostać usunięty.

POSIX.1-2008 nie wymaga historycznego 4 znaku edycji wejścia BSD „przedruk”,
tradycyjnie -R, który ponownie wyświetla bieżące dane wprowadzone przez użytkownika. Dla tego
powodu oraz dlatego, że funkcjonalności nie można wdrożyć po zaimplementowaniu linii
zakończone przez użytkownika, POSIX.1-2008 nie stawia żadnych wymagań dotyczących tej funkcjonalności.
Zdecydowanie zaleca się, aby wdrożenia udostępniły tę historyczną funkcjonalność, jeśli
możliwe.

Historycznie rzecz biorąc, -Q nie wykonywał dosłownie następnej funkcji w ex, tak jak to miało miejsce w vi.
POSIX.1-2008 wymaga zgodności z praktyką historyczną, aby uniknąć zerwania z historią ex
skrypty i .exrc akta.

euf
Czy euf znak natychmiast modyfikuje automatyczne wcięcie znaków w monicie jest
pozostawiono nieokreślone, aby implementacje mogły być zgodne w obecności systemów, które to robią
nie obsługują tej funkcji. Wdrożenia zachęca się do modyfikowania linii i
jeśli to możliwe, natychmiast wyświetl go ponownie.

Specyfikacja obsługi euf charakter różni się od praktyki historycznej
tylko w tym euf znaki nie są odrzucane, jeśli występują po normalnych znakach w tekście
wejście. Historycznie rzecz biorąc, zawsze były odrzucane.

Command opisy in ex
Historycznie rzecz biorąc, kilka poleceń (np. światowy, v, wizualny, s, napisać, wq, szarpać, !, <,
>, &, ~) były wykonywalne w pustych plikach (to znaczy, że domyślny adres(y) wynosiły 0), lub
dozwolone jawne adresy wynoszące 0 (na przykład 0 było prawidłowym adresem lub 0,0 było prawidłowym
zakres). Adresy 0 lub wykonanie polecenia w pustym pliku mają sens tylko dla
polecenia, które dodają nowy tekst do bufora edycji lub polecenia zapisu (ponieważ użytkownicy mogą tego chcieć
zapisz puste pliki). POSIX.1-2008 wymaga takiego zachowania dla takich poleceń i nie pozwala na to
w przeciwnym razie dla spójności i prostoty specyfikacji.

Liczenie do ex polecenie zostało historycznie poprawione tak, aby nie było większe niż poprzednie
linia w pliku; na przykład w pliku pięciowierszowym polecenie 1,6 print zakończy się niepowodzeniem, ale
komenda 1druk300 by się udało. POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historycznie rzecz biorąc, użycie flag w ex polecenia mogą być niejasne. Ogólne historyczne
praktyka była zgodna z opisem w POSIX.1-2008, ale było kilka specjalnych przypadków. Dla
przykład, podstęp, numer, polecenia ignorowały przesunięcia adresu końcowego; Do
przykład, 3p +++# wyświetli linię 3, a 3 będzie bieżącą linią po wykonaniu
polecenia. The koncepcja i wizualny polecenia ignorowały zarówno końcowe przesunięcia, jak i
flagi końcowe. Ponadto flagi określone w koncepcja i wizualny polecenia źle ze sobą współdziałały
z podstęp opcję edycji oraz ustawianie, a następnie rozbrajanie jej podczas otwierania/wizualizacji
sesja mogłaby spowodować vi aby zatrzymać wyświetlanie linii w określonym formacie. Dla spójności
i prostota specyfikacji, POSIX.1-2008 nie pozwala na żaden z tych wyjątków
ogólna zasada.

POSIX.1-2008 używa tego słowa kopia w kilku miejscach przy omawianiu buforów. To nie jest
miało oznaczać wdrożenie.

Historycznie ex użytkownicy nie mogli określić buforów numerycznych ze względu na niejednoznaczność
Mogłoby spowodować; na przykład w poleceniu 3 usunąć 2, nie jest jasne, czy 2 jest buforem
imię lub nazwisko liczyć. POSIX.1-2008 domyślnie wymaga zgodności z praktyką historyczną, ale
nie wyklucza przedłużeń.

Historycznie rzecz biorąc, zawartość nienazwanego bufora była często odrzucana po poleceniach
nie miało to na to wyraźnego wpływu; na przykład podczas korzystania z edit polecenie przełączenia
akta. Ze względu na spójność i prostotę specyfikacji POSIX.1-2008 na to nie pozwala
zachowanie.

Połączenia ex przedsiębiorstwo użyteczności publicznej w przeszłości nie miało dostępu do buforów numerycznych, a ponadto
usuwanie linii w ex nie modyfikował ich treści. Na przykład, jeśli po wykonaniu usuwania
in vi, na który użytkownik się przełączył ex, wykonałem kolejne usunięcie, a następnie wróciłem do viThe
zawartość buforów numerycznych nie uległaby zmianie. POSIX.1-2008 wymaga zgodności
do praktyki historycznej. Bufory numeryczne opisano w ex użyteczność, aby
ograniczyć opis buforów do jednej lokalizacji w POSIX.1-2008.

Metaznaki, które wyzwalają ekspansję powłoki w filet argumenty odpowiadają historycznym
praktyce, podobnie jak metoda rozszerzania powłoki. Wdrożenia, które chcą zapewnić
zachęca się użytkowników, którzy mają możliwość elastycznej zmiany zestawu metaznaków, do podania pliku a
powłokimeta opcja edycji ciągu.

Historycznie ex polecenia wykonywane z vi odświeżył ekran, gdy nie było to ściśle
muszę to zrobić; Na przykład, :!data > / dev / null nie wymaga odświeżania ekranu, ponieważ
wyjście UNIX-a dane polecenie wymaga tylko jednej linii ekranu.
POSIX.1-2008 wymaga odświeżenia ekranu, jeśli został nadpisany, ale powoduje to
nie ma wymagań co do sposobu, w jaki wdrożenie powinno dokonywać takich ustaleń.
Implementacje mogą niezależnie od tego wyświetlać monit i odświeżać ekran.

Skracać
Praktyka historyczna polegała na tym, że znaki wprowadzano jako część skrótu
wymiana podlegała mapa rozszerzenia, showmatch opcja edycji, dalej
rozwinięcia skrótów i tak dalej; to znaczy, że zostały logicznie zepchnięte na terminal
kolejkę wejściową i nie były prostym zamiennikiem. POSIX.1-2008 wymaga zgodności z
praktyka historyczna. Praktyka historyczna była taka, że ​​ilekroć znak inny niż słowo (który miał
nie został poprzedzony znakiem -V) został wprowadzony po znaku słowa, vi sprawdziłbym
skróty. Sprawdzanie odbywało się na podstawie rodzaju znaku wprowadzonego przed słowem
znak pary słowo/nie słowo, która uruchomiła sprawdzanie. Słowo charakter
para słowo/nie-słowo, która uruchomiła sprawdzanie, oraz wszystkie znaki wprowadzone przed wyzwalaczem
para tego typu została uwzględniona w sprawdzeniu, z wyjątkiem
znaków, które zawsze oddzielały skrót.

Oznacza to, że aby skrót zadziałał, należy zastosować lhs musi kończyć się znakiem słownym,
nie może być przejść od znaków słownych do znaków niebędących wyrazami (lub wice versa) inny niż
pomiędzy ostatnim i przedostatnim znakiem w lhsi nie może być
postacie w lhs. W dodatku, ze względu na historyczne zasady cytowania, tak było
niemożliwe jest wprowadzenie literału -V w pliku lhs. POSIX.1-2008 wymaga zgodności
do praktyki historycznej. Wdrożenia historyczne nie informowały użytkowników o skrótach
których nigdy nie można było użyć; gorąco zachęcamy do takiego wdrożenia.

Na przykład sprawdzą się następujące skróty:

:abs (p WYMIANA
:abs p WYMIANA
:abs ((P WYMIANA

Następujące skróty nie będą działać:

:abs ( WYMIANA
:abs (str WYMIANA

Praktyka historyczna jest taka, że ​​słowa na vi linii poleceń dwukropka podlegały
rozwinięcie skrótu, łącznie z argumentami metody skrót (i co ciekawsze)
nieskrót Komenda. Ponieważ istnieją implementacje, które nie wykonują rozwijania skrótów
w przypadku pierwszego argumentu tych poleceń jest to dozwolone, ale nie wymagane przez
POSIX.1-2008. Jednak następująca sekwencja:

:abs bla bar
:abs bla baz

spowodowało dodanie skrótu "baz" dla sznurka "bar" w historycznym
ex/vi, i sekwencja:

:abs głupku bar
:abs głupku bar
:nieskrócony głupku

usunięto skrót „foo1”, Nie „foo2”. Takie zachowania nie są dozwolone przez
POSIX.1-2008, ponieważ w sposób oczywisty naruszają oczekiwania użytkownika.

Historyczną praktyką było interpretowanie znaków -V, a nie
ucieczki przed kolejnymi znakami w skracać Komenda. Wymaga POSIX.1-2008
zgodność z praktyką historyczną; należy jednak zaznaczyć, że jest to skrót
zawierające nigdy nie będzie działać.

Dodać
Historycznie rzecz biorąc, dowolny tekst następujący po separatorze poleceń po an dodać,
zmianalub wstawić polecenie stało się częścią wstawianego tekstu. Na przykład w poleceniu:

:g/pattern/append|rzecz1

linia zawierająca tekst „rzeczy 1” zostanie dodany do każdego wzorca dopasowywania linii. To
było również historycznie ważne, aby wejść:

:dołącz|rzecz1
rzeczy2
.

i tekst na ex wiersz poleceń zostanie dodany wraz z tekstem wstawionym po nim
To. Wystąpił jednak historyczny błąd polegający na tym, że użytkownik musiał wprowadzić dwa zakończenia
linie ( '.' linie), aby w tym przypadku zakończyć tryb wprowadzania tekstu. Wymaga POSIX.1-2008
zgodność z praktyką historyczną, ale wyklucza historyczną potrzebę wielości
linie końcowe.

zmiana
Zobacz UZASADNIENIE dot dodać Komenda. Historyczna praktyka pozycjonowania kursora po
polecenie zmiany, gdy nie jest wprowadzony żaden tekst, jest zgodne z opisem w POSIX.1-2008. Jednak jeden
Wiadomo, że implementacja Systemu V została zmodyfikowana w taki sposób, że kursor został ustawiony
pod pierwszym podanym adresem, a nie w linii przed pierwszym adresem. POSIX.1-2008
uniemożliwia tę modyfikację ze względu na spójność.

Historycznie zmiana polecenie nie obsługiwało argumentów bufora, chociaż niektóre
implementacje umożliwiają specyfikację opcjonalnego bufora. To zachowanie nie jest żadnym z nich
wymagane ani zabronione przez POSIX.1-2008.

zmiana Informator
Popularne rozszerzenie w ex implementacja polega na użyciu elementów a cdścieżka edytuj opcję jako
katalogi z prefiksami dla ścieżka argumenty do chdir które są względnymi nazwami ścieżek, a które nie
mieć '.' or „..” jako ich pierwszy składnik. Elementy w cdścieżka opcja edycji to
-oddzielone. Wartość początkowa cdścieżka opcja edycji jest wartością powłoki
CDPATH Zmienna środowiskowa. Ta funkcja nie została uwzględniona w POSIX.1-2008, ponieważ tak jest
nie istnieją w żadnym z wdrożeń uznawanych za praktykę historyczną.

Skopiuj
Historyczne realizacje ex dozwolone kopie do linii mieszczących się w określonym zakresie;
Na przykład, :2,5kopia3 było ważnym poleceniem. POSIX.1-2008 wymaga zgodności z
praktyka historyczna.

Usuń
POSIX.1-2008 wymaga obsługi analizy historycznej pliku a usunąć polecenie, po którym następuje
flagi, bez żadnych znaków . Na przykład:

1dp Usuwa pierwszą linię i drukuje linię, która była druga.

1delep Co się tyczy 1dp.

1d Usuwa pierwszą linię, zapisując ją w buforze p.

1d p1l (Pee-one-ell.) Usuwa pierwszą linię, zapisując ją w buforze pi wypisanie linii
to było drugie.

Edytuj
Historycznie rzecz biorąc, dowolne ex polecenie można wprowadzić jako a +komenda argument do edit Komenda,
choć niektórzy (np. wstawić i dodać) były znane z mylenia historii
wdrożenia. Dla spójności i prostoty specyfikacji wymaga tego POSIX.1-2008
aby dowolne polecenie było obsługiwane jako argument metody edit dowództwo.

Historycznie rzecz biorąc, argument polecenia był wykonywany z bieżącą linią ustawioną na ostatnią linię
pliku, niezależnie od tego, czy edit polecenie zostało wykonane z trybu wizualnego, czy nie.
POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historycznie +komenda określone do edit i Następny polecenia zostały rozdzielone przez
najpierw i nie było możliwości ich zacytowania. Aby zachować spójność, wymaga tego POSIX.1-2008
to co zwykle ex należy podać cytat z ukośnikiem odwrotnym.

Historycznie rzecz biorąc, określenie +komenda argument polecenia edycji wymagał nazwy pliku
być również określone; Na przykład, edit: + 100 zawsze kończyłoby się niepowodzeniem. Dla spójności i
prostota specyfikacji, POSIX.1-2008 nie pozwala na to, aby to użycie zawiodło
powód.

Historycznie rzecz biorąc, tylko pozycja kursora ostatniego edytowanego pliku była zapamiętywana przez
redaktor. POSIX.1-2008 wymaga obsługi tego rozwiązania; jednak wdrożenia są
może zapamiętać i przywrócić pozycję kursora dla dowolnego wcześniej edytowanego pliku.

filet
Historyczne wersje ex redaktor filet polecenie wyświetliło bieżącą linię i liczbę
linie w buforze edycji wynoszące 0, gdy plik był pusty, podczas gdy plik vi -Polecenie G
wyświetlił bieżącą linię i liczbę linii w buforze edycji 1 w tym samym
sytuacja. POSIX.1-2008 nie pozwala na tę rozbieżność, zamiast tego wymaga przesłania komunikatu
zostanie wyświetlony komunikat wskazujący, że plik jest pusty.

Globalne
Dwuprzebiegowa operacja światowy i v polecenia nie ma na celu sugerować
wdrożenie, tylko wymagany wynik operacji.

Bieżąca linia i kolumna są ustawione zgodnie z indywidualnymi ustawieniami ex polecenia. Ten
wymóg ma charakter kumulatywny; oznacza to, że bieżąca linia i kolumna muszą być śledzone we wszystkich obszarach
polecenia wykonywane przez światowy or v Polecenia.

wstawka
Zobacz UZASADNIENIE dot dodać dowództwo.

Historycznie wstawić nie można było użyć z adresem równym zero; to znaczy nie wtedy, gdy edit
bufor był pusty. POSIX.1-2008 wymaga, aby to polecenie zachowywało się spójnie z
dodać dowództwo.

Dołącz do rejestru
Działanie przystąpić polecenie w odniesieniu do znaków specjalnych jest zdefiniowane tylko dla
ustawienia regionalne POSIX, ponieważ prawidłowa ilość białych znaków po kropce jest różna; W
W języku japońskim nie jest wymagane żadne słowo, w języku francuskim tylko jedna spacja i tak dalej.

Lista
Historyczny dorobek podstęp polecenie było potencjalnie niejednoznaczne. Standard
programiści uważali, że skorygowanie tego jest ważniejsze niż trzymanie się historii
praktyce, a POSIX.1-2008 wymaga jednoznacznych wyników.

Mapa
Historycznie rzecz biorąc, mapy trybu poleceń były stosowane tylko do nazw poleceń; na przykład, jeśli
charakter 'x' został zmapowany „ty”, Komenda fx szukałem 'x' charakter, a nie
„ty” postać. POSIX.1-2008 wymaga takiego zachowania. Historycznie rzecz biorąc, wprowadzenie -V as
pierwszy znak a vi polecenie było błędem. Kilka wdrożeń zostało rozszerzonych
semantyka vi tak, że -V oznacza, że ​​kolejnym znakiem polecenia jest
nie zmapowane. Jest to dozwolone, ale nie wymagane, przez POSIX.1-2008. Nieważne, używając
-V, aby uciec od drugiego lub kolejnego znaku w sekwencji znaków, który może
dopasować mapa polecenie lub dowolny znak w trybie wprowadzania tekstu jest praktyką historyczną, oraz
uniemożliwia dopasowanie wprowadzonych kluczy do mapy. POSIX.1-2008 wymaga zgodności z
praktyka historyczna.

Implementacje historyczne pozwoliły na użycie cyfr jako: mapa komenda lhs, ale wtedy
zignorował mapę. POSIX.1-2008 wymaga, aby mapowane cyfry nie były ignorowane.

Historyczna realizacja mapa polecenie nie pozwoliło mapa polecenia, jakie były
dłuższy niż jeden znak, jeśli pierwszy znak był możliwy do wydrukowania. To zachowanie
jest dozwolone, ale nie wymagane przez POSIX.1-2008.

Historycznie rzecz biorąc, mapowane postacie były ponownie mapowane, chyba że remap opcja edycji nie została ustawiona, lub
przedrostek mapowanych znaków odpowiadał znakom mapującym; na przykład w
mapa:

:mapa ab abcd

postaci "ab" zostały użyte w niezmienionej postaci i nie zostały przemapowane, ale znaki "Płyta CD" były
zmapowane, jeśli to konieczne. Może to spowodować nieskończone pętle w pliku vi mechanizmy mapowania.
POSIX.1-2008 wymaga zgodności z praktyką historyczną i istnienia takich pętli
przerywalny.

Mapy wprowadzania tekstu miały te same problemy z rozszerzaniem lhs dla ex mapa! i usuń mapę!
polecenie, podobnie jak polecenie ex skracać i niekrótki polecenia. Zobacz UZASADNIENIE dot ex
skracać Komenda. POSIX.1-2008 wymaga podobnej modyfikacji niektórych praktyk historycznych
dla mapa i usuń mapę polecenia, zgodnie z opisem dla skracać i niekrótki Polecenia.

Historycznie mapas, które były podzbiorami innych mapazachowywał się różnie w zależności od
kolejność, w jakiej zostały zdefiniowane. Na przykład:

:mapa! ab krótki
:mapa! ABC długie

zawsze tłumaczył znaki "ab" do "niski", niezależnie od tego, jak szybko
znaków "ABC" zostały wprowadzone. Jeżeli kolejność zgłoszeń została odwrócona:

:mapa! ABC długie
:mapa! ab krótki

postaci "ab" spowodowałoby, że redaktor zatrzymałby się w oczekiwaniu na zakończenie 'C'
znak, a znaki mogą nigdy nie zostać zmapowane "niski". Dla spójności i
prostota specyfikacji, POSIX.1-2008 wymaga, aby w ogóle zastosowano najkrótsze dopasowanie
razy.

Czas, jaki redaktor spędza, czekając, aż postacie ukończą zadanie lhs is
nieokreślone, ponieważ możliwości czasowe systemów są często niedokładne i zmienne, oraz
może to zależeć od innych czynników, takich jak szybkość połączenia. Czas powinien być
wystarczająco długo, aby użytkownik mógł ukończyć sekwencję, ale nie wystarczająco długo, aby użytkownik mógł ukończyć sekwencję
użytkownik będzie musiał poczekać. Niektóre wdrożenia vi dodali A czas kluczowy opcja, która
pozwala użytkownikom ustawić liczbę 0,1 sekundy, przez jaką edytor oczekuje na zakończenie
postacie. Ponieważ mapowane funkcje terminala i klawisze kursora zwykle zaczynają się od
znak, a to końcówka klawisza vi tryb wprowadzania tekstu, mapazaczyna się od
postacie są zazwyczaj wyłączone z tego limitu czasu lub przynajmniej przekroczone
różnie.

Mark
Historycznie rzecz biorąc, użytkownicy mogli jawnie ustawić znaczniki „poprzedniego kontekstu”. W
dodatek, ex Polecenia '' i '` oraz vi Polecenia '', ``, `', '` wszystkie wymienione
ten sam znak. Ponadto poprzednie znaczniki kontekstu nie zostały ustawione, jeśli polecenie with
z którym skojarzono adres ustawiający znak, nie powiodło się. Wymaga POSIX.1-2008
zgodność z praktyką historyczną. Historycznie rzecz biorąc, jeśli zaznaczone linie zostały usunięte, znak
również został usunięty, ale pojawiłby się ponownie, gdyby zmiana została cofnięta. Wymaga POSIX.1-2008
zgodność z praktyką historyczną.

Opis specjalnych wydarzeń, które wyznaczyły ` i ' znaki odpowiadają historycznym
ćwiczyć. Na przykład historycznie polecenie /a/,/b/ nie ustawił ` i ' znaki, ale
Komenda /a/,/b/usuń nie.

Następna
Historycznie rzecz biorąc, dowolne ex polecenie można wprowadzić jako a +komenda argument do Następny Komenda,
choć niektórzy (np. wstawić i dodać) były znane z mylenia historii
wdrożenia. POSIX.1-2008 wymaga, aby dowolne polecenie było dozwolone i zachowywało się jak
określony. ten Następny polecenie może zaakceptować więcej niż jeden plik, więc użycie takie jak:

Następny `ls [ABC] `

jest ważna; nie musi to być ważne dla edit or czytać polecenia, na przykład dlatego, że one
spodziewaj się tylko jednej nazwy pliku.

Historycznie Następny polecenie zachowało się inaczej niż polecenie :przewijanie do tyłu rozkazuj w tym
zignorował flagę siły, jeśli automatyczne pisanie flaga została ustawiona. Dla spójności, POSIX.1-2008 tak
nie pozwalaj na takie zachowanie.

Historycznie Następny polecenie umieściło kursor tak, jakby plik nigdy nie był edytowany
wcześniej, nieważne. POSIX.1-2008 nie pozwala na takie zachowanie ze względu na spójność z
edit dowództwo.

Implementacje, które chcą zapewnić odpowiednik Następny polecenie, które edytowało plik
w poprzednim pliku użyto polecenia poprzedni], co wymaga nie filet argument. POSIX.1-2008
nie wymaga tego polecenia.

Otwarte
Historycznie koncepcja polecenie nie powiedzie się, jeśli koncepcja opcja edycji nie została ustawiona.
POSIX.1-2008 nie wspomina o koncepcja edit i nie wymaga takiego zachowania.
Niektóre historyczne implementacje nie pozwalają na wejście w tryb otwarty z trybu otwartego lub wizualnego,
tylko z ex tryb. Dla zachowania spójności, POSIX.1-2008 nie pozwala na takie zachowanie.

Historycznie rzecz biorąc, wejście w tryb otwarty z wiersza poleceń (tzn. vi +otwarte) spowodowało
anomalne zachowania; na przykład ex pliku i zestaw polecenia, a vi komenda
-G nie zadziałało. Dla zachowania spójności, POSIX.1-2008 nie pozwala na takie zachowanie.

Historycznie koncepcja dozwolone tylko polecenie „/” znaków, które mają być użyte podczas wyszukiwania
ogranicznik wzoru. Dla zachowania spójności, POSIX.1-2008 wymaga użycia ograniczników wyszukiwania
przez s, światowy, v polecenia są również akceptowane.

Zachować
Połączenia zachować polecenie nie powoduje w przeszłości, że plik był uznawany za niezmodyfikowany
celów przyszłych poleceń, które mogą wyjść z edytora. Wymaga POSIX.1-2008
zgodność z praktyką historyczną.

Dokumentacja historyczna stwierdzała, że ​​poczta nie została wysłana do użytkownika, gdy było to zachowane
wykonany; jednakże w tym przypadku historyczne implementacje wysłały pocztę. POSIX.1-2008
wymaga zgodności z wdrożeniami historycznymi.


Napisanie NUL przez polecenie nie jest określone jako przypadek specjalny, ponieważ
programiści standardów nie chcieli wymagać ex do obsługi znaków NUL. Historycznie rzecz biorąc,
znaki były wyświetlane przy użyciu standardowych mapowań ARPA, które są następujące:

1. Znaki nadające się do druku pozostawia się w spokoju.

2. Znaki kontrolne mniejsze niż \177 są reprezentowane jako '^' po którym następuje znak
przesunięcie od „@” znak na mapie ASCII; na przykład \007 jest reprezentowane jako
„^G”.

3. \177 jest reprezentowane jako '^' następnie '?'.

Wyświetlanie znaków mających ustawiony ósmy bit było mniej standardowe. Istniejący
implementacje używają szesnastkowego (0x00), ósemkowego (\000) i wyświetlania metabitowego. (To ostatnie
wyświetlane bajty, których ósmy bit był ustawiony jako dwa znaki „M-” a następnie
wyświetlacz siedmiobitowy, jak opisano powyżej.) Ten ostatni prawdopodobnie ma największe roszczenia
praktyka historyczna, ponieważ była używana do -w opcja 4 BSD i 4 pochodnych BSD
wersje jak użytkowe od 1980 roku.

POSIX.1-2008 nie wymaga żadnego konkretnego formatu wyświetlania.

Tam, gdzie było to możliwe, uniknięto wyraźnej zależności od zestawu znaków ASCII, stąd
użycie wyrażenia „sekwencja wieloznakowa zdefiniowana w implementacji” na wyświetlaczu
znaków niedrukowalnych zamiast historycznego użycia, na przykład, „^ja”
dla . Zaleca się, aby wdrożenia były zgodne z praktyką historyczną w
brak jakiegokolwiek istotnego powodu do rozbieżności.

Historycznie wszystko ex polecenia zaczynające się na literę 'P' można wprowadzić za pomocą
wersje poleceń pisane wielką literą; Na przykład, Wydrukować], Utrzymywać], Umieścić] były
prawidłowe nazwy poleceń. POSIX.1-2008 zezwala, ale nie wymaga, tej historycznej praktyki
ponieważ wielkie formy poleceń są używane w niektórych implementacjach do innych celów.

PUT
Historycznie ex położyć polecenie, wykonane w trybie otwartym lub wizualnym, było takie samo jak polecenie
tryb otwarty lub wizualny P polecenie, jeśli bufor został nazwany i został wycięty w trybie znakowym, oraz
Taki sam jak p polecenie, jeśli bufor został nazwany i przecięty w trybie liniowym. Jeśli bezimienny
bufor był źródłem tekstu, cała linia, z której tekst został wzięty
zazwyczaj położyć, a bufor był obsługiwany tak, jakby był w trybie liniowym, ale można było go uzyskać
niezwykle anomalne zachowanie. Ponadto, korzystając z Q polecenie przełączenia na ex tryb i
następnie robię położyć często skutkowało również błędami, takimi jak dołączenie tekstu
niezwiązane z (rzekomą) zawartością bufora. Dla spójności i prostoty
specyfikacji, POSIX.1-2008 nie pozwala na takie zachowania. Wszystko ex położyć polecenia są
wymagane do pracy w trybie liniowym, a zawartość buforów nie ulega zmianie
zmiana trybu edytora.

Czytaj
Historycznie ex czytać polecenie wykonywane w trybie otwartym lub wizualnym, wykonywane w pustym miejscu
file, pozostawił pustą linię jako pierwszą linię pliku. Dla spójności i prostoty
specyfikacji, POSIX.1-2008 nie pozwala na takie zachowanie. Historycznie rzecz biorąc, A czytać w otwartym
lub tryb wizualny z programu pozostawił kursor w ostatniej wczytanej linii, a nie w pierwszej. Dla
spójność, POSIX.1-2008 nie pozwala na takie zachowanie.

Historyczne realizacje ex nie udało się cofnąć czytać polecenia, które czytają z
wyjście programu. Dla zachowania spójności, POSIX.1-2008 nie pozwala na takie zachowanie.

Historycznie ex i vi wiadomość po pomyślnym zakończeniu czytać or napisać określone polecenie
„znaki”, a nie „bajty”. POSIX.1-2008 wymaga, aby liczba bajtów wynosiła
wyświetlane, a nie liczbę znaków, ponieważ w przypadku znaków wielobajtowych może to być trudne
implementacje w celu określenia liczby odczytanych znaków. Zachęcamy do wdrożeń
w celu wyjaśnienia komunikatu wyświetlanego użytkownikowi.

Historycznie rzecz biorąc, odczyty nie były dozwolone w przypadku plików innych niż zwykły typ, z wyjątkiem FIFO
pliki można było odczytać (prawdopodobnie tylko dlatego, że nie istniały, kiedy ex i vi były
oryginalnie napisany). Ponieważ historyczny ex oceniane czytać! i czytać ! równoważnie,
nie ma opcjonalnego sposobu wymuszenia odczytu. POSIX.1-2008 pozwala, ale nie
wymagają tego zachowania.

Recover
Niektóre historyczne implementacje edytora umożliwiały użytkownikom odzyskanie bufora edycji
zawartość z poprzedniej sesji edycji, a następnie wyjdź bez zapisywania tej zawartości (lub
wyraźnie je odrzucając). Celem POSIX.1-2008 jest wymaganie, aby bufor edycji
być traktowane jako już zmodyfikowane, aby zapobiec temu błędowi użytkownika.

Rewind
Historyczne wdrożenia wspierały przewijanie do tyłu polecenie, gdy użytkownik edytował plik
pierwszy plik na liście; czyli plik, który przewijanie do tyłu polecenie edytowałoby. POSIX.1-2008
wymaga zgodności z praktyką historyczną.

namiastka
Historycznie ex zaakceptowany i r opcja do s Komenda. Efekt r opcją było
użyj ostatniego wyrażenia regularnego użytego w dowolnym poleceniu jako wzorca, tak samo jak ~
Komenda. Plik r opcja nie jest wymagana przez POSIX.1-2008. Historycznie rzecz biorąc, c i g Opcje
zostały przełączone; na przykład polecenie :s/abc/def/ był taki sam jak s/abc/def/ccccgggg.
Dla uproszczenia specyfikacji, POSIX.1-2008 nie pozwala na takie zachowanie.

Polecenie tyldy jest często używane do zastąpienia ostatniego szukanego RE. Na przykład w
sekwencja:

s/czerwony/niebieski/
/Zielony
~

dotychczasowy ~ polecenie jest równoważne:

s/zielony/niebieski/

Historycznie ex zaakceptował wszystkie następujące formy:

s/abc/def/
s/abc/pok
s/abc/
s/abc

POSIX.1-2008 wymaga zgodności z tą historyczną praktyką.

Połączenia s polecenie zakłada, że '^' znak zajmuje tylko jedną kolumnę w pliku
wyświetlacz. Wiele z ex i vi Specyfikacja zakłada, że ​​ zajmuje tylko a
pojedyncza kolumna na wyświetlaczu. Nie ma znanych zestawów znaków, dla których tak nie jest
prawdą.

Historycznie rzecz biorąc, ostateczna pozycja kolumny dla poleceń zastępczych była oparta na poprzedniej
ruchy kolumn; wyszukiwanie wzorca, po którym następuje podstawienie, opuściłoby kolumnę
pozycja niezmieniona, podczas gdy polecenie 0, po którym następuje podstawienie, spowoduje zmianę kolumny
pozycję do pierwszego elementu innego niż . Dla spójności i prostoty specyfikacji,
POSIX.1-2008 wymaga, aby końcowa pozycja kolumny była zawsze ustawiona na pierwszą
nie-.

Zestaw
Implementacje historyczne ponownie wyświetlały wszystkie opcje dla każdego wystąpienia cała kolekcja
słowo kluczowe. POSIX.1-2008 pozwala, ale nie wymaga, takiego zachowania.

etykieta
Nie ma wymagań co do tego, gdzie ex i vi powinien szukać pliku, do którego odwołuje się znacznik
wejście. Historyczna praktyka polegała na poszukiwaniu ścieżki znalezionej w tagi plik, na podstawie
bieżący katalog. Przydatnym rozszerzeniem występującym w niektórych implementacjach jest wygląd oparty
również w katalogu zawierającym plik tagów, w którym znajdował się wpis. Nie ma wymagań
dokonano wyboru odniesienia do znacznika w pliku tagów. Jest to celowe, m.in
aby zezwolić na rozszerzenia, takie jak wielokrotne wpisy w pliku znaczników dla znacznika.

Ponieważ użytkownicy często określają wiele różnych plików znaczników, z których niektóre nie muszą być istotne
lub istnieje w dowolnym momencie, POSIX.1-2008 wymaga, aby pojawiały się komunikaty o błędach dotyczące problemu
tagi zostaną wyświetlone tylko wtedy, gdy żądany tag nie zostanie znaleziony, i to tylko raz
za każdym razem, gdy etykieta opcja edycji została zmieniona.

Wymóg, aby bieżący bufor edycji nie był modyfikowany, jest konieczny tylko w przypadku pliku
wskazany przez wpis znacznika nie jest tym samym, co bieżący plik (zgodnie z definicją w pliku current
nazwa ścieżki). Historycznie rzecz biorąc, plik zostałby ponownie załadowany, gdyby nazwa pliku również uległa zmianie
tak, jakby nazwa pliku różniła się od bieżącej nazwy ścieżki. Dla spójności i prostoty
specyfikacji, POSIX.1-2008 nie pozwala na takie zachowanie, wymagając, aby nazwa była
jedynym czynnikiem wpływającym na decyzję.

Historycznie vi wyszukiwał tylko znaczniki w bieżącym pliku od bieżącego kursora do
koniec pliku i dlatego, jeśli Wrapscan opcja nie została ustawiona, tagi wystąpiły wcześniej
nie znaleziono bieżącego kursora. POSIX.1-2008 uważa to za błąd i implementację
niezależnie od tego wymagane jest wyszukanie pierwszego wystąpienia w pliku.

odpiąć
Połączenia anulować w opisie celowo użyto słowa „zmodyfikowany”. The anulować polecenie nie jest
przeznaczony do cofania poleceń zastępujących zawartość bufora edycji, takich jak edit,
Następny, etykietalub wyzdrowieć.

Pozycjonowanie kursora po anulować polecenie było niezgodne z historią vi, czasami
próba przywrócenia pierwotnej pozycji kursora (światowy, anulować, v polecenia) i
czasami, w obecności map, umieszczenie kursora na ostatniej dodanej lub zmienionej linii
zamiast pierwszego. POSIX.1-2008 wymaga uproszczonego zachowania w celu zapewnienia spójności i
prostota specyfikacji.

Wersja
Połączenia wersja polecenia nie można dokładnie określić, ponieważ nie jest ono powszechnie akceptowane
definicja tego, co powinna zawierać informacja o wersji. Zachęcamy do wdrożeń
zrobić coś w miarę inteligentnego.

Pisać
Historycznie ex i vi wiadomość po pomyślnym zakończeniu czytać or napisać określone polecenie
„znaki”, a nie „bajty”. POSIX.1-2008 wymaga, aby liczba bajtów wynosiła
wyświetlane, a nie liczbę znaków, ponieważ w przypadku znaków wielobajtowych może to być trudne
implementacje w celu określenia liczby zapisanych znaków. Implementacje są
zachęcamy do wyjaśnienia komunikatu wyświetlanego użytkownikowi.

Testy zdefiniowane w implementacji są dozwolone, aby implementacje mogły wprowadzać dodatkowe
czeki; na przykład dla blokad lub czasów modyfikacji plików.

Historycznie rzecz biorąc, próba dołączenia do nieistniejącego pliku powodowała błąd. Zostało
nieokreślone w POSIX.1-2008, aby zezwolić na implementacje umożliwiające napisać się uda, więc tak
semantyka dołączania jest podobna do semantyki historycznej csh.

Historia vi zezwolono na zapisanie pustych buforów edycyjnych. Jednak od czasu vi got
w przypadku „pustych” plików zawsze należało mieć linię w buforze edycji, nie
bez względu na wszystko, zapisał je jako pliki o pojedynczej, pustej linii. POSIX.1-2008 nie pozwala
to zachowanie.

Historycznie ex przywrócono standardowe wyjście i standardowy błąd do ich aktualnych wartości ex
został wywołany przed wykonaniem zapisu do programów. Może to zakłócić działanie terminala
konfiguracji, a także stanowić problem bezpieczeństwa dla niektórych terminali. POSIX.1-2008 nie
pozwalają na to, wymagając, aby dane wyjściowe programu były przechwytywane i wyświetlane tak, jakby były przez ex
dowództwo.

Dostosować okno
Historycznie rzecz biorąc, liczba linii była ustawiana na wartość przewijać opcja, jeśli typ
znak był końcem pliku. Ta funkcja nie działała w większości historycznych wdrożeń przez długi czas
jednak wcześniej i nie jest nigdzie udokumentowane. Z tego powodu POSIX.1-2008 jest zdecydowanie
cichy.

Historycznie z polecenie było wrażliwe na i z + i z - robił różne rzeczy
niż z+ i z− ponieważ typu nie można było odróżnić od flagi. (Rozkazy z .
i z = były historycznie nieprawidłowe.) POSIX.1-2008 wymaga zgodności z tą historią
ćwiczyć.

Historycznie z polecenie było dodatkowo wrażliwe na , ponieważ liczyć nie może być
-rozdzielone; na przykład polecenia z= 5 i z− 5 były również nieważne. Ponieważ
liczyć nie jest dwuznaczny ani w odniesieniu do znaku typu, ani flag, tak nie jest
dozwolone przez POSIX.1-2008.

Ucieczka
Historycznie ex polecenia filter czytają tylko standardowe wyjście poleceń, pozwalając
standardowy błąd pojawia się na terminalu jak zwykle. The vi narzędzie, jednak przeczytaj oba
standardowe wyjście i standardowy błąd. POSIX.1-2008 wymaga tego drugiego zachowania w obu przypadkach ex
i vi, dla spójności.

Shift Lewa i Shift Prawa
Historycznie rzecz biorąc, możliwe było dodanie znaków shift w celu zwiększenia efektu
Komenda; Na przykład, << przestarzały (lub >>> wcięty) linie 3 poziomy wcięcia
zamiast domyślnego 1. POSIX.1-2008 wymaga zgodności z praktyką historyczną.

-D
Historycznie rzecz biorąc, polecenie -D usuwało monit, udostępniając użytkownikowi
nieprzerwana prezentacja linii z bufora edycji. Nie jest to wymagane przez POSIX.1-2008;
zachęca się, aby w miarę możliwości zapewniały one takie rozwiązania. Historycznie rzecz biorąc, -D
polecenie zostało przyjęte, a następnie zignorowane, a liczyć. POSIX.1-2008 nie pozwala na takie zachowanie.

Pisać Linia Numer
Historycznie ex = polecenie, gdy zostanie wykonane w ex mode w pustym buforze edycji, raportowane
0, a w trybie otwartym lub wizualnym raportowano 1. Dla spójności i prostoty
specyfikacji, POSIX.1-2008 nie pozwala na takie zachowanie.

Wykonać
Historycznie ex nie poradził sobie poprawnie z dołączeniem poleceń wprowadzania tekstu (tzn.
dodać, wstawić, zmiana) w wykonanych buforach. POSIX.1-2008 na to nie pozwala
wykluczenie ze względu na spójność.

Historycznie rzecz biorąc, logiczna zawartość wykonywanego bufora nie zmieniała się, jeśli
sam bufor został zmodyfikowany przez wykonywane polecenia; to znaczy, że wykonanie buforowe zadziałało
nie obsługuje samomodyfikującego się kodu. POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historycznie @ polecenie wymagało szeregu wierszy, a plik @ bufor był wykonywany raz na
linię z bieżącą linią ('.') ustawione na każdą określoną linię. Wymaga POSIX.1-2008
zgodność z praktyką historyczną.

Niektóre historyczne implementacje nie zauważały, czy podczas wykonywania bufora wystąpiły błędy.
To, w połączeniu z możliwością określenia zakresu linii dla ex @ polecenie, udaje się
trywialne, aby spowodować ich upadek core. POSIX.1-2008 wymaga zatrzymania implementacji
wykonanie bufora, jeśli wystąpi jakikolwiek błąd, jeśli określona linia nie istnieje lub jeśli
zawartość samego bufora edycji jest zastępowana (na przykład bufor wykonuje ex
edit: dowództwo).

Regularna Expressions in ex
Historyczna praktyka jest taka, że ​​znaki w części zastępczej są ostatnie s Komenda-
to znaczy te, które odpowiadają wpisaniu a '~' w wyrażeniu regularnym – nie były dalej
rozszerzony przez silnik wyrażeń regularnych. Jeśli więc znaki zawierały ciąg
"A.," pasowałyby 'A' następnie „.” i uwaga 'A' po którym następuje dowolny znak.
POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Edytuj Opcje in ex
Poniższe akapity opisują historyczne zachowanie niektórych opcji edycji, które były
z jakiegoś powodu nie jest uwzględniony w POSIX.1-2008. Wdrożenia są mocno
zachęcamy do używania tych nazw tylko wtedy, gdy opisana tutaj funkcjonalność jest w pełni obsługiwana.

dużym Połączenia dużym Opcja edycji została użyta w niektórych implementacjach vi zapewnienie
rozszerzone wyrażenia regularne zamiast podstawowych wyrażeń regularnych Ta opcja
został pominięty w POSIX.1-2008, ponieważ nie jest to powszechna praktyka historyczna.

lampa błyskowa Połączenia lampa błyskowa opcja edycji powodowała w przeszłości, że ekran migał zamiast wydawać sygnał dźwiękowy
na błędzie. Ta opcja została pominięta w POSIX.1-2008, ponieważ nie została znaleziona w
niektóre historyczne wdrożenia.

twarde karty Połączenia twarde karty opcja edycji historycznie definiowała liczbę kolumn pomiędzy
ustawienia karty sprzętowej. Ta opcja została pominięta w POSIX.1-2008, ponieważ tak było
uważa się, że nie są już ogólnie przydatne.

modelina Połączenia modelina (czasami nazwany modele) opcja edycji spowodowana historycznie ex or
vi aby przeczytać pięć pierwszych i ostatnich wierszy pliku dla poleceń edytora. Ten
opcja stanowi problem związany z bezpieczeństwem i zdecydowanie zaleca się dostawcom jej usunięcie
z historycznych realizacji.

koncepcja Połączenia koncepcja opcja edycji historycznie niedozwolona ex koncepcja i wizualny Polecenia.
Ta opcja edycji została pominięta, ponieważ te polecenia są wymagane przez
POSIX.1-2008.

optymalizacji Połączenia optymalizacji opcja edycji historycznie przyspieszyła przepustowość tekstu, ustawiając
terminal, aby nie wykonywał automatycznie znaków podczas drukowania większej liczby
niż jedna logiczna linia wyjścia. Ta opcja została pominięta w POSIX.1-2008
ponieważ był przeznaczony dla terminali bez kursorów adresowalnych, którymi są
rzadko, jeśli w ogóle, nadal używany.

linijka Połączenia linijka Opcja edycji została użyta w niektórych implementacjach vi zaprezentować
bieżąca linijka wiersza/kolumny dla użytkownika. Ta opcja została pominięta w POSIX.1-2008
ponieważ nie jest to powszechna praktyka historyczna.

źródłodowolne Połączenia źródłodowolne opcja edycji spowodowana historycznie ex or vi do pobierania plików startowych
które były własnością użytkowników innych niż użytkownik uruchamiający edytor. Ta opcja jest
stanowi problem związany z bezpieczeństwem i zdecydowanie zachęca się dostawców, aby usunęli go ze swoich produktów
wdrożenia.

Timeout Połączenia Timeout opcja edycji historycznie włączała (obecnie standardową) funkcję tylko
oczekiwanie przez krótki czas przed zwróceniem kluczy, które mogą być częścią makra.
Ta funkcja została pominięta w POSIX.1-2008, ponieważ jej zachowanie jest obecnie standardowe,
nie jest ona powszechnie użyteczna i rzadko była dokumentowana.

gadatliwy Połączenia gadatliwy Opcja edycji została użyta w niektórych implementacjach vi powodować vi
do wysyłania komunikatów o błędach dotyczących typowych błędów; na przykład próba przeniesienia
kursor poza początek lub koniec linii, zamiast tylko ostrzegać
ekran. (Historyczne vi zaalarmował jedynie terminal i nie przedstawił żadnego komunikatu
za takie błędy. Opcja edytora historycznego lakoniczny nie wybrałem kiedy
obecnych komunikatów o błędach, spowodowało to jedynie powstanie mniej więcej istniejących komunikatów o błędach
gadatliwy.) Ta opcja została pominięta w POSIX.1-2008, ponieważ nie jest rozpowszechniona
praktyka historyczna; zachęca się jednak realizatorów do korzystania z niego, jeśli chcą
aby wyświetlać komunikaty o błędach naiwnym użytkownikom.

owinięty Połączenia owinięty Opcja edycji została użyta w niektórych implementacjach vi sprecyzować
margines automatyczny mierzony od lewego marginesu, a nie od prawego
margines. Jest to przydatne, gdy do edycji pliku używa się wielu rozmiarów ekranu
pojedynczy plik. Ta opcja została pominięta w POSIX.1-2008, ponieważ tak nie jest
powszechna praktyka historyczna; zachęca się jednak realizatorów do korzystania z niego
jeśli dodadzą tę funkcję.

automatyczne wcięcie, ai
Historycznie rzecz biorąc, polecenie 0a nie wykonał żadnego automatycznego wcięcia, niezależnie od prądu
wcięcie linii 1. POSIX.1-2008 wymaga, aby każde wcięcie obecne w linii 1 było
używany.

autodruk, ap
Historycznie autodruk opcja edycji nie była całkowicie spójna lub opierała się wyłącznie na
modyfikacje bufora edycji. Wyjątkami były czytać polecenie (podczas czytania z a
plik, ale nie z filtra), plik dodać, zmiana, wstawić, światowy, v polecenia, wszystko
na które nie miały wpływu autodruki etykieta polecenie, na które miało wpływ
autodruk. POSIX.1-2008 wymaga zgodności z praktyką historyczną.

Historycznie autodruk opcja stosowana tylko do ostatniego z wielu wprowadzonych poleceń
używając ograniczników ; Na przykład, usunąć został dotknięty przez autodruk,
ale usuń|wersję nie było. POSIX.1-2008 wymaga zgodności z danymi historycznymi
ćwiczyć.

automatyczny zapis, aw
Dołączanie '!' znak do ex Następny polecenie, aby uniknąć wykonywania automatycznego zapisu
nie był wspierany w historycznych wdrożeniach. POSIX.1-2008 wymaga, aby zachowanie
pasuje do drugiego ex polecenia dotyczące spójności.

ignorować przypadek, ic
Historyczne implementacje dopasowywania bez uwzględniania wielkości liter ( ignorowanie przypadku opcja edycji) lead
do sprzecznych z intuicją sytuacji, gdy w wyrażeniach zakresu użyto wielkich liter.
Historycznie rzecz biorąc, proces ten wyglądał następująco:

1. Pobierz linię tekstu z bufora edycji.

2. Konwertuj wielkie litery na małe w linii tekstu.

3. Konwertuj wielkie litery na małe w wyrażeniach regularnych, z wyjątkiem klas znaków
specyfikacje.

4. Dopasuj wyrażenia regularne do tekstu.

Oznaczałoby to, że z ignorowanie przypadku w efekcie tekst:

Połączenia jak wieś on dotychczasowy mata

pasowałoby

/^ten/

ale nie przez:

/^[A−Z]on/

Aby zachować spójność z innymi poleceniami implementującymi wyrażenia regularne, robi to POSIX.1-2008
nie pozwalaj na takie zachowanie.

akapity, dla
Standardem domyślnym był ISO POSIX-2:1993 pkt i działy edytuj opcje
zdefiniowane w implementacji, argumentując, że były historycznie zorientowane na system UNIX troff
formater tekstu, a „przenośny użytkownik” może korzystać z {, }, [[, ]], (, ) komendy w
trybie otwartym lub wizualnym i zatrzymaj kursor w nieoczekiwanych miejscach. POSIX.1-2008 określa
ich wartości w ustawieniach regionalnych POSIX, ponieważ nietypowe grupowanie (działają tylko wtedy, gdy są zgrupowane
na dwa znaki jednocześnie) oznacza, że ​​nie można ich używać do celów ogólnych
ruch, bez względu na wszystko.

tylko czytać
Zachęcamy do wdrożenia, aby zapewnić użytkownikowi jak najlepsze informacje na temat
status pliku tylko do odczytu, z tym wyjątkiem, że nie powinny one uwzględniać
aktualne specjalne przywileje procesu. Zapewnia to użytkownikom siatkę bezpieczeństwa, ponieważ
muszą wymuszać zastąpienie plików tylko do odczytu, nawet jeśli działają z dodatkowymi
przywileje.

Połączenia tylko czytać specyfikacja opcji edycji jest w dużej mierze zgodna z praktyką historyczną. Jedyny
różnica polega na tym, że historyczne implementacje nie zauważyły, że użytkownik ustawił
tylko czytać opcję edycji w przypadku, gdy plik z jakiegoś powodu został już oznaczony jako tylko do odczytu,
i w związku z tym ponownie zainicjowałby plik tylko czytać opcję edycji następnym razem, gdy zawartość
bufor edycji został wymieniony. To zachowanie jest niedozwolone przez POSIX.1-2008.

raport
Wymaganiem, aby linie skopiowane do bufora działały inaczej niż linie usunięte, jest:
praktyka historyczna. Na przykład, jeśli raport opcja edycji jest ustawiona na 3, usuwając 3 linie
spowoduje zapisanie raportu, ale przed zapisaniem raportu należy skopiować 4 linie.

Wymóg, aby ex światowy, v, koncepcja, anulować, wizualny polecenia przedstawiają raporty
na podstawie całkowitej liczby wierszy dodanych lub usuniętych podczas wykonywania polecenia i to
polecenia wykonywane przez światowy i v polecenia nie przedstawiają raportów, ma charakter historyczny
ćwiczyć. POSIX.1-2008 rozszerza dotychczasową praktykę, wymagając, aby wykonanie bufora było wykonywane
traktowane podobnie. Przyczyny tego są dwojakie. Historycznie rzecz biorąc, tylko raport
ostatnie polecenie wykonane z bufora będzie widoczne dla użytkownika, tak jak każdy nowy raport
nadpisz ostatni. Ponadto twórcy standardu wierzyli, że wykonanie bufora
miał więcej wspólnego z światowy i v poleceń niż w przypadku innych ex polecenia i
powinny zachowywać się podobnie, ze względu na spójność i prostotę specyfikacji.

mecz pokazowy, sm
Długość czasu, jaki kursor spędza na pasującym znaku, jest nieokreślona, ​​ponieważ
Możliwości czasowe systemów są często niedokładne i zmienne. Czas powinien być długi
wystarczająco długo, aby użytkownik to zauważył, ale nie na tyle długo, aby użytkownik się zirytował. Niektóre
wdrożenia vi dodali A czas meczu opcja, która pozwala użytkownikom ustawić numer
o długości 0,1 sekundy, kursor zatrzymuje się na pasującym znaku.

tryb pokazu
Połączenia tryb pokazu opcja została wykorzystana w niektórych historycznych implementacjach ex i vi do
wyświetla bieżący tryb edycji w trybie otwartym lub wizualnym. Tryby edycji mają
ogólnie obejmowało „polecenie” i „wejście”, a czasami inne tryby, takie jak
„zamień” i „zmień”. Ciąg znaków był zwykle wyświetlany w dolnej linii pliku
ekranu w prawym, skrajnym rogu. Poza tym poprzedzający '*' często oznaczany znak
czy zawartość bufora edycji została zmodyfikowana. Ten ostatni wyświetlacz ma
czasami był częścią tryb pokazu opcji, a czasami w oparciu o inną opcję. Ten
opcja nie była dostępna w historycznych implementacjach 4 BSD vi, ale był postrzegany jako
ogólnie przydatny, szczególnie dla początkujących użytkowników i jest wymagany przez POSIX.1-2008.

Połączenia SMD skrót dla tryb pokazu opcja nie była obecna we wszystkich historycznych
implementacje edytora. Wymaga tego POSIX.1-2008 ze względu na spójność.

Nie wszystkie historyczne implementacje edytora wyświetlały ciąg trybu dla trybu poleceń,
odróżnianie trybu poleceń od trybu wprowadzania tekstu poprzez brak ciągu trybu.
POSIX.1-2008 dopuszcza takie zachowanie ze względu na zgodność z praktyką historyczną, ale
zachęca się, aby implementacje dostarczały ciąg znaków wyświetlany dla obu trybów.

powolne otwieranie
Historycznie powolne otwieranie opcja została ustawiona automatycznie, jeśli szybkość transmisji terminala była mniejsza
niż 1200 bodów lub jeśli szybkość transmisji wynosiła 1200 bodów i przerysować opcja nie została ustawiona. The
powolne otwieranie opcja miała dwa skutki. Po pierwsze, podczas wstawiania znaków w środku linii,
znaki za kursorem nie zostaną przesunięte do przodu, ale będą wyglądać na nadpisane.
Po drugie, podczas tworzenia nowej linii tekstu linie następujące po bieżącej linii nie będą
przewinięty w dół, ale wygląda na nadpisany. W obu przypadkach zakończenie trybu wprowadzania tekstu
spowodowałoby odświeżenie ekranu w celu dopasowania do rzeczywistej zawartości bufora edycji.
Wreszcie terminale, które były wystarczająco inteligentne, spowodowały, że redaktor zignorował
powolne otwieranie opcja. POSIX.1-2008 dopuszcza większość zachowań historycznych, rozszerzając historię
praktyka wymagać powolne otwieranie zachowania, jeżeli użytkownik ustawi opcję edycji.

tagi
Domyślna ścieżka dla plików znaczników pozostaje nieokreślona, ​​ponieważ implementacje mogą mieć własne
tagi wdrożenia, które nie odpowiadają tym historycznym. Domyślny tagi
wartość opcji powinna prawdopodobnie przynajmniej obejmować plik ./tagi.

semestr
Historyczne realizacje ex i vi zignorował zmiany w semestr edit option after the
initial terminal information was loaded. This is permitted by POSIX.1‐2008; however,
implementations are encouraged to permit the user to modify their terminal type at any
czas.

lakoniczny
Historycznie lakoniczny edit option optionally provided a shorter, less descriptive error
message, for some error messages. This is permitted, but not required, by POSIX.1‐2008.
Historically, most common visual mode errors (for example, trying to move the cursor past
the end of a line) did not result in an error message, but simply alerted the terminal.
Implementations wishing to provide messages for novice users are urged to do so based on
dotychczasowy edit opcja gadatliwy, i nie lakoniczny.

okno
In historical implementations, the default for the okno edit option was based on the
baud rate as follows:

1. If the baud rate was less than 1200, the edit opcja w300 set the window value; for
example, the line:

zestaw w300=12

would set the window option to 12 if the baud rate was less than 1200.

2. If the baud rate was equal to 1200, the edit opcja w1200 set the window value.

3. If the baud rate was greater than 1200, the edit opcja w9600 set the window value.

Połączenia w300, w1200, w9600 options do not appear in POSIX.1‐2008 because of their
dependence on specific baud rates.

In historical implementations, the size of the window displayed by various commands was
related to, but not necessarily the same as, the okno edit option. For example, the size
of the window was set by the ex komenda wizualny 10, but it did not change the value of the
okno edit option. However, changing the value of the okno edit option did change the
number of lines that were displayed when the screen was repainted. POSIX.1‐2008 does not
permit this behavior in the interests of consistency and simplicity of specification, and
requires that all commands that change the number of lines that are displayed do it by
ustawienie wartości okno opcję edycji.

margines zawijania, wm
Historycznie margines zawijania option did not affect maps inserting characters that also had
powiązany liczyćs; for example :mapa K 5aABC DEF. Unfortunately, there are widely used
maps that depend on this behavior. For consistency and simplicity of specification,
POSIX.1-2008 nie pozwala na takie zachowanie.

Historycznie margines zawijania was calculated using the column display width of all characters
on the screen. For example, an implementation using „^ja” to represent <tab> characters
kiedy podstęp edit option was set, where '^' i 'I' each took up a single column on the
screen, would calculate the margines zawijania based on a value of 2 for each <tab>. The numer
edit option similarly changed the effective length of the line as well. POSIX.1‐2008
wymaga zgodności z praktyką historyczną.

Wcześniejsze wersje tego standardu pozwalały na implementacje z bajtami innymi niż osiem
bitów, ale zostało to zmodyfikowane w tej wersji.

PRZYSZŁOŚĆ KIERUNKI


Brak.

Use exposix online using onworks.net services


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    Phaser
    Phaser
    Phaser to szybka, darmowa i zabawna gra otwarta
    źródłowa struktura gry HTML5, która oferuje
    Renderowanie WebGL i Canvas w poprzek
    przeglądarek internetowych na komputery i urządzenia mobilne. Gry
    może być współ...
    Pobierz Phaser
  • 2
    Silnik WASAL
    Silnik WASAL
    VASSAL to silnik gry do tworzenia
    elektroniczne wersje tradycyjnej tablicy
    i gry karciane. Zapewnia wsparcie dla
    renderowanie elementów gry i interakcja,
    i ...
    Pobierz silnik VASSAL
  • 3
    OpenPDF — rozwidlenie iText
    OpenPDF — rozwidlenie iText
    OpenPDF to biblioteka Java do tworzenia
    i edycji plików PDF z LGPL i
    Licencja open source MPL. OpenPDF to
    LGPL/MPL open source następca iText,
    w ...
    Pobierz OpenPDF — rozwidlenie iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - System do Automatyzacji
    Analizy geologiczne - to geografia
    Oprogramowanie systemu informacyjnego (GIS) z
    ogromne możliwości geodanych
    przetwarzanie i an...
    Pobierz SAGA GIS
  • 5
    Przybornik dla Java/JTOOpen
    Przybornik dla Java/JTOOpen
    IBM Toolbox for Java / JTOpen to
    biblioteka klas Java obsługująca
    klient/serwer i programowanie internetowe
    modeli do systemu z systemem OS/400,
    i5/OS, lub...
    Pobierz Zestaw narzędzi dla języka Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (lub D3 dla dokumentów opartych na danych)
    to biblioteka JavaScript, która pozwala
    do tworzenia dynamicznych, interaktywnych danych
    wizualizacje w przeglądarkach internetowych. Z D3
    ty...
    Pobierz plik D3.js
  • więcej »

Komendy systemu Linux

Ad