InggrisPerancisSpanyol

Ad


favorit OnWorks

exposix - Online di Cloud

Jalankan exposix di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah exposix yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


ex — editor teks

RINGKASAN


ex [rR] [s|−v] [c Command] [t tagstring] [w ukuran] [fillet...]

DESKRIPSI


Grafik ex utilitas adalah editor teks berorientasi baris. Ada dua mode editor lainnya—
terbuka dan visual—di mana pengeditan berorientasi layar tersedia. Ini dijelaskan lebih lanjut
sepenuhnya oleh ex Buka dan visual perintah dan dalam vi.

Jika sebuah operan adalah '−', hasilnya tidak ditentukan.

Bagian ini menggunakan istilah mengedit penyangga untuk menggambarkan teks kerja saat ini. Tidak spesifik
implementasi tersirat oleh istilah ini. Semua perubahan pengeditan dilakukan pada pengeditan
buffer, dan tidak ada perubahan yang akan memengaruhi file apa pun sampai perintah editor menulis
file.

Terminal tertentu tidak memiliki semua kemampuan yang diperlukan untuk mendukung yang lengkap ex
definisi, seperti perintah pengeditan layar penuh (visual mode or Buka mode). Kapan
perintah ini tidak dapat didukung pada terminal tersebut, kondisi ini tidak akan menghasilkan
pesan kesalahan seperti ``bukan perintah editor'' atau laporkan kesalahan sintaks. NS
implementasi dapat menerima perintah dan menghasilkan hasil pada layar yang
hasil dari upaya yang gagal untuk memenuhi persyaratan volume ini
POSIX.1-2008 atau laporkan kesalahan yang menjelaskan kekurangan terkait terminal.

PILIHAN


Grafik ex utilitas harus sesuai dengan volume Definisi Dasar POSIX.1-2008, Bagian 12.2,
Kegunaan Sintaksis Panduan, kecuali untuk penggunaan yang tidak ditentukan dari '−', dan itu '+' mungkin
diakui sebagai pembatas opsi serta '−'.

Opsi berikut harus didukung:

c Command
Tentukan perintah awal yang akan dieksekusi di buffer edit pertama yang dimuat dari
file yang ada (lihat bagian DESKRIPSI DIPERPANJANG). Implementasi mungkin
mendukung lebih dari satu c pilihan. Dalam implementasi seperti itu, yang ditentukan
perintah harus dijalankan dalam urutan yang ditentukan pada baris perintah.

r Pulihkan file bernama (lihat bagian DESKRIPSI DIPERPANJANG). Pemulihan
informasi untuk file harus disimpan selama editor atau sistem crash (untuk
misalnya, ketika editor dihentikan oleh sinyal yang dapat ditangkap oleh editor),
atau setelah penggunaan ex memelihara perintah.

A tabrakan dalam konteks ini adalah kegagalan tak terduga dari sistem atau utilitas yang
membutuhkan restart sistem atau utilitas yang gagal. Kerusakan sistem menyiratkan bahwa
utilitas apa pun yang berjalan pada saat itu juga macet. Dalam hal editor atau sistem
crash, jumlah perubahan buffer edit (sejak yang terbaru memelihara
perintah) yang akan dipulihkan tidak ditentukan.

Jika tidak fillet operan diberikan dan t opsi tidak ditentukan, semua lainnya
pilihan, KELUAR variabel, dan sembarang .exrc file harus diabaikan; Daftar
semua file yang dapat dipulihkan yang tersedia untuk pengguna yang meminta harus ditulis, dan:
editor akan keluar secara normal tanpa tindakan lebih lanjut.

R set dibaca saja opsi edit.

s Mempersiapkan ex untuk penggunaan batch dengan mengambil tindakan berikut:

* Menekan petunjuk penulisan dan pesan informasi (tetapi bukan diagnostik).

* Abaikan nilai JANGKA dan semua jenis terminal default implementasi dan
menganggap terminal adalah tipe yang tidak mampu mendukung mode terbuka atau visual;
lihat visual perintah dan deskripsi vi.

* Menekan penggunaan KELUAR variabel lingkungan dan pembacaan setiap
.exrc mengajukan; lihat bagian DESKRIPSI TAMBAHAN.

* Menekan autoindentation, mengabaikan nilai indentasi otomatis opsi edit.

t tagstring
Edit file yang berisi yang ditentukan tagstring; Lihat ctag. Fitur tag
dipersembahkan oleh t tagstring dan label perintah adalah opsional. Ini akan menjadi
disediakan pada sistem apa pun yang juga menyediakan implementasi yang sesuai dari ctag;
jika tidak, penggunaan t menghasilkan hasil yang tidak terdefinisi. Pada sistem apa pun, itu akan menjadi
kesalahan untuk menentukan lebih dari satu t .

v Mulailah dalam mode visual (lihat vi).

w ukuran Tentukan nilai jendela opsi editor untuk ukuran.

OPERA


Operand berikut harus didukung:

fillet Nama path dari file yang akan diedit.

STDIN


Input standar terdiri dari serangkaian perintah dan teks input, seperti yang dijelaskan dalam
bagian DESKRIPSI DIPERPANJANG. Implementasi dapat membatasi setiap baris input standar untuk
panjang {LINE_MAX}.

Jika input standar bukan perangkat terminal, itu harus seolah-olah: s pilihan telah
ditentukan.

Jika pembacaan dari input standar menghasilkan kesalahan, atau jika editor mendeteksi end-of-
kondisi file dari input standar, itu harus setara dengan asinkron SIGHUP
peristiwa.

INPUT FILE


File input adalah file teks atau file yang akan menjadi file teks kecuali yang tidak lengkap
baris terakhir yang tidak lebih panjang dari {LINE_MAX}−1 byte dan tidak mengandung NUL
karakter. Secara default, setiap baris terakhir yang tidak lengkap akan diperlakukan seolah-olah memiliki trailing
. Pengeditan bentuk file lain dapat secara opsional diizinkan oleh: ex
implementasi.

Grafik .exrc file dan file sumber adalah file teks yang terdiri dari: ex perintah; lihat
bagian DESKRIPSI DIPERPANJANG.

Secara default, editor akan membaca baris dari file yang akan diedit tanpa menafsirkan
salah satu dari baris tersebut sebagai segala bentuk perintah editor.

LINGKUNGAN VARIABEL


Variabel lingkungan berikut akan mempengaruhi pelaksanaan ex:

KOLOM Ganti ukuran layar horizontal yang dipilih sistem. Lihat Definisi Dasar
volume POSIX.1-2008, Bab 8, Lingkungan Hidup Variabel untuk nilai yang valid dan
hasil ketika tidak disetel atau nol.

KELUAR Tentukan daftar ex perintah yang dijalankan pada editor start-up. Lihat
Bagian DESKRIPSI DIPERPANJANG untuk rincian lebih lanjut dari fase inisialisasi.

HOME Tentukan nama path direktori yang akan dicari untuk memulai editor
atas file bernama .exrc; lihat bagian DESKRIPSI TAMBAHAN.

BAHASA Berikan nilai default untuk variabel internasionalisasi yang tidak disetel atau
batal. (Lihat volume Definisi Dasar dari POSIX.1-2008, Bagian 8.2,
Internasionalisasi Variabel untuk didahulukan internasionalisasi
variabel yang digunakan untuk menentukan nilai kategori lokal.)

LC_SEMUA Jika disetel ke nilai string yang tidak kosong, timpa nilai dari yang lainnya
variabel internasionalisasi.

LC_COLLATE
Tentukan lokal untuk perilaku rentang, kelas kesetaraan, dan multi-
elemen pengumpulan karakter dalam ekspresi reguler.

LC_CTYPE Tentukan lokal untuk interpretasi urutan byte data teks
sebagai karakter (misalnya, byte tunggal sebagai lawan dari karakter multi-byte dalam
argumen dan file input), perilaku kelas karakter dalam reguler
ekspresi, klasifikasi karakter sebagai huruf besar atau kecil,
kasus konversi huruf, dan deteksi batas kata.

LC_MESSAGES
Tentukan lokal yang harus digunakan untuk mempengaruhi format dan isi dari
pesan diagnostik yang ditulis ke kesalahan standar.

LINES Ganti ukuran layar vertikal yang dipilih sistem, digunakan sebagai jumlah garis
dalam screenful dan ukuran layar vertikal dalam mode visual. Lihat Basis
Definisi volume POSIX.1-2008, Bab 8, Lingkungan Hidup Variabel untuk valid
nilai dan hasil ketika tidak disetel atau nol.

NLSPATH Tentukan lokasi katalog pesan untuk pemrosesan LC_MESSAGES.

PATH Tentukan jalur pencarian untuk perintah shell yang ditentukan dalam ex editor
perintah !, tempurung, Baca baca, dan menulis, dan perintah mode terbuka dan visual !; Lihat
deskripsi pencarian dan eksekusi perintah di Bagian 2.9.1.1, perintah
Pencarian dan Execution.

SHELL Tentukan penerjemah baris perintah yang disukai untuk digunakan sebagai nilai default dari
itu tempurung opsi edit.

JANGKA Tentukan nama jenis terminal. Jika variabel ini tidak disetel atau nol, an
jenis terminal default yang tidak ditentukan harus digunakan.

tidak sinkron EVENT


Istilah berikut digunakan di bagian ini dan berikut untuk menentukan perintah dan
tindakan acara asinkron:

lengkap menulis
Penulisan lengkap adalah penulisan seluruh konten buffer edit ke file
dari jenis selain perangkat terminal, atau penghematan buffer edit yang disebabkan
oleh pengguna yang menjalankan ex memelihara memerintah. Menulis isi edit
buffer ke file sementara yang akan dihapus ketika editor keluar tidak boleh
dianggap sebagai tulisan yang lengkap.

Tindakan berikut harus diambil setelah menerima sinyal:

SIGINT Jika input standar bukan perangkat terminal, ex tidak akan menulis file atau
kembali ke mode perintah atau input teks, dan akan keluar dengan jalan keluar bukan nol
status.

Jika tidak, jika menjalankan perintah mode input teks terbuka atau visual, ex dalam tanda terima
dari SIGINT akan berperilaku identik dengan penerimaannya atas karakter.

Jika tidak:

1. Jika menjalankan ex perintah mode input teks, semua baris input yang telah
benar-benar dimasukkan akan diselesaikan ke dalam buffer edit, dan setiap sebagian
baris yang dimasukkan harus dibuang.

2. Jika ada perintah yang sedang dieksekusi, itu akan dibatalkan dan sebuah pesan
ditampilkan. Kecuali ditentukan lain oleh ex or vi deskripsi perintah,
tidak ditentukan apakah ada baris yang dimodifikasi oleh perintah pelaksana yang muncul
dimodifikasi, atau seperti sebelum dimodifikasi oleh perintah pelaksana, di
penyangga.

Jika perintah yang dijalankan saat ini adalah perintah gerakan, itu terkait
perintah harus dibuang.

3. Jika dalam mode perintah terbuka atau visual, terminal harus disiagakan.

4. Editor kemudian akan kembali ke mode perintah.

SIGCONT Layar akan disegarkan jika dalam mode terbuka atau visual.

SIGHUP Jika buffer edit telah dimodifikasi sejak penulisan lengkap terakhir, ex akan
coba simpan buffer edit sehingga dapat dipulihkan nanti menggunakan r
pilihan atau ex memulihkan memerintah. Editor tidak boleh menulis file atau mengembalikannya
ke mode perintah atau input teks, dan akan diakhiri dengan status keluar bukan nol.

SIGTERM Lihat SIGHUP.

Tindakan yang diambil untuk semua sinyal lainnya tidak ditentukan.

STDOUT


Keluaran standar harus digunakan hanya untuk menulis petunjuk kepada pengguna, untuk informasi
pesan, dan untuk menulis baris dari file.

STDERR


Kesalahan standar harus digunakan hanya untuk pesan diagnostik.

KELUARAN FILE


Keluaran dari ex akan menjadi file teks.

DITERIMA DESKRIPSI


Hanya ex mode editor dijelaskan di bagian ini. Lihat vi untuk pengeditan tambahan
kemampuan yang tersedia di ex.

Ketika terjadi kesalahan, ex akan menulis pesan. Jika terminal mendukung mode menonjol
(seperti video terbalik), pesan harus ditulis dalam mode menonjol. Jika terminal
tidak mendukung mode menonjol, dan opsi edit lonceng kesalahan diatur, tindakan peringatan
akan mendahului pesan kesalahan.

Secara default, ex akan dimulai dalam mode perintah, yang akan ditunjukkan oleh a : mengingatkan; Lihat
itu cepat memerintah. Mode input teks dapat dimasukkan oleh menambahkan, menyisipkan, atau perubahan
perintah; itu dapat keluar (dan mode perintah masuk kembali) dengan mengetik a ('.') sendiri
di awal baris.

Inisialisasi in ex dan vi
Simbol berikut digunakan di bagian ini dan berikut untuk menentukan lokasi di:
edit penyangga:

bergantian dan arus nama jalur
Dua nama path, bernama arus dan bergantian, dikelola oleh editor. Setiap ex
perintah yang menggunakan nama file sebagai argumen akan mengaturnya sebagai berikut:

1. Jika a fillet argumen ditentukan untuk ex mengedit, ex, atau memulihkan perintah, atau jika
an ex label perintah menggantikan isi buffer edit.

A. Jika perintah menggantikan isi buffer edit, arus
pathname harus disetel ke fillet argumen atau file yang ditunjukkan oleh tag,
dan nama jalur alternatif harus disetel ke nilai arus sebelumnya
nama jalur.

B. Jika tidak, nama jalur alternatif harus disetel ke fillet argumen.

2. Jika a fillet argumen ditentukan untuk ex berikutnya perintah:

A. Jika perintah menggantikan isi buffer edit, arus
pathname harus disetel ke yang pertama fillet argumen, dan nama jalur alternatif
harus disetel ke nilai sebelumnya dari nama jalur saat ini.

3. Jika a fillet argumen ditentukan untuk ex fillet perintah, nama path saat ini
akan diatur ke fillet argumen, dan nama jalur alternatif harus disetel ke
nilai sebelumnya dari nama path saat ini.

4. Jika a fillet argumen ditentukan untuk ex Baca baca dan menulis perintah (yaitu, ketika
membaca atau menulis file, dan bukan ke program yang dinamai oleh tempurung mengedit
pilihan), atau fillet argumen ditentukan untuk ex eluar perintah:

A. Jika nama jalur saat ini tidak memiliki nilai, nama jalur saat ini harus disetel ke
itu fillet argumen.

B. Jika tidak, nama jalur alternatif harus disetel ke fillet argumen.

Jika nama jalur alternatif diatur ke nilai sebelumnya dari nama jalur saat ini ketika
nama jalur saat ini tidak memiliki nilai sebelumnya, maka nama jalur alternatif harus memiliki
tidak ada nilai sebagai hasilnya.

arus line
Baris buffer edit direferensikan oleh kursor. Setiap deskripsi perintah
menentukan baris saat ini setelah perintah dieksekusi, sebagai arus line
nilai. Ketika buffer edit tidak berisi baris, baris saat ini harus nol; Lihat
Pengalamatan in ex.

arus kolom
Kolom baris tampilan saat ini ditempati oleh kursor. (Kolom harus
bernomor mulai dari 1.) Setiap deskripsi perintah menentukan kolom saat ini
setelah perintah dieksekusi, sebagai arus kolom nilai. Kolom ini merupakan
ideal kolom yang diingat selama masa hidup editor. Tampilan sebenarnya
kolom baris tempat kursor berada mungkin berbeda dari kolom saat ini;
lihat diskusi posisi kursor di perintah Deskripsi in vi.

set untuk non-
Deskripsi untuk nilai kolom saat ini, artinya kolom saat ini harus
atur ke kolom baris tampilan terakhir yang menampilkan bagian mana pun dari yang pertama
non- dari garis. Jika garis tidak memiliki non- non- karakter,
kolom saat ini harus disetel ke kolom baris tampilan terakhir yang
menampilkan bagian mana pun dari non- karakter dalam baris. Jika garisnya adalah
kosong, kolom saat ini harus disetel ke posisi kolom 1.

Panjang baris dalam buffer edit mungkin dibatasi hingga {LINE_MAX} byte. Di tempat terbuka dan
mode visual, panjang garis dalam buffer edit mungkin terbatas pada jumlah
karakter yang sesuai dengan tampilan. Jika salah satu batas terlampaui selama pengeditan, dan
pesan kesalahan harus ditulis. Jika salah satu batas dilampaui oleh baris yang dibaca dari file,
pesan kesalahan akan ditulis dan sesi edit dapat dihentikan.

Jika editor berhenti berjalan karena alasan apa pun selain perintah pengguna, dan edit
buffer telah dimodifikasi sejak penulisan lengkap terakhir, itu akan setara dengan SIGHUP
peristiwa asinkron. Jika sistem macet, itu akan setara dengan asinkron SIGHUP
peristiwa.

Selama inisialisasi (sebelum file pertama disalin ke buffer edit atau pengguna mana pun
perintah dari terminal diproses) berikut ini akan terjadi:

1. Jika variabel lingkungan KELUAR diatur, editor akan menjalankan ex perintah
terkandung dalam variabel itu.

2. Jika KELUAR variabel tidak disetel, dan semua hal berikut ini benar:

Sebuah. Itu HOME variabel lingkungan tidak nol dan tidak kosong.

B. Berkas .exrc dalam direktori yang dirujuk oleh HOME variabel lingkungan:

Saya. Ada

ii. Dimiliki oleh ID pengguna yang sama dengan ID pengguna sebenarnya dari proses atau
proses memiliki hak istimewa yang sesuai

aku aku aku. Tidak dapat ditulis oleh siapa pun selain pemiliknya

editor akan mengeksekusi ex perintah yang terdapat dalam file tersebut.

3. Jika dan hanya jika semua hal berikut ini benar:

A. Direktori saat ini tidak dirujuk oleh HOME variabel lingkungan.

B. Sebuah perintah di KELUAR variabel lingkungan atau perintah di .exrc file di
direktori yang dirujuk oleh HOME variabel lingkungan menetapkan opsi editor
kecuali.

c .exrc file di direktori saat ini:

Saya. Ada

ii. Dimiliki oleh ID pengguna yang sama dengan ID pengguna sebenarnya dari proses, atau oleh salah satu dari
satu set ID pengguna yang ditentukan implementasi

aku aku aku. Tidak dapat ditulis oleh siapa pun selain pemiliknya

editor akan mencoba untuk mengeksekusi ex perintah yang terdapat dalam file tersebut.

Garis di mana saja .exrc file yang baris kosong harus diabaikan. Jika ada .exrc file ada,
tetapi tidak dibaca karena alasan kepemilikan atau izin, itu akan menjadi kesalahan.

Setelah KELUAR variabel dan apa saja .exrc file diproses, file pertama ditentukan oleh
pengguna harus diedit, sebagai berikut:

1. Jika pengguna menentukan t opsi, efeknya akan menjadi seolah-olah ex label perintah adalah
dimasukkan dengan argumen yang ditentukan, dengan pengecualian jika pemrosesan tag tidak
tidak menghasilkan file untuk diedit, efeknya akan seperti yang dijelaskan pada langkah 3. di bawah ini.

2. Jika tidak, jika pengguna menentukan baris perintah apa pun fillet argumen, efeknya adalah
seolah-olah ex mengedit perintah dimasukkan dengan argumen pertama sebagai fillet
argumen.

3. Jika tidak, efeknya akan menjadi seolah-olah ex mengedit perintah dimasukkan dengan a
nama file tidak ada sebagai nya fillet argumen. Tidak ditentukan apakah tindakan ini akan
atur nama jalur saat ini. Dalam implementasi di mana tindakan ini tidak mengatur
nama jalur saat ini, perintah editor apa pun yang menggunakan nama jalur saat ini akan gagal hingga
perintah editor menetapkan nama path saat ini.

Jika r opsi ditentukan, pertama kali file dalam daftar argumen awal atau a
file yang ditentukan oleh t opsi diedit, jika informasi pemulihan sebelumnya telah
disimpan tentang itu, informasi itu akan dipulihkan dan editor akan berperilaku seolah-olah
isi buffer edit telah dimodifikasi. Jika ada beberapa contoh dari
file yang akan dipulihkan, yang terakhir disimpan akan dipulihkan, dan
pesan informasi bahwa ada versi file sebelumnya yang dapat dipulihkan
akan ditulis. Jika tidak ada informasi pemulihan tentang file yang tersedia, informasi
pesan untuk efek ini harus ditulis, dan pengeditan akan dilanjutkan seperti biasa.

Jika c opsi ditentukan, pertama kali file yang sudah ada (termasuk a
file yang mungkin tidak ada tetapi yang informasi pemulihannya tersedia, ketika: r
opsi ditentukan) mengganti atau menginisialisasi konten buffer edit, arus
baris harus disetel ke baris terakhir buffer edit, kolom saat ini harus disetel ke
non- , dan ex perintah yang ditentukan dengan c opsi harus dieksekusi. Di dalam
kasus, baris saat ini dan kolom saat ini tidak akan diatur seperti yang dijelaskan untuk perintah
terkait dengan penggantian atau inisialisasi konten buffer edit. Namun, jika
itu t pilihan atau label perintah dikaitkan dengan tindakan ini, the c perintah pilihan
akan dieksekusi dan kemudian gerakan ke tag harus dilakukan.

Daftar argumen saat ini awalnya akan disetel ke nama file yang ditentukan oleh pengguna di
baris perintah. Jika tidak ada nama file yang ditentukan oleh pengguna, daftar argumen saat ini
akan kosong. jika t opsi telah ditentukan, tidak ditentukan apakah ada nama file
yang dihasilkan dari pemrosesan tag harus ditambahkan ke daftar argumen saat ini. Dalam kasus ini
di mana nama file ditambahkan sebagai awalan ke daftar argumen saat ini, argumen saat ini
daftar referensi harus diatur ke nama file itu. Dalam kasus di mana nama file tidak ditambahkan
sebagai awalan ke daftar argumen saat ini, referensi daftar argumen saat ini harus
secara logis ditempatkan sebelum yang pertama dari nama file yang ditentukan pada baris perintah (untuk
contoh, selanjutnya ex berikutnya perintah akan mengedit nama file pertama dari perintah
garis). jika t opsi tidak ditentukan, referensi daftar argumen saat ini adalah untuk
yang pertama dari nama file pada baris perintah.

Pengalamatan in ex
Alamat di ex berhubungan dengan baris saat ini dan kolom saat ini; alamat jalur
adalah nomor baris berbasis 1, alamat kolom adalah hitungan berbasis 1 dari
awal baris. Umumnya, baris saat ini adalah baris terakhir yang dipengaruhi oleh perintah.
Nomor baris saat ini adalah alamat saluran saat ini. Dalam setiap deskripsi perintah,
efek dari perintah pada nomor baris saat ini dan kolom saat ini dijelaskan.

Alamat dibangun sebagai berikut:

1. Karakter '.' (titik) akan membahas saluran saat ini.

2. Karakter '$' akan membahas baris terakhir buffer edit.

3. Bilangan desimal positif n akan membahas nbaris ke-th dari buffer edit.

4. Alamat "'x" mengacu pada garis yang ditandai dengan karakter nama tanda 'x', yang
akan menjadi huruf kecil dari set karakter portabel, karakter backquote,
atau karakter tanda kutip tunggal. Ini akan menjadi kesalahan jika garis yang ditandai tidak
saat ini ada di buffer edit atau tanda belum ditetapkan. Garis dapat ditandai
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. ex tanda or k perintah, atau vi m perintah.

5. Ekspresi reguler yang diapit oleh karakter ('/') akan membahas baris pertama
ditemukan dengan mencari ke depan dari garis mengikuti garis saat ini menuju akhir
edit buffer dan berhenti di baris pertama di mana baris tidak termasuk
mengakhiri cocok dengan ekspresi reguler. Seperti yang dinyatakan dalam Reguler Ekspresi
in ex, alamat yang terdiri dari ekspresi reguler nol yang dibatasi oleh
karakter ("//") akan membahas baris berikutnya di mana baris tidak termasuk
mengakhiri cocok dengan ekspresi reguler terakhir yang ditemui. Tambahan,
kedua dapat dihilangkan di akhir baris perintah. jika bungkus scan mengedit
opsi diatur, pencarian akan membungkus ke awal buffer edit dan
lanjutkan hingga dan termasuk baris saat ini, sehingga seluruh buffer edit adalah
dicari. Dalam ekspresi reguler, urutannya "\/" akan mewakili literal
alih-alih pembatas ekspresi reguler.

6. Ekspresi reguler terlampir di karakter ('?') akan membahas
baris pertama ditemukan dengan mencari mundur dari baris sebelum baris saat ini
menuju awal buffer edit dan berhenti di baris pertama yang
baris tidak termasuk penghentian cocok dengan ekspresi reguler. Sebuah alamat
terdiri dari ekspresi reguler nol yang dibatasi oleh karakter ("??")
akan membahas baris sebelumnya di mana baris tidak termasuk penghentian
cocok dengan ekspresi reguler terakhir yang ditemui. Selain itu, kedua
mark> dapat dihilangkan di akhir baris perintah. jika bungkus scan opsi edit diatur,
pencarian akan membungkus dari awal buffer edit hingga akhir
edit buffer dan lanjutkan hingga dan termasuk baris saat ini, sehingga seluruh edit
buffer dicari. Dalam ekspresi reguler, urutannya "\?" akan mewakili
harfiah bukan pembatas RE.

7. A ('+') atau tanda minus ('−') diikuti dengan angka desimal akan menunjukkan
baris saat ini plus atau minus nomor. A '+' or '−' tidak diikuti oleh desimal
nomor akan membahas baris saat ini plus atau minus 1.

Alamat dapat diikuti oleh nol atau lebih offset alamat, secara opsional -terpisah.
Alamat offset dibangun sebagai berikut:

1. Itu '+' or '−' segera diikuti oleh angka desimal harus menambah (mengurangi)
menunjukkan jumlah baris ke (dari) alamat. A '+' or '−' tidak diikuti oleh
angka desimal harus menambah (mengurangi) 1 ke (dari) alamat.

2. Angka desimal akan menambahkan jumlah baris yang ditunjukkan ke alamat.

Ini tidak akan menjadi kesalahan untuk nilai alamat perantara menjadi kurang dari nol atau lebih besar
dari baris terakhir di buffer edit. Ini akan menjadi kesalahan untuk nilai alamat akhir untuk
kurang dari nol atau lebih besar dari baris terakhir dalam buffer edit.

Perintah mengambil nol, satu, atau dua alamat; lihat deskripsi 1tambahan dan 2tambahan in
perintah Deskripsi in ex. Jika lebih dari jumlah alamat yang diperlukan disediakan untuk
perintah yang membutuhkan alamat nol, itu akan menjadi kesalahan. Jika tidak, jika lebih dari
jumlah alamat yang diperlukan disediakan untuk sebuah perintah, alamat yang ditentukan terlebih dahulu
akan dievaluasi dan kemudian dibuang sampai jumlah maksimum alamat yang valid tetap ada.

Alamat harus dipisahkan satu sama lain oleh a (',') atau (';').
Jika tidak ada alamat yang ditentukan sebelum atau sesudah a atau pemisah, itu akan menjadi
seolah-olah alamat saluran saat ini ditentukan sebelum atau sesudah pemisah. Dalam
kasus pemisah, garis saat ini ('.') harus disetel ke yang pertama
alamat, dan hanya dengan demikian alamat berikutnya akan dihitung. Fitur ini dapat digunakan untuk
tentukan garis awal untuk pencarian maju dan mundur (lihat aturan 5. dan 6.).

A ('%') harus sama dengan memasukkan dua alamat "1,$".

Pembatas apapun karakter antara alamat, pemisah alamat, atau alamat
offset harus dibuang.

perintah baris Penguraian in ex
Simbol berikut digunakan di bagian ini dan berikut untuk menjelaskan perilaku penguraian:

melarikan diri Jika sebuah karakter disebut sebagai `` -lolos'' atau `` -V-
lolos'', itu berarti bahwa karakter tersebut memperoleh atau kehilangan arti khusus
berdasarkan didahului, masing-masing, oleh a atau -V
karakter. Kecuali ditentukan lain, karakter melarikan diri harus dibuang
pada saat itu dan tidak akan dipertimbangkan lebih lanjut untuk tujuan apa pun.

Penguraian baris perintah harus dilakukan dalam langkah-langkah berikut. Untuk setiap langkah, karakter
sudah dievaluasi diabaikan; yaitu, frasa ``karakter utama'' mengacu pada
karakter berikutnya yang belum dievaluasi.

1. Memimpin karakter harus dilewati.

2. Terkemuka karakter harus dilewati.

3. Jika karakter utama adalah karakter tanda kutip ganda, karakter hingga dan
termasuk non- -lolos akan dibuang, dan setiap
karakter berikutnya harus diuraikan sebagai perintah terpisah.

4. Karakter utama yang dapat diartikan sebagai alamat harus dievaluasi; Lihat
Pengalamatan in ex.

5. Terkemuka karakter harus dilewati.

6. Jika karakter berikutnya adalah a karakter atau :

A. Jika karakter berikutnya adalah :

Saya. Jika ex dalam mode terbuka atau visual, saluran saat ini harus disetel ke yang terakhir
alamat yang ditentukan, jika ada.

ii. Jika tidak, jika perintah terakhir diakhiri oleh a karakter,
tidak ada tindakan yang akan diambil; misalnya perintah "|| " akan
jalankan dua perintah tersirat, bukan tiga.

aku aku aku. Jika tidak, langkah 6.b. akan berlaku.

B. Jika tidak, perintah tersirat akan menjadi mencetak memerintah. Yang terakhir #, p, dan l
bendera yang ditentukan untuk setiap ex perintah harus diingat dan akan berlaku untuk ini
perintah tersirat. Mengeksekusi ex jumlah, mencetak, atau daftar perintah akan mengatur
bendera yang diingat untuk #, tidak ada, dan l, masing-masing, ditambah bendera lainnya
ditentukan untuk eksekusi itu jumlah, mencetak, atau daftar perintah.

If ex saat ini tidak melakukan global or v perintah, dan tidak ada alamat atau hitungan
ditentukan, baris saat ini akan bertambah 1 sebelum perintahnya
dieksekusi. Jika menambah baris saat ini akan menghasilkan alamat yang melewati
baris terakhir di buffer edit, perintah akan gagal, dan kenaikan tidak akan
terjadi.

C. NS atau karakter harus dibuang dan selanjutnya
karakter harus diuraikan sebagai perintah terpisah.

7. Nama perintah harus terdiri dari karakter berikutnya (jika karakter tidak
alfabetis), atau karakter berikutnya dan karakter alfabet berikutnya (jika
karakter adalah abjad), dengan pengecualian berikut:

A. Perintah yang terdiri dari awalan karakter apa pun dalam nama perintah hapus,
segera diikuti oleh salah satu karakter 'l', 'P', '+', '−', atau '#' seharusnya
ditafsirkan sebagai hapus perintah, diikuti oleh a , diikuti oleh karakter
yang bukan bagian dari awalan hapus memerintah. Jumlah maksimum
karakter harus dicocokkan dengan nama perintah hapus; sebagai contoh, "del" akan
tidak diperlakukan sebagai "de" diikuti oleh bendera l.

B. Perintah yang terdiri dari karakter 'k', diikuti oleh karakter yang dapat berupa
digunakan sebagai nama merek, harus sama dengan perintah merek yang diikuti dengan a
, diikuti oleh karakter yang mengikuti 'k'.

C. Perintah yang terdiri dari karakter 'S', diikuti oleh karakter yang mungkin
ditafsirkan sebagai opsi yang valid untuk s perintah, harus setara dengan s
perintah, tanpa pola atau nilai pengganti apa pun, diikuti oleh a ,
diikuti oleh karakter setelah 'S'.

8. Nama perintah harus dicocokkan dengan kemungkinan nama perintah, dan perintah
nama yang berisi awalan yang cocok dengan karakter yang ditentukan oleh pengguna adalah
perintah yang dieksekusi. Dalam kasus perintah di mana karakter ditentukan oleh pengguna
bisa ambigu, perintah yang dieksekusi adalah sebagai berikut:

┌───┬───── teks─ Chonggol uranding "dengan olak -ilangan ilangan ─> ─ ilangan ─ ─ ilangan ans har At padaman
amenambahkan ││.nberikutnya ││.tt
cperubahan ││.pmencetak ││.umerusak
chperubahan ││.prmencetak ││.unmerusak
emengedit ││.rBaca baca ││.vv
mpindah ││.reBaca baca ││.wmenulis
matanda ││.ss ││ │ │.
└───┴───── teks─ Chonggol uranding "dengan olak -ilangan ilangan ─> ─ ilangan ─ ─ ilangan ans har At padaman
Ekstensi implementasi dengan nama yang menyebabkan ambiguitas serupa tidak boleh dicentang
untuk kecocokan sampai semua kemungkinan kecocokan untuk perintah yang ditentukan oleh POSIX.1-2008 memiliki
telah diperiksa.

9. Jika perintahnya adalah ! perintah, atau jika perintahnya adalah a Baca baca perintah diikuti oleh nol
atau lebih karakter dan !, atau jika perintahnya adalah a menulis perintah diikuti oleh
satu atau lebih karakter dan !, sisa perintah harus mencakup semua
karakter hingga non- -lolos . NS seharusnya
dibuang dan setiap karakter berikutnya harus diuraikan sebagai terpisah ex perintah.

10. Jika tidak, jika perintahnya adalah mengedit, ex, atau berikutnya perintah, atau a visual perintah sambil
dalam mode terbuka atau visual, bagian selanjutnya dari perintah harus diuraikan sebagai berikut:

A. Setiap '!' karakter segera mengikuti perintah harus dilewati dan menjadi bagian
dari perintah.

B. Pemimpin apa pun karakter harus dilewati dan menjadi bagian dari perintah.

C. Jika karakter berikutnya adalah '+', karakter hingga non- pertama -lolos
atau non- -lolos akan dilewati dan menjadi bagian dari
perintah.

D. Perintah lainnya harus ditentukan oleh langkah-langkah yang ditentukan dalam paragraf
12.

11. Jika tidak, jika perintahnya adalah a global, Buka, s, atau v perintah, bagian selanjutnya dari
perintah akan diuraikan sebagai berikut:

A. Pemimpin apa pun karakter harus dilewati dan menjadi bagian dari perintah.

B. Jika karakter berikutnya bukan alfanumerik, tanda kutip ganda, ,
, atau karakter:

Saya. Karakter berikutnya akan digunakan sebagai pembatas perintah.

ii. Jika perintahnya adalah global, Buka, atau v perintah, karakter hingga yang pertama
non- -lolos , atau non- -pembatas lolos
karakter, harus dilewati dan menjadi bagian dari perintah.

aku aku aku. Jika perintahnya adalah s perintah, karakter hingga yang pertama
non- -lolos , atau non-kedua -lolos
karakter pembatas, harus dilewati dan menjadi bagian dari perintah.

C. Jika perintahnya adalah global or v perintah, karakter hingga yang pertama
non- -lolos akan dilewati dan menjadi bagian dari perintah.

D. Jika tidak, sisa perintah akan ditentukan oleh langkah-langkah yang ditentukan dalam
paragraf 12.

12. Jika tidak:

A. Jika perintahnya adalah peta, buka peta, menyingkat, atau singkat perintah, karakter
hingga non- -V-lolos , , atau ganda-
karakter kutipan harus dilewati dan menjadi bagian dari perintah.

B. Jika tidak, karakter hingga non- pertama -lolos ,
, atau karakter tanda kutip ganda harus dilewati dan menjadi bagian dari
perintah.

C. Jika perintahnya adalah menambahkan, perubahan, atau menyisipkan perintah, dan langkah 12.b. berakhir
di karakter, karakter berikutnya, hingga berikutnya
non- -lolos akan digunakan sebagai teks input untuk perintah.

D. Jika perintah diakhiri dengan karakter tanda kutip ganda, semua karakter berikutnya,
hingga non- -lolos , harus dibuang.

e. Pengakhiran atau karakter harus dibuang dan setiap
karakter berikutnya harus diuraikan sebagai terpisah ex perintah.

Argumen perintah harus diuraikan seperti yang dijelaskan oleh Sinopsis dan Deskripsi masing-masing
sendiri-sendiri ex memerintah. Penguraian ini tidak boleh -sensitif, kecuali untuk !
argumen, yang harus mengikuti nama perintah tanpa campur tangan karakter, dan
di mana sebaliknya akan menjadi ambigu. Sebagai contoh, menghitung dan bendera argumen tidak perlu
-terpisah karena "d22p" tidak ambigu, tapi fillet argumen untuk ex berikutnya
perintah harus dipisahkan oleh satu atau lebih karakter. Setiap dalam perintah
argumen untuk menyingkat, singkat, peta, dan buka peta perintah bisa -V-
melarikan diri, dalam hal ini tidak boleh digunakan sebagai pembatas argumen. Setiap
dalam argumen perintah untuk perintah lain dapat menjadi -lolos, dalam hal ini
itu tidak boleh digunakan sebagai pembatas argumen.

Dalam argumen perintah untuk menyingkat, singkat, peta, dan buka peta perintah, apa saja
karakter bisa -V lolos. Semua karakter yang lolos seperti itu harus diperlakukan
secara harfiah dan tidak memiliki arti khusus. Dalam argumen perintah untuk semua lainnya ex
perintah yang bukan ekspresi reguler atau string pengganti, karakter apa pun yang akan
jika tidak memiliki arti khusus dapat -kabur. Karakter yang lolos adalah
diperlakukan secara harfiah, tanpa arti khusus sebagai karakter ekspansi shell atau '!', '%', dan
'#' karakter ekspansi. Lihat Reguler Ekspresi in ex dan Penggantian String in ex untuk
deskripsi argumen perintah yang merupakan ekspresi reguler atau string pengganti.

Non- -lolos '%' karakter yang muncul di fillet argumen untuk setiap ex perintah harus
diganti dengan nama path saat ini; tidak lolos '#' karakter akan diganti dengan
nama jalur alternatif. Ini akan menjadi kesalahan jika '%' or '#' karakter muncul tanpa pelarian dalam
argumen dan nilai terkaitnya tidak disetel.

Non- -lolos '!' karakter dalam argumen ke salah satu dari ex ! perintah atau
mode terbuka dan visual ! perintah, atau dalam argumen ke ex Baca baca perintah, dimana
pertama non- setelah nama perintah adalah a '!' karakter, atau dalam argumen ke
ex menulis perintah di mana nama perintah diikuti oleh satu atau lebih karakter dan
non- pertama setelah nama perintah adalah a '!' karakter, harus diganti dengan
argumen untuk yang terakhir dari ketiga perintah itu ketika mereka muncul setelah semua tidak lolos
'%', '#', dan '!' karakter diganti. Ini akan menjadi kesalahan jika '!' karakter
muncul tanpa meloloskan diri di salah satu perintah ini dan belum ada eksekusi sebelumnya
dari perintah-perintah ini.

Jika terjadi kesalahan selama penguraian atau eksekusi suatu ex perintah:

* Sebuah pesan informasi untuk efek ini harus ditulis. Eksekusi dari ex Command
akan berhenti, dan kursor (misalnya, baris dan kolom saat ini) tidak boleh
dimodifikasi lebih lanjut.

* Jika ex perintah dihasilkan dari perluasan peta, semua karakter dari peta itu
ekspansi harus dibuang, kecuali ditentukan lain oleh: peta perintah.

* Jika tidak, jika ex perintah yang dihasilkan dari pemrosesan sebuah KELUAR lingkungan Hidup
variabel, .exrc berkas, sebuah :sumber perintah, a c pilihan, atau +Command ditentukan untuk
ex mengedit, ex, berikutnya, atau visual perintah, tidak ada perintah lebih lanjut dari sumber
perintah harus dijalankan.

* Jika tidak, jika ex perintah yang dihasilkan dari eksekusi buffer atau a global or v
perintah, tidak ada perintah lebih lanjut yang disebabkan oleh eksekusi buffer atau global or v
perintah harus dijalankan.

* Jika tidak, jika ex perintah tidak diakhiri oleh a , semua karakter hingga
dan termasuk non- -lolos akan dibuang.

Memasukkan Mengedit in ex
Simbol berikut digunakan dalam ini dan bagian berikut untuk menentukan perintah
tindakan:

kata Di lokal POSIX, sebuah kata terdiri dari urutan maksimal huruf, angka,
dan garis bawah, kedua ujungnya dibatasi oleh karakter selain huruf,
digit, atau garis bawah, atau pada awal atau akhir baris atau buffer edit.

Saat menerima karakter input dari pengguna, baik di ex mode perintah atau ex input teks
mode, ex harus mengaktifkan pemrosesan input mode kanonik, seperti yang didefinisikan dalam Antarmuka Sistem
volume POSIX.1-2008.

Jika di ex mode masukan teks:

1. Jika jumlah opsi edit diatur, ex akan meminta input menggunakan nomor baris yang
akan ditugaskan ke baris jika dimasukkan, dalam format yang ditentukan untuk ex
jumlah perintah.

2. Jika indentasi otomatis opsi edit diatur, ex akan meminta masukan menggunakan indentasi otomatis
karakter, seperti yang dijelaskan oleh indentasi otomatis opsi edit. indentasi otomatis karakter harus
ikuti nomor baris, jika ada.

Jika di ex modus perintah:

1. Jika cepat opsi edit diatur, input akan diminta untuk menggunakan satu ':'
karakter; jika tidak, tidak akan ada prompt.

Karakter input di bagian berikut akan memiliki efek berikut pada:
baris masukan.

gulir
ringkasan:
eof

Lihat deskripsi sty eof karakter dalam sty.

Jika di ex modus perintah:

Jika eof karakter adalah karakter pertama yang dimasukkan pada baris, baris harus
dievaluasi seolah-olah mengandung dua karakter: a -D dan .

Jika tidak, itu eof karakter tidak memiliki arti khusus.

Jika di ex mode masukan teks:

Jika kursor mengikuti indentasi otomatis karakter, itu indentasi otomatis karakter dalam
baris harus dimodifikasi sehingga bagian dari karakter input teks berikutnya akan menjadi
ditampilkan pada kolom pertama di baris setelah sebelumnya lebar geser opsi edit
batas kolom, dan pengguna akan diminta lagi untuk memasukkan baris yang sama.

Jika tidak, jika kursor mengikuti a '0', yang mengikuti suatu indentasi otomatis karakter, dan
itu '0' adalah karakter input teks sebelumnya, '0' dan semua indentasi otomatis
karakter dalam baris akan dibuang, dan pengguna akan diminta lagi untuk
masukan untuk baris yang sama.

Jika tidak, jika kursor mengikuti a '^', yang mengikuti suatu indentasi otomatis karakter, dan
itu '^' adalah karakter input teks sebelumnya, '^' dan semua indentasi otomatis
karakter dalam baris akan dibuang, dan pengguna akan diminta lagi untuk
masukan untuk baris yang sama. Selain itu, indentasi otomatis level untuk baris input berikutnya
harus diturunkan dari baris yang sama dari mana indentasi otomatis tingkat untuk saat ini
garis input diturunkan.

Jika tidak, jika tidak ada indentasi otomatis atau karakter input teks di baris, eof
karakter harus dibuang.

Jika tidak, itu eof karakter tidak memiliki arti khusus.


ringkasan:

-J

Jika di ex modus perintah:

Menyebabkan baris perintah diurai; -J harus dipetakan ke
untuk tujuan ini.

Jika di ex mode masukan teks:

Hentikan baris saat ini. Jika tidak ada karakter selain indentasi otomatis
karakter pada baris, semua karakter pada baris harus dibuang.

Meminta input teks pada baris baru setelah baris saat ini. jika indentasi otomatis mengedit
pilihan diatur, jumlah yang sesuai dari indentasi otomatis karakter harus ditambahkan sebagai
awalan ke baris seperti yang dijelaskan oleh ex indentasi otomatis opsi edit.


ringkasan:


Izinkan masuknya berikutnya atau -J sebagai karakter literal, menghapus
arti khusus apa pun yang mungkin dimiliki editor selama mode input teks. NS
karakter harus dipertahankan dan dievaluasi ketika baris perintah diuraikan, atau dipertahankan dan
disertakan ketika teks input menjadi bagian dari buffer edit.

-V
ringkasan:
-V

Izinkan masuknya karakter berikutnya sebagai karakter literal, hapus semua karakter khusus
artinya mungkin harus ke editor selama mode input teks. NS -V karakter
harus dibuang sebelum baris perintah diuraikan atau teks input menjadi bagian dari
mengedit penyangga.

Jika fungsionalitas ``literal next'' dilakukan oleh sistem yang mendasarinya, itu adalah
implementasi-didefinisikan apakah karakter selain -V melakukan fungsi ini.

-W
ringkasan:
-W

Buang –W, dan kata sebelumnya di baris input, termasuk any
karakter setelah kata dan sebelum -W. Jika ``kata
fungsi hapus'' dilakukan oleh sistem yang mendasarinya, ini ditentukan oleh implementasi
apakah karakter selain -W melakukan fungsi ini.

perintah Deskripsi in ex
Simbol berikut digunakan di bagian ini untuk mewakili pengubah perintah. Beberapa
pengubah ini dapat dihilangkan, dalam hal ini default yang ditentukan harus digunakan.

1tambahan Alamat baris tunggal, diberikan dalam salah satu bentuk yang dijelaskan dalam Pengalamatan in ex;
defaultnya adalah baris saat ini ('.'), kecuali ditentukan.

Jika alamat saluran adalah nol, itu akan menjadi kesalahan, kecuali ditentukan lain dalam
deskripsi perintah berikut.

Jika buffer edit kosong, dan alamatnya ditentukan dengan perintah other
dari =, menambahkan, menyisipkan, Buka, menempatkan, Baca baca, atau visual, atau alamatnya bukan nol,
itu akan menjadi kesalahan.

2tambahan Dua alamat yang menentukan rentang garis yang inklusif. Jika tidak ada alamat
ditentukan, default untuk 2tambahan akan menjadi garis saat ini saja (".,."), kecuali
ditentukan lain dalam deskripsi perintah berikut. Jika satu alamat adalah
ditentukan, 2tambahan harus menentukan garis itu saja, kecuali ditentukan lain dalam
berikut deskripsi perintah.

Ini akan menjadi kesalahan jika alamat pertama lebih besar dari alamat kedua.

Jika buffer edit kosong, dan kedua alamat ditentukan dengan perintah
selain !, menulis, wq, atau eluar perintah, atau salah satu alamat bukan nol, itu
akan menjadi kesalahan.

menghitung Bilangan desimal positif. Jika menghitung ditentukan, itu harus setara dengan
menentukan alamat tambahan untuk perintah, kecuali ditentukan lain oleh
deskripsi perintah berikut. Alamat tambahan harus sama dengan
alamat terakhir yang ditentukan untuk perintah (baik secara eksplisit atau default) plus
menghitung−1.

Jika ini akan menghasilkan alamat yang lebih besar dari baris terakhir edit
buffer, itu harus dikoreksi agar sama dengan baris terakhir dari buffer edit.

bendera Satu atau lebih karakter '+', '−', '#', 'P', atau 'l' (elo). Bendera
karakter bisa -dipisahkan, dan dalam urutan atau kombinasi apa pun. NS
karakter '#', 'P', dan 'l' akan menyebabkan baris ditulis dalam format
ditentukan oleh mencetak perintah dengan yang ditentukan bendera.

Baris yang akan ditulis adalah sebagai berikut:

1. Semua baris buffer edit yang ditulis selama eksekusi ex &, ~, daftar,
jumlah, Buka, mencetak, s, visual, dan z perintah harus ditulis seperti yang ditentukan
by bendera.

2. Setelah menyelesaikan ex perintah dengan bendera sebagai argumen, the
baris saat ini harus ditulis seperti yang ditentukan oleh bendera, kecuali baris saat ini
adalah baris terakhir yang ditulis oleh perintah.

Karakter '+' dan '−' menyebabkan nilai garis saat ini setelah
eksekusi ex perintah untuk disesuaikan dengan alamat offset seperti yang dijelaskan dalam
Pengalamatan in ex. Penyesuaian ini harus terjadi sebelum saluran saat ini:
ditulis seperti yang dijelaskan pada 2. di atas.

Default untuk bendera tidak akan ada.

penyangga Salah satu dari sejumlah area bernama untuk menyimpan teks. Buffer bernama ditentukan
oleh karakter alfanumerik lokal POSIX. Juga akan ada satu
penyangga ``tanpa nama''. Ketika tidak ada buffer yang ditentukan untuk perintah editor yang menggunakan a
buffer, buffer yang tidak disebutkan namanya akan digunakan. Perintah yang menyimpan teks ke dalam buffer
akan menyimpan teks seperti sebelum perintah mulai berlaku, dan akan menyimpan
teks yang muncul sebelumnya di file sebelum teks muncul kemudian di file,
terlepas dari bagaimana wilayah teks ditentukan. Perintah yang menyimpan teks ke dalam
buffer akan menyimpan teks ke dalam buffer yang tidak disebutkan namanya serta yang ditentukan
penyangga.

In ex perintah, nama buffer ditentukan sebagai nama dengan sendirinya. Di tempat terbuka atau
mode visual memerintahkan nama didahului dengan tanda kutip ganda ('"') karakter.

Jika nama buffer yang ditentukan adalah karakter huruf besar, dan isi buffer
akan dimodifikasi, buffer harus ditambahkan alih-alih menjadi
ditimpa. Jika buffer tidak sedang dimodifikasi, tentukan nama buffer di
huruf kecil dan huruf besar harus memiliki hasil yang sama.

Juga harus ada buffer yang diberi nama dengan angka 1 sampai 9. Secara terbuka dan visual
mode, jika wilayah teks termasuk karakter dari lebih dari satu baris adalah
dimodifikasi oleh vi c or d perintah, karakter gerak yang terkait dengan
itu c or d perintah menentukan bahwa teks buffer harus dalam mode baris, atau
perintah %, `, /, ?, (, ), N, n, {, atau } digunakan untuk mendefinisikan wilayah teks untuk
itu c or d perintah, isi buffer 1 sampai 8 harus dipindahkan ke dalam
buffer dinamai dengan nilai numerik berikutnya yang lebih besar, isi buffer 9
harus dibuang, dan wilayah teks akan disalin ke buffer 1. Ini
selain menyalin teks ke buffer yang ditentukan pengguna atau tanpa nama
penyangga, atau keduanya. Buffer numerik dapat ditentukan sebagai buffer sumber untuk open
dan perintah mode visual; namun, menentukan buffer numerik sebagai penulisan
target dari perintah mode terbuka atau visual harus memiliki hasil yang tidak ditentukan.

Teks setiap buffer harus memiliki karakteristik berada di salah satu baris atau
modus karakter. Menambahkan teks ke buffer yang tidak kosong akan mengatur mode agar sesuai
karakteristik teks yang ditambahkan. Menambahkan teks ke buffer harus
menyebabkan pembuatan setidaknya satu baris tambahan di buffer. Semua teks
disimpan ke dalam buffer oleh ex perintah harus dalam mode baris. NS ex perintah itu
gunakan buffer sebagai sumber teks tentukan secara individual bagaimana buffer berbeda
mode ditangani. Setiap perintah mode terbuka atau visual yang menggunakan buffer untuk semua
tujuan menentukan secara individual mode teks yang disimpan ke dalam buffer dan
bagaimana buffer mode yang berbeda ditangani.

fillet Teks perintah yang digunakan untuk mendapatkan nama path. Defaultnya adalah arus
pathname, seperti yang didefinisikan sebelumnya, dalam hal ini, jika belum ada nama path saat ini
telah ditetapkan itu akan menjadi kesalahan, kecuali jika secara khusus disebutkan dalam
deskripsi perintah individu yang mengikuti. Jika teks perintah berisi apa saja
dari karakter '~', '{', '[', '*', '?', '$', '"', kutip balik, kutip tunggal,
dan , itu akan dikenakan proses ``ekspansi shell'',
seperti yang dijelaskan di bawah ini; jika lebih dari satu nama path menghasilkan dan perintah
mengharapkan hanya satu, itu akan menjadi kesalahan.

Proses ekspansi shell di editor harus dilakukan sebagai berikut. NS ex
utilitas akan meneruskan dua argumen ke program yang diberi nama oleh opsi edit shell;
yang pertama adalah c, dan yang kedua adalah string "gema" dan perintah
teks sebagai argumen tunggal. Output standar dan kesalahan standar itu
perintah akan menggantikan teks perintah.

! Karakter yang dapat ditambahkan ke nama perintah untuk memodifikasi operasinya, seperti
rinci dalam deskripsi perintah individu. Dengan pengecualian ex
Baca baca, menulis, dan ! perintah, '!' karakter hanya akan bertindak sebagai pengubah jika
tidak ada karakter antara itu dan nama perintah.

teringat Cari arah
Grafik vi perintah N dan n mulai mencari ke arah depan atau belakang dalam
buffer edit berdasarkan arah pencarian yang diingat, yang awalnya
tidak disetel, dan disetel oleh ex global, v, s, dan label perintah, dan vi / dan ?
perintah.

Singkatan
ringkasan:
ab[mempersingkat][lhs rhs]

If lhs dan rhs tidak ditentukan, tulis daftar singkatan saat ini dan tidak melakukan apa pun
lebih.

Implementasi dapat membatasi kumpulan karakter yang diterima di lhs or rhs, kecuali itu
karakter yang dapat dicetak dan karakter tidak boleh dibatasi. Tambahan
pembatasan harus ditentukan-implementasi.

Di keduanya lhs dan rhs, karakter apa pun dapat diloloskan dengan a -V, dalam hal ini
karakter tidak boleh digunakan untuk membatasi lhs dari rhs, dan pelarian -V akan menjadi
dibuang.

Dalam mode input teks terbuka dan visual, jika bukan kata atau karakter yang tidak lolos
oleh –V karakter dimasukkan setelah karakter kata, cek harus dilakukan untuk a
set karakter yang cocok lhs, dalam input teks yang dimasukkan selama perintah ini. Jika memang
ditemukan, efeknya akan menjadi seolah-olah rhs dimasukkan sebagai ganti lhs.

Himpunan karakter yang diperiksa didefinisikan sebagai berikut:

1. Jika tidak ada karakter yang disisipkan sebelum kata dan non-kata atau karakter
yang memicu cek, set karakter harus terdiri dari karakter kata.

2. Jika karakter disisipkan sebelum kata dan bukan kata atau karakter itu
memicu cek adalah karakter kata, set karakter harus terdiri dari
karakter yang disisipkan tepat sebelum karakter pemicu yaitu word
karakter, ditambah karakter kata pemicu.

3. Jika karakter disisipkan sebelum kata dan bukan kata atau karakter itu
memicu cek bukan karakter kata, set karakter harus terdiri dari
karakter yang disisipkan sebelum karakter pemicu yang bukan keduanya
karakter atau karakter kata, ditambah karakter kata pemicu.

Tidak ditentukan apakah lhs argumen dimasukkan untuk ex menyingkat dan singkat
perintah diganti dengan cara ini. Terlepas dari apakah penggantian terjadi atau tidak,
efek dari perintah tersebut harus seolah-olah penggantian tidak terjadi.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Menambahkan
ringkasan:
[1tambahan] a[tunda][!]

Enter ex mode masukan teks; teks input harus ditempatkan setelah baris yang ditentukan. Jika garis
nol ditentukan, teks harus ditempatkan di awal buffer edit.

Perintah ini akan dipengaruhi oleh jumlah dan indentasi otomatis mengedit opsi; mengikuti
nama perintah dengan '!' akan menyebabkan indentasi otomatis edit pengaturan opsi yang akan diaktifkan
durasi perintah ini saja.

terbaru line: Atur ke baris input terakhir; jika tidak ada baris yang dimasukkan, setel ke yang ditentukan
baris, atau ke baris pertama buffer edit jika garis nol ditentukan, atau nol jika
buffer edit kosong.

terbaru kolom: Setel ke non- .

kasus
ringkasan:
adalah[gs]

Tulis daftar argumen saat ini, dengan entri daftar argumen saat ini, jika ada, di antara '['
dan ']' karakter.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Perubahan
ringkasan:
[2tambahan] c[Hange][!][menghitung]

Enter ex mode masukan teks; teks input akan menggantikan baris yang ditentukan. yang ditentukan
baris harus disalin ke buffer yang tidak disebutkan namanya, yang akan menjadi buffer mode garis.

Perintah ini akan dipengaruhi oleh jumlah dan indentasi otomatis mengedit opsi; mengikuti
nama perintah dengan '!' akan menyebabkan indentasi otomatis edit pengaturan opsi yang akan diaktifkan
durasi perintah ini saja.

terbaru line: Atur ke baris input terakhir; jika tidak ada baris yang dimasukkan, setel ke baris sebelumnya
alamat pertama, atau ke baris pertama buffer edit jika tidak ada baris sebelumnya
alamat pertama, atau ke nol jika buffer edit kosong.

terbaru kolom: Setel ke non- .

Perubahan Direktori
ringkasan:
chd[ir][!][direktori]
cd[!][direktori]

Ubah direktori kerja saat ini menjadi direktori.

Jika tidak direktori argumen ditentukan, dan HOME variabel lingkungan diatur ke non-
nilai nol dan tidak kosong, direktori akan default ke nilai yang disebutkan dalam HOME
variabel lingkungan. jika HOME variabel lingkungan kosong atau tidak terdefinisi,
nilai default dari direktori adalah implementasi-didefinisikan.

Jika tidak '!' ditambahkan ke nama perintah, dan buffer edit telah dimodifikasi sejak
penulisan lengkap terakhir, dan nama path saat ini tidak dimulai dengan a '/', itu akan menjadi
sebuah kesalahan.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Copy
ringkasan:
[2tambahan] co[py] 1tambahan [bendera]
[2tambahan] t 1tambahan [bendera]

Salin garis yang ditentukan setelah garis tujuan yang ditentukan; baris nol menentukan bahwa
garis harus ditempatkan di awal buffer edit.

terbaru line: Setel ke baris terakhir yang disalin.

terbaru kolom: Setel ke non- .

Delete
ringkasan:
[2tambahan] d[memilih][penyangga][menghitung][bendera]

Hapus baris yang ditentukan ke dalam buffer (default ke buffer yang tidak disebutkan namanya), yang akan
menjadi buffer mode garis.

Bendera dapat segera mengikuti nama perintah; Lihat perintah baris Penguraian in ex.

terbaru line: Atur ke baris yang mengikuti baris yang dihapus, atau ke baris terakhir di edit
buffer jika garis itu melewati akhir buffer edit, atau ke nol jika buffer edit adalah
kosong.

terbaru kolom: Setel ke non- .

Edit
ringkasan:
e[ini][!][+Command][fillet]
ex[!][+Command][fillet]

Jika tidak '!' ditambahkan ke nama perintah, dan buffer edit telah dimodifikasi sejak
penulisan lengkap terakhir, itu akan menjadi kesalahan.

If fillet ditentukan, ganti konten buffer edit saat ini dengan saat ini
Isi dari fillet, dan atur nama jalur saat ini ke fillet. Jika fillet tidak ditentukan, ganti
konten buffer edit saat ini dengan konten file saat ini yang dinamai oleh
nama jalur saat ini. Jika karena alasan apa pun konten file saat ini tidak dapat diakses,
buffer edit harus kosong.

Grafik +Command pilihan harus -dibatasi; karakter di dalam +Command bisa
melarikan diri dengan mendahului mereka dengan karakter. NS +Command seharusnya
ditafsirkan sebagai ex perintah segera setelah isi buffer edit telah
diganti dan baris dan kolom saat ini telah ditetapkan.

Jika buffer edit kosong:

terbaru line: Setel ke 0.

terbaru kolom: Setel ke 1.

Jika tidak, jika dieksekusi saat di ex mode perintah atau jika +Command argumen ditentukan:

terbaru line: Setel ke baris terakhir buffer edit.

terbaru kolom: Setel ke non- .

Kalau tidak, jika fillet dihilangkan atau menghasilkan nama jalur saat ini:

terbaru line: Setel ke baris pertama buffer edit.

terbaru kolom: Setel ke non- .

Kalau tidak, jika fillet sama dengan file yang terakhir diedit, baris dan kolom harus diatur
sebagai berikut; jika file telah diedit sebelumnya, baris dan kolom dapat diatur sebagai berikut:

terbaru line: Setel ke nilai terakhir yang disimpan saat file terakhir diedit. Jika nilai ini adalah
bukan baris yang valid di buffer edit baru, setel ke baris pertama buffer edit.

terbaru kolom: Jika baris saat ini disetel ke nilai terakhir yang disimpan saat file terakhir
diedit, atur ke nilai terakhir yang disimpan saat file terakhir diedit. Jika tidak, atau jika
nilai terakhir bukan kolom yang valid di buffer edit baru, setel ke non- .

Jika tidak:

terbaru line: Setel ke baris pertama buffer edit.

terbaru kolom: Setel ke non- .

File
ringkasan:
f[s][fillet]

Jika fillet argumen ditentukan, nama jalur alternatif harus disetel ke arus
pathname, dan nama path saat ini harus disetel ke fillet.

Tulis pesan informasi. Jika file memiliki nama path saat ini, itu harus disertakan
dalam pesan ini; jika tidak, pesan akan menunjukkan bahwa tidak ada nama jalur saat ini.
Jika buffer edit berisi baris, nomor baris saat ini dan jumlah baris di
edit buffer harus disertakan dalam pesan ini; jika tidak, pesan akan menunjukkan bahwa
buffer edit kosong. Jika buffer edit telah dimodifikasi sejak terakhir selesai
menulis, fakta ini akan dimasukkan dalam pesan ini. jika dibaca saja opsi edit diatur,
fakta ini harus disertakan dalam pesan ini. Pesan mungkin berisi hal lain yang tidak ditentukan
informasi.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Aksi
ringkasan:
[2tambahan] g[global] /belt hold/ [perintah]
[2tambahan] v /belt hold/ [perintah]

Opsional '!' karakter setelah global perintah harus sama dengan menjalankan v
perintah.

If belt hold kosong (misalnya, "//") atau tidak ditentukan, ekspresi reguler terakhir yang digunakan
dalam perintah editor akan digunakan sebagai belt hold. itu belt hold dapat dibatasi oleh
karakter (ditampilkan dalam Sinopsis), serta semua karakter non-alfanumerik atau non-
Selain daripada , , , atau kutip ganda.

Jika tidak ada baris yang ditentukan, baris akan default ke seluruh file.

Grafik global dan v perintah secara logis adalah operasi dua jalur. Pertama, tandai garis di dalam
garis yang ditentukan di mana garis tidak termasuk penghentian pertandingan
(global) atau tidak cocok (v or global!) pola yang ditentukan. Kedua, jalankan ex
perintah yang diberikan oleh perintah, dengan baris saat ini ('.') diatur ke setiap baris yang ditandai. Jika
kesalahan terjadi selama proses ini, atau isi buffer edit diganti (untuk
contoh, oleh ex : sunting perintah) pesan kesalahan harus ditulis dan tidak ada lagi perintah
yang dihasilkan dari eksekusi perintah ini akan diproses.

kelipatan ex perintah dapat ditentukan dengan memasukkan beberapa perintah pada satu baris menggunakan
A untuk membatasi mereka, atau satu per baris, dengan melarikan diri masing-masing dengan
.

Jika tidak ada perintah yang ditentukan:

1. Jika dalam ex mode perintah, itu akan menjadi seolah-olah mencetak perintah telah ditentukan.

2. Jika tidak, tidak ada perintah yang akan dieksekusi.

Untuk menambahkan, perubahan, dan menyisipkan perintah, teks input harus dimasukkan sebagai bagian dari
perintah, dan penghentian dapat dihilangkan jika perintah mengakhiri daftar
perintah. NS Buka dan visual perintah dapat ditentukan sebagai salah satu perintah, di mana
kasus setiap baris ditandai akan menyebabkan editor untuk masuk ke mode terbuka atau visual. Jika terbuka atau
mode visual keluar menggunakan vi Q perintah, baris saat ini akan diatur ke yang berikutnya
garis yang ditandai, dan mode terbuka atau visual masuk kembali, sampai daftar garis yang ditandai adalah
habis.

Grafik global, v, dan merusak perintah tidak dapat digunakan dalam perintah. Garis yang ditandai dapat dihapus
oleh perintah yang dieksekusi untuk baris yang muncul lebih awal di file daripada baris yang ditandai. Di dalam
kasus ini, tidak ada perintah yang akan dijalankan untuk baris yang dihapus.

Jika arah pencarian yang diingat tidak disetel, global dan v perintah akan mengaturnya ke
meneruskan.

Grafik cetak otomatis dan indentasi otomatis opsi edit akan dihambat selama g or
v perintah.

terbaru line: Jika tidak ada perintah yang dijalankan, setel ke baris terakhir yang ditandai. Jika tidak, sebagai
ditentukan untuk dieksekusi ex perintah.

terbaru kolom: Jika tidak ada perintah yang dijalankan, setel ke non- ; jika tidak, seperti yang ditentukan
untuk individu ex perintah.

Menyisipkan
ringkasan:
[1tambahan] i[masukkan][!]

Enter ex mode masukan teks; teks input harus ditempatkan sebelum baris yang ditentukan. jika
baris nol atau 1, teks harus ditempatkan di awal buffer edit.

Perintah ini akan dipengaruhi oleh jumlah dan indentasi otomatis mengedit opsi; mengikuti
nama perintah dengan '!' akan menyebabkan indentasi otomatis edit pengaturan opsi yang akan diaktifkan
durasi perintah ini saja.

terbaru line: Atur ke baris input terakhir; jika tidak ada baris yang dimasukkan, setel ke baris sebelumnya
baris yang ditentukan, atau ke baris pertama buffer edit jika tidak ada garis
sebelum baris yang ditentukan, atau nol jika buffer edit kosong.

terbaru kolom: Setel ke non- .

Ikuti seminar
ringkasan:
[2tambahan] j[oin][!][menghitung][bendera]

If menghitung ditentukan:

Jika tidak ada alamat yang ditentukan, ikut perintah akan berperilaku seolah-olah 2tambahan adalah
garis saat ini dan garis saat ini plus menghitung (.,.+ menghitung).

Jika satu alamat ditentukan, ikut perintah akan berperilaku seolah-olah 2tambahan adalah
alamat yang ditentukan dan alamat yang ditentukan plus menghitung (addr,addr + menghitung).

Jika dua alamat ditentukan, ikut perintah akan berperilaku seolah-olah tambahan
alamat, sama dengan alamat terakhir plus menghitung 1 (tambahan1,tambahan2,tambahan2 + menghitung 1),
telah ditentukan.

Jika ini akan menghasilkan alamat kedua lebih besar dari baris terakhir edit
buffer, itu harus dikoreksi menjadi sama dengan baris terakhir dari buffer edit.

Jika tidak menghitung ditentukan:

Jika tidak ada alamat yang ditentukan, ikut perintah akan berperilaku seolah-olah 2tambahan adalah
baris saat ini dan baris berikutnya (.,. +1).

Jika satu alamat ditentukan, ikut perintah akan berperilaku seolah-olah 2tambahan adalah
alamat yang ditentukan dan baris berikutnya (addr,addr + 1).

Gabungkan teks dari baris yang ditentukan menjadi satu baris, yang akan menggantikan
garis-garis yang ditentukan.

Jika '!' karakter ditambahkan ke nama perintah, the ikut akan tanpa
modifikasi dari setiap baris, independen dari lokal saat ini.

Jika tidak, di lokal POSIX, atur baris saat ini ke baris pertama dari baris yang ditentukan,
dan kemudian, untuk setiap baris berikutnya, lanjutkan sebagai berikut:

1. Buang memimpin karakter dari garis yang akan digabungkan.

2. Jika baris yang akan digabungkan sekarang kosong, hapus, dan lewati langkah 3 hingga 5.

3. Jika garis saat ini berakhir di a , atau karakter pertama dari baris yang akan digabungkan
adalah ')' karakter, gabungkan baris tanpa modifikasi lebih lanjut.

4. Jika karakter terakhir dari baris saat ini adalah a '.', gabungkan garis dengan dua
karakter di antara mereka.

5. Jika tidak, gabungkan baris dengan satu diantara mereka.

terbaru line: Setel ke baris pertama yang ditentukan.

terbaru kolom: Setel ke non- .

Daftar
ringkasan:
[2tambahan] l[adalah][menghitung][bendera]

Perintah ini harus setara dengan ex perintah:

[2tambahan] p[rintis][menghitung] l[bendera]

Lihat Mencetak.

Lokasi
ringkasan:
peta[!][lhs rhs]

If lhs dan rhs tidak ditentukan:

1. Jika '!' ditentukan, tulis daftar peta mode input teks saat ini.

2. Jika tidak, tulis daftar peta mode perintah saat ini.

3. Tidak melakukan apa-apa lagi.

Implementasi dapat membatasi kumpulan karakter yang diterima di lhs or rhs, kecuali itu
karakter yang dapat dicetak dan karakter tidak boleh dibatasi. Tambahan
pembatasan harus ditentukan-implementasi. di keduanya lhs dan rhs, karakter apa saja bisa
lolos dengan -V, dalam hal ini karakter tidak boleh digunakan untuk membatasi lhs
dari rhs, dan pelarian -V harus dibuang.

Jika karakter '!' ditambahkan ke peta nama perintah, pemetaan akan efektif
selama mode input teks terbuka atau visual daripada Buka or visual modus perintah. Ini memungkinkan
lhs memiliki dua yang berbeda peta definisi pada saat yang sama: satu untuk mode perintah dan satu
untuk mode input teks.

Untuk pemetaan mode perintah:

Ketika lhs dimasukkan sebagai bagian dari a vi perintah dalam mode terbuka atau visual (tetapi tidak
sebagai bagian dari argumen untuk perintah), tindakan harus seolah-olah
sesuai rhs telah dimasukkan.

Jika ada karakter dalam perintah, selain yang pertama, diloloskan menggunakan a
-V karakter, karakter itu tidak boleh menjadi bagian dari pertandingan ke lhs.

Tidak ditentukan apakah implementasi akan mendukung peta perintah dimana lhs
panjangnya lebih dari satu karakter, di mana karakter pertama dari lhs is
dapat dicetak.

If lhs berisi lebih dari satu karakter dan karakter pertama adalah '#', Diikuti oleh
urutan digit yang sesuai dengan tombol fungsi bernomor, maka ketika ini
kunci fungsi diketik itu harus dipetakan ke rhs. Karakter selain angka
mengikuti a '#' karakter juga mewakili tombol fungsi yang dinamai oleh karakter
dalam lhs mengikuti '#' dan dapat dipetakan ke rhs. Tidak ditentukan caranya
tombol fungsi diberi nama atau tombol fungsi apa yang didukung.

Untuk pemetaan mode input teks:

Ketika lhs dimasukkan sebagai bagian teks apa pun yang dimasukkan dalam input teks terbuka atau visual
mode, tindakan harus seolah-olah sesuai rhs telah dimasukkan.

Jika ada karakter dalam teks input yang diloloskan menggunakan a -V karakter, itu
karakter tidak akan menjadi bagian dari pertandingan untuk lhs.

Tidak ditentukan apakah lhs teks dimasukkan untuk selanjutnya peta or buka peta perintah
diganti dengan rhs teks untuk keperluan tampilan layar; terlepas dari
apakah tampilan muncul seolah-olah sesuai rhs teks dimasukkan,
efek dari perintah akan seolah-olah lhs teks dimasukkan.

Jika hanya sebagian dari lhs dimasukkan, tidak ditentukan berapa lama editor akan menunggu
tambahan, mungkin karakter yang cocok sebelum memperlakukan karakter yang sudah dimasukkan sebagai
tidak cocok dengan lhs.

Grafik rhs karakter sendiri akan dikenakan pemetaan ulang, kecuali ditentukan lain oleh
itu remap opsi edit, kecuali jika karakter di lhs muncul sebagai karakter awalan di
rhs, karakter tersebut tidak boleh dipetakan ulang.

Pada terminal mode blok, pemetaan tidak perlu segera dilakukan (misalnya, mungkin terjadi
setelah terminal mentransmisikan sekelompok karakter ke sistem), tetapi itu harus mencapai
hasil yang sama seolah-olah itu terjadi segera.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Mark
ringkasan:
[1tambahan] ma[rk] karakter
[1tambahan] k karakter

Implementasi harus mendukung karakter nilai satu huruf kecil dari POSIX
lokal dan karakter kutipan-balik dan kutipan-tunggal; dukungan karakter lain adalah
implementasi-didefinisikan.

Jika menjalankan vi m perintah, atur tanda yang ditentukan ke baris saat ini dan berbasis 1
karakter bernomor yang dirujuk oleh kolom saat ini, jika ada; jika tidak, posisi kolom 1.

Jika tidak, atur tanda yang ditentukan ke garis yang ditentukan dan nomor berbasis 1 terlebih dahulu
non- non- di baris, jika ada; jika tidak, yang terakhir non- dalam
garis, jika ada; jika tidak, posisi kolom 1.

Tanda tersebut akan tetap berhubungan dengan garis sampai tanda tersebut disetel ulang atau garis tersebut
dihapus. Jika baris yang dihapus dipulihkan oleh yang berikutnya merusak perintah, tanda apa pun sebelumnya
terkait dengan saluran, yang belum disetel ulang, harus dipulihkan juga. Setiap penggunaan
tanda yang tidak terkait dengan baris saat ini di buffer edit akan menjadi kesalahan.

Tanda-tanda ` dan ' harus ditetapkan seperti yang dijelaskan sebelumnya, segera sebelum berikut:
peristiwa terjadi di editor:

1. Penggunaan '$' sebagai ex alamat

2. Penggunaan bilangan desimal positif sebagai ex alamat

3. Penggunaan perintah pencarian sebagai ex alamat

4. Penggunaan referensi merek sebagai ex alamat

5. Penggunaan perintah mode terbuka dan visual berikut: -], %, (, ), [, ], {,
}

6. Penggunaan perintah mode terbuka dan visual berikut: ', G, H, L, M, z jika
baris saat ini akan berubah sebagai akibat dari perintah

7. Penggunaan perintah mode terbuka dan visual: /, ?, N, `, n jika garis saat ini atau
kolom akan berubah sebagai akibat dari perintah

8. Penggunaan ex perintah mode: z, merusak, global, v

Untuk aturan 1., 2., 3., dan 4., ` dan ' tanda tidak akan ditetapkan jika ex perintah adalah
diuraikan seperti yang ditentukan oleh aturan 6.a. di perintah baris Penguraian in ex.

Untuk aturan 5., 6., dan 7., ` dan ' tanda tidak boleh disetel jika perintah digunakan sebagai
perintah gerak dalam mode terbuka dan visual.

Untuk aturan 1., 2., 3., 4., 5., 6., 7., dan 8., ` dan ' tanda tidak akan ditetapkan jika
perintah gagal.

Grafik ` dan ' tanda harus ditetapkan seperti yang dijelaskan sebelumnya, setiap kali isi edit
buffer diganti (termasuk pengeditan buffer awal), jika dalam keadaan terbuka atau visual
modus, atau jika dalam ex mode dan buffer edit tidak kosong, sebelum perintah atau gerakan apa pun
(termasuk perintah atau gerakan yang ditentukan oleh c or t pilihan atau +Command
argumen) dieksekusi pada buffer edit. Jika dalam mode terbuka atau visual, tanda harus:
atur seolah-olah menjalankan vi m memerintah; jika tidak, seolah-olah menjalankan ex tanda perintah.

Saat berganti dari ex mode untuk membuka atau mode visual, jika ` dan ' tanda belum
mengatur ` dan ' tanda harus ditetapkan seperti yang dijelaskan sebelumnya.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Pindah
ringkasan:
[2tambahan] m[ove] 1tambahan [bendera]

Pindahkan garis yang ditentukan setelah garis tujuan yang ditentukan. Tujuan dari jalur nol
menentukan bahwa garis harus ditempatkan di awal buffer edit. Ini akan menjadi
kesalahan jika jalur tujuan berada dalam jangkauan jalur yang akan dipindahkan.

terbaru line: Setel ke baris terakhir yang dipindahkan.

terbaru kolom: Setel ke non- .

Selanjutnya
ringkasan:
n[ext][!][+Command][fillet ...]

Jika tidak '!' ditambahkan ke nama perintah, dan buffer edit telah dimodifikasi sejak
penulisan lengkap terakhir, itu akan menjadi kesalahan, kecuali file tersebut berhasil ditulis sebagai
ditentukan oleh tulis otomatis .

Jika satu atau lebih file ditentukan:

1. Atur daftar argumen ke nama file yang ditentukan.

2. Atur referensi daftar argumen saat ini menjadi entri pertama dalam daftar argumen.

3. Atur nama path saat ini ke nama file pertama yang ditentukan.

Jika tidak:

1. Ini akan menjadi kesalahan jika tidak ada lagi nama file dalam daftar argumen setelah
nama file yang saat ini dirujuk.

2. Atur nama path saat ini dan referensi daftar argumen saat ini ke nama file setelahnya
nama file yang saat ini dirujuk dalam daftar argumen.

Ganti isi buffer edit dengan isi file yang diberi nama saat ini
nama jalur. Jika karena alasan apa pun isi file tidak dapat diakses, buffer edit
akan kosong.

Perintah ini akan dipengaruhi oleh tulis otomatis dan menulis apa saja opsi edit.

Grafik +Command pilihan harus -dibatasi; karakter dapat diloloskan dengan
mendahului mereka dengan karakter. Itu +Command akan ditafsirkan sebagai ex
perintah segera setelah isi buffer edit telah diganti dan
baris dan kolom saat ini telah ditetapkan.

terbaru line: Atur seperti yang dijelaskan untuk mengedit perintah.

terbaru kolom: Atur seperti yang dijelaskan untuk mengedit perintah.

Jumlah
ringkasan:
[2tambahan] nu[anggota][menghitung][bendera]
[2tambahan] #[menghitung][bendera]

Perintah-perintah ini harus setara dengan ex perintah:

[2tambahan] p[rintis][menghitung] #[bendera]

Lihat Mencetak.

Open
ringkasan:
[1tambahan] o[pena] /belt hold/ [bendera]

Perintah ini tidak perlu didukung pada terminal mode blok atau terminal dengan kekurangan
kemampuan. Jika input standar, output standar, atau kesalahan standar bukan terminal
perangkat, hasilnya tidak ditentukan.

Masuk ke mode terbuka.

Pembatas akhir dapat dihilangkan dari belt hold di akhir baris perintah. Jika
belt hold kosong (misalnya, "//") atau tidak ditentukan, ekspresi reguler terakhir yang digunakan dalam
editor akan digunakan sebagai pola. Polanya dapat dibatasi oleh
karakter (ditampilkan dalam Sinopsis), serta alfanumerik, atau non- Selain daripada
, , , atau kutip ganda.

terbaru line: Setel ke baris yang ditentukan.

terbaru kolom: Setel ke non- .

Pertahankan
ringkasan:
pra[melayani]

Simpan buffer edit dalam bentuk yang nantinya dapat dipulihkan dengan menggunakan r pilihan atau dengan
menggunakan ex memulihkan memerintah. Setelah file telah diawetkan, pesan email harus
dikirim ke pengguna. Pesan ini harus dapat dibaca dengan memanggil mailx kegunaan. NS
pesan harus berisi nama file, waktu penyimpanan, dan ex Command
yang dapat digunakan untuk memulihkan file. Informasi tambahan mungkin disertakan dalam surat
pesan.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Mencetak
ringkasan:
[2tambahan] p[rintis][menghitung][bendera]

Tulis baris yang dituju. Perilaku tidak ditentukan jika jumlah kolom pada
tampilan kurang dari jumlah kolom yang diperlukan untuk menulis satu karakter apa pun di
garis yang sedang ditulis.

Karakter yang tidak dapat dicetak, kecuali untuk , harus ditulis sebagai implementasi-didefinisikan
urutan multi-karakter.

Jika # bendera ditentukan atau jumlah opsi edit diatur, setiap baris harus didahului
dengan nomor barisnya dalam format berikut:

"%6d ", <line jumlah>

Jika l bendera ditentukan atau daftar opsi edit diatur:

1. Karakter yang tercantum dalam volume Definisi Dasar POSIX.1-2008, tabel 5-1,
Melarikan diri Urutan dan Associated tindakan harus ditulis sebagai pelarian yang sesuai
urutan.

2. Karakter yang tidak dapat dicetak tidak ada dalam volume Definisi Dasar POSIX.1-2008, tabel
5-1, Melarikan diri Urutan dan Associated tindakan harus ditulis sebagai satu oktal tiga digit
nomor (dengan sebelumnya ) untuk setiap byte dalam karakter (paling signifikan
byte terlebih dahulu).

3. Akhir setiap baris harus ditandai dengan a '$', dan literal '$' karakter di dalam
baris harus ditulis dengan sebelumnya .

Garis panjang harus dilipat; panjang di mana pelipatan terjadi tidak ditentukan, tetapi harus
sesuai untuk terminal keluaran, mengingat jumlah kolom terminal.

Jika sebuah garis dilipat, dan l bendera tidak ditentukan dan daftar opsi edit tidak disetel,
tidak ditentukan apakah karakter multi-kolom pada posisi lipat dipisahkan;
itu tidak akan dibuang.

terbaru line: Atur ke baris tertulis terakhir.

terbaru kolom: Tidak berubah jika baris saat ini tidak berubah; jika tidak, setel ke non- .

Menempatkan
ringkasan:
[1tambahan] pu[t][penyangga]

Tambahkan teks dari buffer yang ditentukan (secara default, buffer yang tidak disebutkan namanya) ke yang ditentukan
garis; baris nol menentukan bahwa teks harus ditempatkan di awal suntingan
penyangga. Setiap bagian dari baris di buffer akan menjadi baris baru di buffer edit,
terlepas dari mode buffer.

terbaru line: Setel ke baris terakhir yang dimasukkan ke dalam buffer edit.

terbaru kolom: Setel ke non- .

Berhenti
ringkasan:
q[uit][!]

Jika tidak '!' ditambahkan ke nama perintah:

1. Jika buffer edit telah dimodifikasi sejak penulisan lengkap terakhir, itu akan menjadi
kesalahan.

2. Jika ada nama file dalam daftar argumen setelah nama file yang saat ini dirujuk,
dan perintah terakhir bukan a berhenti, wq, eluar, atau ZZ (Lihat Exit) perintah, itu akan menjadi
kesalahan.

Jika tidak, hentikan sesi pengeditan.

Baca
ringkasan:
[1tambahan] r[EAD][!][fillet]

If '!' bukan yang pertama non- untuk mengikuti nama perintah, salinan yang ditentukan
file harus ditambahkan ke buffer edit setelah baris yang ditentukan; garis nol menentukan
bahwa salinan harus ditempatkan di awal buffer edit. Banyaknya garis dan
byte yang dibaca harus ditulis. Jika tidak fillet dinamai, nama jalur saat ini adalah
bawaan. Jika tidak ada nama jalur saat ini, maka fillet akan menjadi nama jalur saat ini. Jika
tidak ada nama jalur saat ini atau fillet operan, itu akan menjadi kesalahan. Menentukan fillet bahwa
bukan tipe reguler harus memiliki hasil yang tidak ditentukan.

Kalau tidak, jika fillet diawali dengan '!', sisa baris setelah '!' akan memiliki '%',
'#', dan '!' karakter diperluas seperti yang dijelaskan dalam perintah baris Penguraian in ex.

Grafik ex utilitas kemudian akan meneruskan dua argumen ke program yang dinamai oleh shell edit
pilihan; yang pertama adalah c dan yang kedua adalah argumen yang diperluas ke Baca baca
perintah sebagai argumen tunggal. Masukan standar program harus diatur ke
masukan standar ex program ketika dipanggil. Kesalahan standar dan standar
keluaran program harus ditambahkan ke buffer edit setelah baris yang ditentukan.

Setiap baris dalam file yang disalin atau keluaran program (sebagaimana dibatasi oleh karakter atau
akhir file atau output jika tidak segera didahului oleh a ), seharusnya
baris terpisah di buffer edit. Setiap kejadian dari dan
pasangan dalam output harus diperlakukan sebagai tunggal karakter.

Arti khusus dari '!' mengikuti Baca baca perintah dapat ditimpa dengan melarikan diri
itu dengan karakter.

terbaru line: Jika tidak ada baris yang ditambahkan ke buffer edit, tidak berubah. Jika tidak, jika di tempat terbuka
atau mode visual, atur ke baris pertama yang dimasukkan ke buffer edit. Jika tidak, atur ke
baris terakhir masuk ke buffer edit.

terbaru kolom: Setel ke non- .

Memulihkan
ringkasan:
rek[lebih][!] fillet

Jika tidak '!' ditambahkan ke nama perintah, dan buffer edit telah dimodifikasi sejak
penulisan lengkap terakhir, itu akan menjadi kesalahan.

Jika tidak fillet operand ditentukan, maka nama jalur saat ini harus digunakan. Jika tidak ada
nama jalur saat ini atau fillet operan, itu akan menjadi kesalahan.

Jika tidak ada informasi pemulihan yang telah disimpan sebelumnya tentang fillet, yang memulihkan perintah harus
berperilaku identik dengan mengedit perintah, dan pesan informasi untuk efek ini harus
ditulis.

Jika tidak, atur nama jalur saat ini ke fillet, dan ganti konten edit saat ini
buffer dengan konten yang dipulihkan dari fillet. Jika ada beberapa contoh file
untuk dipulihkan, yang terakhir disimpan akan dipulihkan, dan informasi
pesan bahwa ada versi file sebelumnya yang dapat dipulihkan adalah
tertulis. Editor akan berperilaku seolah-olah konten buffer edit sudah
diubah.

terbaru fillet: Atur seperti yang dijelaskan untuk mengedit perintah.

terbaru kolom: Atur seperti yang dijelaskan untuk mengedit perintah.

Rewind
ringkasan:
ulang[ind][!]

Jika tidak '!' ditambahkan ke nama perintah, dan buffer edit telah dimodifikasi sejak
penulisan lengkap terakhir, itu akan menjadi kesalahan, kecuali file tersebut berhasil ditulis sebagai
ditentukan oleh tulis otomatis .

Jika daftar argumen kosong, itu akan menjadi kesalahan.

Referensi daftar argumen saat ini dan nama jalur saat ini harus disetel ke yang pertama
nama file dalam daftar argumen.

Ganti isi buffer edit dengan isi file yang diberi nama saat ini
nama jalur. Jika karena alasan apa pun isi file tidak dapat diakses, buffer edit
akan kosong.

Perintah ini akan dipengaruhi oleh tulis otomatis dan menulis apa saja opsi edit.

terbaru line: Atur seperti yang dijelaskan untuk mengedit perintah.

terbaru kolom: Atur seperti yang dijelaskan untuk mengedit perintah.

set
ringkasan:
se[t][Option[=[nilai]] ...][tidakOption ...][Option? ...][semua]

Ketika tidak ada argumen yang ditentukan, tulis nilai dari istilah edit opsi dan opsi itu
yang nilainya telah diubah dari pengaturan default; ketika argumen semua is
ditentukan, tulis semua nilai opsi.

Memberi nama opsi diikuti oleh karakter '?' akan menyebabkan nilai saat itu
pilihan yang akan ditulis. Itu '?' dapat dipisahkan dari nama opsi dengan nol atau lebih
karakter. Itu '?' akan diperlukan hanya untuk opsi bernilai Boolean. Boolean
opsi dapat diberikan nilai dengan formulir set Option untuk menyalakannya atau set tidakOption berbalik
mereka pergi; opsi string dan numerik dapat diberikan oleh formulir set Option=nilai. Apa saja
karakter dalam string dapat dimasukkan apa adanya dengan mendahului masing-masing dengan sebuah
melarikan diri . Lebih dari satu opsi dapat diatur atau dicantumkan dengan satu set perintah
dengan menentukan beberapa argumen, masing-masing dipisahkan dari yang berikutnya oleh satu atau lebih
karakter.

Lihat Edit Opsi in ex untuk detail tentang opsi tertentu.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Kulit
ringkasan:
NS[elo]

Panggil program yang disebutkan dalam tempurung edit opsi dengan argumen tunggal i (interaktif
mode). Pengeditan akan dilanjutkan ketika program keluar.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

sumber
ringkasan:
jadi[urcan ke] fillet

Baca dan jalankan ex perintah dari fillet. Baris dalam file yang merupakan baris kosong harus
diabaikan.

terbaru line: Seperti yang ditentukan untuk individu ex perintah.

terbaru kolom: Seperti yang ditentukan untuk individu ex perintah.

Pengganti
ringkasan:
[2tambahan] s[pengganti][/belt hold/membalas/[Pilihan][menghitung][bendera]]
[2tambahan] &[Pilihan][menghitung][bendera]]
[2tambahan] ~[Pilihan][menghitung][bendera]]

Ganti contoh pertama dari pola belt hold dengan tali membalas pada setiap yang ditentukan
garis. (Melihat Reguler Ekspresi in ex dan Penggantian String in ex.) Setiap non-abjad,
non- pembatas selain , '|', , atau tanda kutip ganda dapat digunakan
alih-alih '/'. karakter dapat digunakan untuk menghindari pembatas,
karakter, dan karakter khusus lainnya.

Pembatas akhir dapat dihilangkan dari belt hold atau dari membalas di akhir perintah
garis. Jika keduanya belt hold dan membalas tidak ditentukan atau kosong (misalnya, "//"), Yang
terakhir s perintah harus diulang. Jika hanya belt hold tidak ditentukan atau kosong, yang terakhir
ekspresi reguler yang digunakan dalam editor harus digunakan sebagai pola. Jika hanya membalas tidak
ditentukan atau kosong, polanya tidak akan diganti dengan apa pun. Jika seluruh
pola pengganti adalah '%', pola penggantian terakhir ke an s perintah harus digunakan.

Memasuki a di membalas (yang membutuhkan pelarian di ex mode
dan pelarian -V dalam keadaan terbuka atau vi mode) akan membagi garis pada titik itu,
membuat baris baru di buffer edit. Itu akan dibuang.

If Pilihan termasuk surat 'G' (global), semua contoh pola yang tidak tumpang tindih
dalam barisan harus diganti.

If Pilihan termasuk surat 'C' (memastikan), maka sebelum setiap pergantian garis harus
ditulis; baris tertulis harus mencerminkan semua penggantian sebelumnya. Berikut ini
garis, karakter harus ditulis di bawah karakter dari baris yang
sebelum belt hold diganti, dan '^' karakter yang ditulis di bawah karakter
termasuk dalam belt hold untuk diganti. Itu ex utilitas kemudian akan menunggu tanggapan dari
pengguna. Tanggapan afirmatif akan menyebabkan substitusi dilakukan, sementara yang lainnya
input tidak boleh melakukan substitusi. Tanggapan afirmatif harus terdiri dari satu baris
dengan respons afirmatif (seperti yang didefinisikan oleh lokal saat ini) di awal
garis. Baris ini dapat diedit dengan cara yang sama seperti pada ex garis komando.

Jika terputus (lihat bagian ACARA ASYNCHRONOUS), modifikasi apa pun yang dikonfirmasi oleh
pengguna harus disimpan dalam buffer edit setelah interupsi.

Jika arah pencarian yang diingat tidak disetel, s perintah akan mengaturnya untuk maju.

Dalam Sinopsis kedua, & perintah akan mengulangi substitusi sebelumnya, seolah-olah &
perintah digantikan oleh:

s/belt hold/membalas/

dimana belt hold dan membalas adalah seperti yang ditentukan sebelumnya s, &, atau ~ perintah.

Dalam Sinopsis ketiga, the ~ perintah akan mengulangi substitusi sebelumnya, seolah-olah '~'
digantikan oleh:

s/belt hold/membalas/

dimana belt hold akan menjadi ekspresi reguler terakhir yang ditentukan untuk editor, dan membalas akan
berasal dari substitusi sebelumnya (termasuk & dan ~) memerintah.

Perintah-perintah ini akan dipengaruhi oleh LC_MESSAGES variabel lingkungan.

terbaru line: Ditetapkan ke baris terakhir di mana substitusi terjadi, atau, tidak berubah jika tidak ada
substitusi terjadi.

terbaru kolom: Setel ke non- .

Menangguhkan
ringkasan:
su[menghabiskan][!]
st[op][!]

Izinkan kontrol untuk kembali ke proses pemanggilan; ex akan menangguhkan dirinya sendiri seolah-olah itu telah
menerima sinyal SIGTSTP. Penangguhan harus terjadi hanya jika kontrol pekerjaan diaktifkan di
shell yang memanggil (lihat deskripsi dari set m).

Perintah-perintah ini akan dipengaruhi oleh tulis otomatis dan menulis apa saja opsi edit.

Arus curiga karakter (lihat sty) harus setara dengan menangguhkan perintah.

label
ringkasan:
ta[g][!] tagstring

Hasilnya tidak ditentukan jika format file tag tidak seperti yang ditentukan oleh ctag
utilitas (lihat ctag) keterangan.

Grafik label perintah akan mencari tagstring dalam file tag yang dirujuk oleh label mengedit
opsi, dalam urutan yang ditentukan, hingga referensi ke tagstring ditemukan. File
akan dicari dari awal sampai akhir. Jika tidak ada referensi yang ditemukan, itu akan menjadi kesalahan
dan pesan kesalahan untuk efek ini harus ditulis. Jika referensi tidak ditemukan, atau jika
terjadi kesalahan saat memproses file yang dirujuk dalam label opsi edit, itu akan menjadi
kesalahan, dan pesan kesalahan harus ditulis pada saat pertama kali kesalahan tersebut terjadi.

Jika tidak, jika file tag berisi pola, pola tersebut akan diperlakukan sebagai pola biasa
ekspresi yang digunakan dalam editor; misalnya untuk keperluan s perintah.

Jika tagstring ada dalam file dengan nama yang berbeda dari nama path saat ini, atur
pathname saat ini ke nama file itu, dan ganti konten buffer edit
dengan isi file tersebut. Dalam hal ini, jika tidak '!' ditambahkan ke nama perintah,
dan buffer edit telah dimodifikasi sejak penulisan lengkap terakhir, itu akan menjadi kesalahan,
kecuali file tersebut berhasil ditulis seperti yang ditentukan oleh tulis otomatis .

Perintah ini akan dipengaruhi oleh tulis otomatis, label, panjang tag, dan menulis apa saja mengedit
Pilihan.

terbaru line: Jika file tag berisi nomor baris, setel ke nomor baris itu. jika
nomor baris lebih besar dari baris terakhir di buffer edit, pesan kesalahan harus
tertulis dan garis saat ini harus ditetapkan seperti yang ditentukan untuk mengedit perintah.

Jika file tag berisi pola, setel ke kemunculan pertama dari pola di
mengajukan. Jika tidak ada pola yang cocok ditemukan, pesan kesalahan harus ditulis dan arus
garis harus ditetapkan seperti yang ditentukan untuk mengedit perintah.

terbaru kolom: Jika file tag berisi referensi nomor baris dan nomor baris itu
tidak lebih besar dari baris terakhir di buffer edit, atau jika file tag berisi
pola dan pola itu ditemukan, setel ke non- . Jika tidak, tetapkan seperti yang ditentukan untuk
itu mengedit perintah.

Tidak disingkat
ringkasan:
un[singkatan] lhs

If lhs bukan entri dalam daftar singkatan saat ini (lihat Singkatan), itu akan menjadi
sebuah kesalahan. Jika tidak, hapus lhs dari daftar singkatan.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

membuka
ringkasan:
u[ndo]

Balikkan perubahan yang dibuat oleh perintah terakhir yang mengubah konten hasil edit
penyangga, termasuk merusak. Untuk tujuan ini, file global, v, Buka, dan visual perintah, dan
perintah yang dihasilkan dari eksekusi buffer dan ekspansi karakter yang dipetakan, dipertimbangkan
perintah tunggal.

Jika tidak ada tindakan yang dapat dibatalkan sebelum merusak perintah, itu akan menjadi kesalahan.

Jika merusak perintah mengembalikan garis yang ditandai, tanda juga harus dipulihkan
kecuali itu diatur ulang setelah penghapusan garis.

terbaru line:

1. Jika baris ditambahkan atau diubah dalam file, setel ke baris pertama yang ditambahkan atau diubah.

2. Atur ke baris sebelum baris pertama dihapus, jika ada.

3. Setel ke 1 jika buffer edit tidak kosong.

4. Atur ke nol.

terbaru kolom: Setel ke non- .

Hapus peta
ringkasan:
tidak [ap][!] lhs

If '!' ditambahkan ke nama perintah, dan jika lhs bukan entri dalam daftar teks
definisi peta mode input, itu akan menjadi kesalahan. Jika tidak, hapus lhs dari daftar
definisi peta mode input teks.

Jika tidak '!' ditambahkan ke nama perintah, dan jika lhs bukan entri dalam daftar
definisi peta mode perintah, itu akan menjadi kesalahan. Jika tidak, hapus lhs dari daftar
definisi peta mode perintah.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Versi
ringkasan:
ve[rsion]

Tulis pesan yang berisi informasi versi untuk editor. Format pesan
tidak ditentukan.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

visual
ringkasan:
[1tambahan] vi[manis][mengetik][menghitung][bendera]

If ex saat ini dalam mode terbuka atau visual, Sinopsis dan perilaku perintah visual
akan sama dengan mengedit perintah, seperti yang ditentukan oleh Edit.

Jika tidak, perintah ini tidak perlu didukung pada terminal mode blok atau terminal dengan
kemampuan yang tidak memadai. Jika input standar, output standar, atau kesalahan standar tidak
perangkat terminal, hasilnya tidak ditentukan.

If menghitung ditentukan, nilai jendela opsi edit harus disetel ke menghitung (sebagai
dijelaskan dalam jendela). Jika '^' karakter tipe juga ditentukan, the jendela mengedit
opsi harus diatur sebelum digunakan oleh karakter tipe.

Masuk ke mode visual. Jika mengetik tidak ditentukan, itu akan menjadi seolah-olah a mengetik of '+' adalah
ditentukan. NS mengetik akan menimbulkan akibat sebagai berikut:

+ Tempatkan awal baris yang ditentukan di bagian atas tampilan.

- Tempatkan ujung garis yang ditentukan di bagian bawah tampilan.

. Tempatkan awal baris yang ditentukan di tengah tampilan.

^ Jika garis yang ditentukan kurang dari atau sama dengan nilai jendela opsi edit,
atur baris ke 1; jika tidak, kurangi garis dengan nilai jendela mengedit
opsi minus 1. Tempatkan awal baris ini sedekat mungkin dengan bagian bawah
menampilkan garis semaksimal mungkin, sambil tetap menampilkan nilai dari jendela mengedit
pilihan jumlah baris.

terbaru line: Setel ke baris yang ditentukan.

terbaru kolom: Setel ke non- .

Menulis
ringkasan:
[2tambahan] w[upacara][!][>>][fillet]
[2tambahan] w[upacara][!][fillet]
[2tambahan] wq[!][>>][fillet]

Jika tidak ada baris yang ditentukan, baris akan default ke seluruh file.

Perintah wq harus setara dengan menulis perintah diikuti oleh a berhenti memerintah; aduh!
harus setara dengan menulis! diikuti oleh berhenti. Dalam kedua kasus, jika menulis Command
gagal, itu berhenti tidak akan dicoba.

Jika nama perintah tidak diikuti oleh satu atau lebih karakter, atau fillet tidak
didahului dengan a '!' karakter, itu menulis akan menjadi file.

1. Jika >> argumen ditentukan, dan file sudah ada, baris harus
ditambahkan ke file alih-alih mengganti isinya. jika >> argumen adalah
ditentukan, dan file tersebut belum ada, tidak ditentukan apakah penulisan
akan berlanjut seolah-olah >> argumen belum ditentukan atau jika penulisan akan gagal.

2. Jika dibaca saja opsi edit diatur (lihat dibaca saja), Yang menulis akan gagal.

3. Jika fillet ditentukan, dan bukan nama path saat ini, dan file ada, the menulis
akan gagal.

4. Jika fillet tidak ditentukan, nama jalur saat ini harus digunakan. Jika tidak ada arus
nama jalur, itu menulis perintah akan gagal.

5. Jika nama jalur saat ini digunakan, dan nama jalur saat ini telah diubah oleh fillet
or Baca baca perintah, dan file itu ada, the menulis akan gagal. jika menulis is
berhasil, selanjutnya menuliss tidak boleh gagal karena alasan ini (kecuali arus
nama path diubah lagi).

6. Jika seluruh buffer edit tidak sedang ditulis, dan file yang akan ditulis ada,
menulis akan gagal.

Untuk aturan 1., 2., 3., dan 5., menulis dapat dipaksa dengan menambahkan karakter '!' untuk
nama perintah.

Untuk aturan 2., 3., dan 5., menulis dapat dipaksakan dengan mengatur menulis apa saja opsi edit.

Pengujian tambahan yang ditentukan implementasi dapat menyebabkan menulis gagal.

Jika buffer edit kosong, file tanpa konten apa pun harus ditulis.

Pesan informasi harus ditulis dengan mencatat jumlah baris dan byte yang ditulis.

Jika tidak, jika perintah diikuti oleh satu atau lebih karakter, dan filenya adalah
didahului oleh '!', sisa baris setelah '!' akan memiliki '%', '#', dan '!'
karakter diperluas seperti yang dijelaskan dalam perintah baris Penguraian in ex.

Grafik ex utilitas kemudian akan meneruskan dua argumen ke program yang dinamai oleh tempurung mengedit
pilihan; yang pertama adalah c dan yang kedua adalah argumen yang diperluas ke menulis
perintah sebagai argumen tunggal. Baris yang ditentukan harus ditulis ke input standar
dari perintah. Kesalahan standar dan keluaran standar program, jika ada, harus:
ditulis seperti yang dijelaskan untuk mencetak memerintah. Jika karakter terakhir dalam output itu bukan a
, sebuah harus ditulis di akhir output.

Arti khusus dari '!' mengikuti menulis perintah dapat ditimpa dengan melarikan diri
itu dengan karakter.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Menulis dan Exit
ringkasan:
[2tambahan] x[it][!][fillet]

Jika buffer edit belum dimodifikasi sejak terakhir selesai menulis, eluar seharusnya
setara dengan berhenti perintah, atau jika a '!' ditambahkan ke nama perintah, untuk berhenti!.

Jika tidak, eluar harus setara dengan wq perintah, atau jika a '!' ditambahkan ke
nama perintah, untuk aduh!.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

sentakan
ringkasan:
[2tambahan] ya[nk][penyangga][menghitung]

Salin baris yang ditentukan ke buffer yang ditentukan (secara default, buffer yang tidak disebutkan namanya), yang
akan menjadi buffer mode garis.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Menyesuaikan Jendela
ringkasan:
[1tambahan] z[!][mengetik ...][menghitung][bendera]

Jika tidak ada garis yang ditentukan, garis saat ini akan menjadi default; jika mengetik dihilangkan sebagai
baik, nilai saluran saat ini pertama-tama harus bertambah 1. Jika menambah arus
baris akan menyebabkannya lebih besar dari baris terakhir di buffer edit, itu akan menjadi
kesalahan.

Jika ada karakter antara mengetik argumen dan sebelumnya z nama perintah
atau opsional '!' karakter, itu akan menjadi kesalahan.

If menghitung ditentukan, nilai jendela opsi edit harus disetel ke menghitung (sebagai
dijelaskan dalam jendela). Jika menghitung dihilangkan, itu akan default ke 2 kali nilai dari
gulir opsi edit, atau jika ! ditentukan, jumlah baris dalam tampilan dikurangi 1.

If mengetik dihilangkan, maka menghitung garis yang dimulai dengan garis yang ditentukan harus ditulis.
Jika tidak, menghitung garis dimulai dengan garis yang ditentukan oleh mengetik argumen harus
tertulis.

Grafik mengetik argumen harus mengubah baris yang akan ditulis. Nilai yang mungkin dari mengetik adalah sebagai
berikut:

Garis yang ditentukan harus dikurangi dengan nilai berikut:

(((nomor of ``−'' karakter) x menghitung) 1)

Jika perhitungan akan menghasilkan angka kurang dari 1, itu akan menjadi kesalahan. Menulis
baris dari buffer edit, mulai dari nilai baris yang baru, hingga menghitung garis atau
baris terakhir dalam buffer edit telah ditulis.

+ Garis yang ditentukan harus bertambah dengan nilai berikut:

(((nomor of ``+'' karakter) 1) x menghitung) +1

Jika perhitungan akan menghasilkan angka yang lebih besar dari baris terakhir di edit
buffer, itu akan menjadi kesalahan. Tulis baris dari buffer edit, mulai dari yang baru
nilai garis, sampai menghitung baris atau baris terakhir dalam buffer edit telah
tertulis.

=,. Jika lebih dari satu '.' or '=' ditentukan, itu akan menjadi kesalahan. Pengikut
langkah-langkah yang harus diambil:

1. Jika menghitung adalah nol, tidak ada yang harus ditulis.

2. Tulis sebanyak N baris sebelum baris saat ini di buffer edit sebagai
ada. Jika menghitung or '!' ditentukan, N seharusnya:

(menghitung 1) /2

Jika tidak, N seharusnya:

(menghitung 3) /2

If N adalah angka yang kurang dari 3, tidak boleh ada baris yang ditulis.

3. Jika '=' ditentukan sebagai karakter tipe, tulis baris yang terdiri dari
lebih kecil dari jumlah kolom dalam tampilan dibagi dua, atau 40 '−'
karakter.

4. Tulis baris saat ini.

5. Ulangi langkah 3.

6. Tulis sebanyak N baris setelah baris saat ini di buffer edit seperti yang ada.
N harus didefinisikan seperti pada langkah 2. Jika N adalah angka yang kurang dari 3, tidak boleh ada garis
tertulis. Jika menghitung kurang dari 3, tidak boleh ada baris yang ditulis.

^ Garis yang ditentukan harus dikurangi dengan nilai berikut:

(((nomor of ``^'' karakter) + 1) x menghitung) 1

Jika perhitungan akan menghasilkan angka kurang dari 1, itu akan menjadi kesalahan. Menulis
baris dari buffer edit, mulai dari nilai baris yang baru, hingga menghitung garis atau
baris terakhir dalam buffer edit telah ditulis.

terbaru line: Setel ke baris terakhir yang ditulis, kecuali jenisnya adalah =, dalam hal ini, atur ke
garis yang ditentukan.

terbaru kolom: Setel ke non- .

Melarikan diri
ringkasan:
! Command
[addr]! Command

Isi baris setelah '!' akan memiliki '%', '#', dan '!' karakter diperluas
seperti yang dijelaskan di perintah baris Penguraian in ex. Jika ekspansi menyebabkan teks baris
untuk mengubah, itu akan ditampilkan kembali, didahului oleh satu '!' karakter.

Grafik ex utilitas akan menjalankan program yang dinamai oleh tempurung opsi edit. Ini akan melewati dua
argumen untuk program; yang pertama adalah c, dan yang kedua adalah yang diperluas
argumen untuk ! perintah sebagai argumen tunggal.

Jika tidak ada garis yang ditentukan, input standar, output standar, dan kesalahan standar dari
program harus diatur ke input standar, output standar, dan kesalahan standar dari ex
program ketika dipanggil. Selain itu, pesan peringatan harus ditulis jika edit
buffer telah dimodifikasi sejak penulisan lengkap terakhir, dan memperingatkan opsi edit diatur.

Jika garis ditentukan, mereka harus diteruskan ke program sebagai input standar, dan
keluaran standar dan kesalahan standar program akan menggantikan baris-baris tersebut di edit
penyangga. Setiap baris dalam output program (seperti yang dibatasi oleh karakter atau akhir
dari output jika tidak segera didahului oleh ), akan menjadi baris terpisah
dalam buffer edit. Setiap kejadian dari dan pasangan dalam output
akan diperlakukan sebagai lajang karakter. Baris yang ditentukan harus disalin ke
buffer yang tidak disebutkan namanya sebelum diganti, dan buffer yang tidak disebutkan namanya akan menjadi baris-
penyangga modus.

Jika di ex modus, tunggal '!' karakter harus ditulis ketika program selesai.

Perintah ini akan dipengaruhi oleh tempurung dan memperingatkan opsi edit. Jika tidak ada garis
ditentukan, perintah ini akan dipengaruhi oleh tulis otomatis dan menulis apa saja opsi edit. Jika
baris ditentukan, perintah ini akan dipengaruhi oleh cetak otomatis opsi edit.

terbaru line:

1. Jika tidak ada garis yang ditentukan, tidak berubah.

2. Jika tidak, atur ke baris terakhir yang dibaca, jika ada baris yang dibaca.

3. Jika tidak, atur ke baris sebelum baris pertama dari baris yang ditentukan, jika baris itu
ada

4. Jika tidak, setel ke baris pertama buffer edit jika buffer edit tidak kosong.

5. Jika tidak, setel ke nol.

terbaru kolom: Jika tidak ada garis yang ditentukan, tidak berubah. Jika tidak, setel ke non- .

perubahan kiri
ringkasan:
[2tambahan] <[< ...][menghitung][bendera]

Geser baris yang ditentukan ke awal baris; jumlah posisi kolom menjadi
digeser adalah jumlah karakter perintah dikalikan nilai lebar geser mengedit
pilihan. Hanya memimpin karakter harus dihapus atau diubah menjadi karakter lain
karakter dalam pergeseran; karakter lain tidak akan terpengaruh.

Baris yang akan digeser harus disalin ke buffer yang tidak disebutkan namanya, yang akan menjadi baris-
penyangga modus.

Perintah ini akan dipengaruhi oleh cetak otomatis opsi edit.

terbaru line: Setel ke baris terakhir di baris yang ditentukan.

terbaru kolom: Setel ke non- .

perubahan Kanan
ringkasan:
[2tambahan] >[> ...][menghitung][bendera]

Geser garis yang ditentukan menjauh dari awal garis; jumlah posisi kolom
yang akan digeser adalah jumlah karakter perintah dikalikan nilai lebar geser
opsi edit. Pergeseran harus dilakukan dengan menambahkan karakter sebagai awalan untuk
garis atau mengubah memimpin karakter ke dalam lainnya karakter. Garis kosong
tidak akan diubah.

Baris yang akan digeser harus disalin ke buffer yang tidak disebutkan namanya, yang akan menjadi baris-
penyangga modus.

Perintah ini akan dipengaruhi oleh cetak otomatis opsi edit.

terbaru line: Setel ke baris terakhir di baris yang ditentukan.

terbaru kolom: Setel ke non- .

-D
ringkasan:
-D

Tulis selanjutnya n garis, dimana n adalah nilai minimum dari gulir opsi edit dan
jumlah baris setelah baris saat ini di buffer edit. Jika garis saat ini adalah
baris terakhir buffer edit itu akan menjadi kesalahan.

terbaru line: Atur ke baris terakhir yang ditulis.

terbaru kolom: Setel ke non- .

Menulis baris Jumlah
ringkasan:
[1tambahan] = [bendera]

If line tidak ditentukan, itu akan default ke baris terakhir di buffer edit. Tulislah
nomor baris dari baris yang ditentukan.

terbaru line: Tidak berubah.

terbaru kolom: Tidak berubah.

Eksekusi
ringkasan:
[2tambahan] @ penyangga
[2tambahan] * penyangga

Jika tidak ada buffer yang ditentukan atau ditentukan sebagai '@' or '*', buffer terakhir yang dieksekusi adalah
digunakan. Jika tidak ada buffer sebelumnya yang dieksekusi, itu akan menjadi kesalahan.

Untuk setiap baris yang ditentukan oleh alamat, atur baris saat ini ('.') sesuai dengan yang ditentukan
baris, dan jalankan konten bernama penyangga (seperti mereka pada saat itu @ Command
dieksekusi) sebagai ex perintah. Untuk setiap baris buffer mode baris, dan semua kecuali yang terakhir
baris buffer mode karakter, the ex pengurai perintah akan berperilaku seolah-olah garis itu
diakhiri oleh .

Jika terjadi kesalahan selama proses ini, atau jalur yang ditentukan oleh alamat tidak
ada ketika baris saat ini akan disetel ke sana, atau lebih dari satu baris ditentukan
oleh alamat, dan isi buffer edit diganti (misalnya, dengan ex
: sunting perintah) pesan kesalahan harus ditulis, dan tidak ada lagi perintah yang dihasilkan dari
eksekusi perintah ini akan diproses.

terbaru line: Seperti yang ditentukan untuk individu ex perintah.

terbaru kolom: Seperti yang ditentukan untuk individu ex perintah.

Reguler Ekspresi in ex
Grafik ex utilitas harus mendukung ekspresi reguler yang merupakan superset dari reguler dasar
ekspresi yang dijelaskan dalam volume Definisi Dasar POSIX.1-2008, Bagian 9.3, Dasar
Reguler Ekspresi. Ekspresi reguler nol ("//") harus sama dengan yang terakhir
ekspresi reguler yang ditemui.

Ekspresi reguler dapat digunakan dalam alamat untuk menentukan baris dan, dalam beberapa perintah (untuk
contoh, itu pengganti perintah), untuk menentukan bagian dari baris yang akan diganti.

Konstruksi berikut dapat digunakan untuk meningkatkan ekspresi reguler dasar:

\< Cocokkan dengan awal a kata. (Lihat definisi dari kata pada awal
perintah Deskripsi in ex.)

\> Cocokkan akhir a kata.

~ Cocokkan bagian pengganti yang terakhir pengganti memerintah. Itu ('~')
karakter dapat diloloskan dalam ekspresi reguler untuk menjadi karakter normal dengan
tidak ada arti khusus. Itu akan dibuang.

Saat opsi editor sihir tidak diatur, satu-satunya karakter dengan arti khusus harus
be '^' di awal pola, '$' di akhir sebuah pola, dan . Itu
karakter '.', '*', '[', dan '~' akan diperlakukan sebagai karakter biasa kecuali didahului
oleh ; bila didahului oleh mereka akan mendapatkan kembali arti khusus mereka,
atau dalam hal , ditangani sebagai satu . karakter
digunakan untuk menghindari karakter lain harus dibuang.

Penggantian String in ex
Karakter '&' ('\&' jika opsi editor sihir tidak diatur) dalam string pengganti
harus mewakili teks yang cocok dengan pola yang akan diganti. karakter '~' ('\~' if
sihir tidak diatur) harus diganti dengan bagian pengganti yang sebelumnya pengganti
memerintah. Urutannya '\n', Di mana n adalah bilangan bulat, harus diganti dengan teks yang cocok
oleh ekspresi referensi-balik yang sesuai. Jika referensi belakang yang sesuai
ekspresi tidak cocok, maka karakternya '\n' akan diganti dengan string kosong.

Senar '\l', '\u', '\L', dan '\U' dapat digunakan untuk memodifikasi kasus elemen dalam
string pengganti (menggunakan '\&' or "\"angka) notasi. string '\l' ('\u') sebaiknya
menyebabkan karakter berikut diubah menjadi huruf kecil (huruf besar). string '\L'
('\U') akan menyebabkan semua karakter setelahnya diubah menjadi huruf kecil
(huruf besar) karena disisipkan dengan substitusi sampai string '\e' or '\E', Atau
akhir string pengganti, ditemui.

Jika tidak, karakter apa pun yang mengikuti a harus diperlakukan sebagai literal itu
karakter, dan pelarian akan dibuang.

Contoh konversi kasus dengan s perintahnya adalah sebagai berikut:

:p
Grafik kucing duduk on itu tikar.
:s/\<.at\>/\u&/gp
Grafik Kucing Sat on itu Tikar.
:s/S\(.*\)M/S\U\1\eM/p
Grafik Kucing SAT ON THE Tikar.

Edit Opsi in ex
Grafik ex utilitas memiliki sejumlah opsi yang mengubah perilakunya. Opsi ini memiliki
pengaturan default, yang dapat diubah menggunakan set perintah.

Opsi adalah Boolean kecuali ditentukan lain.

inden otomatis, ai
[Bawaan tidak disetel]

If indentasi otomatis diatur, setiap baris dalam mode input harus menjorok (menggunakan pertama sebanyak
karakter sebanyak mungkin, sebagaimana ditentukan oleh opsi editor tab stop, dan kemudian menggunakan
karakter) untuk menyelaraskan dengan baris lain, sebagai berikut:

1. Jika dalam mode terbuka atau visual dan input teks adalah bagian dari perintah berorientasi baris (lihat
DESKRIPSI DIPERPANJANG di vi), sejajarkan dengan kolom pertama.

2. Jika tidak, jika dalam mode terbuka atau visual, lekukan untuk setiap baris harus ditetapkan sebagai:
berikut:

sebuah. Jika sebuah baris sebelumnya dimasukkan sebagai bagian dari perintah ini, itu harus disetel ke
lekukan dari baris yang dimasukkan terakhir secara default, atau sebagaimana ditentukan untuk
itu -D karakter di Memasukkan mode Perintah in vi.

B. Jika tidak, itu akan diatur ke lekukan dari baris saat ini sebelumnya, jika
setiap; jika tidak, ke kolom pertama.

3. Untuk ex a, i, dan c perintah, lekukan untuk setiap baris harus diatur sebagai berikut:

sebuah. Jika sebuah baris sebelumnya dimasukkan sebagai bagian dari perintah ini, itu harus disetel ke
lekukan dari baris yang dimasukkan terakhir secara default, atau sebagaimana ditentukan untuk
itu eof karakter dalam gulir.

B. Jika tidak, jika perintahnya adalah ex a perintah, itu harus disetel ke baris
ditambahkan setelah, jika ada; sebaliknya ke kolom pertama.

C. Jika tidak, jika perintahnya adalah ex i perintah, itu harus disetel ke baris
dimasukkan sebelumnya, jika ada; sebaliknya ke kolom pertama.

D. Jika tidak, jika perintahnya adalah ex c perintah, itu harus diatur ke lekukan
dari garis diganti.

cetak otomatis, ap
[Bawaan set]

If cetak otomatis diatur, baris saat ini harus ditulis setelah masing-masing ex perintah yang mengubah
isi buffer edit saat ini, dan setelahnya label perintah yang tagnya
pola pencarian ditemukan atau nomor baris tag valid, kecuali:

1. Perintah dijalankan saat dalam mode terbuka atau visual.

2. Perintah dieksekusi sebagai bagian dari a global or v perintah atau @ eksekusi penyangga.

3. Perintah itu berbentuk Baca baca perintah yang membaca file ke buffer edit.

4. Perintahnya adalah menambahkan, perubahan, atau menyisipkan perintah.

5. Perintah tidak diakhiri oleh a .

6. Baris saat ini harus ditulis dengan bendera yang ditentukan untuk perintah; Misalnya,
hapus # harus menulis baris saat ini sebagaimana ditentukan untuk pengubah bendera ke hapus
perintah, dan tidak seperti yang ditentukan oleh cetak otomatis opsi edit.

tulis otomatis, aw
[Bawaan tidak disetel]

If tulis otomatis diatur, dan buffer edit telah dimodifikasi sejak terakhir kali sepenuhnya
ditulis ke file apa pun, konten buffer edit harus ditulis seolah-olah: ex menulis
perintah telah ditentukan tanpa argumen, sebelum setiap perintah dipengaruhi oleh
tulis otomatis opsi edit dijalankan. Menambahkan karakter '!' ke nama perintah apa saja
dari ex perintah kecuali '!' akan mencegah penulisan. Jika penulisan gagal, itu akan menjadi
kesalahan dan perintah tidak akan dijalankan.

mempercantik, bf
[Bawaan tidak disetel]

If mempercantik diatur, semua karakter yang tidak dapat dicetak, selain , , dan
feed> karakter, harus dibuang dari teks yang dibaca dari file.

direktori, dir
[Bawaan implementasi-ditentukan]

Nilai opsi ini menentukan direktori tempat buffer editor berada
ditempatkan. Jika direktori ini tidak dapat ditulis oleh pengguna, editor harus keluar.

kompatibel, ed
[Bawaan tidak disetel]

Menyebabkan adanya g dan c sufiks pada perintah pengganti untuk diingat, dan
beralih dengan mengulangi sufiks.

lonceng kesalahan, eb
[Bawaan tidak disetel]

Jika editor ada di ex mode, dan terminal tidak mendukung mode yang menonjol (seperti
video terbalik), dan lonceng kesalahan diatur, pesan kesalahan harus didahului dengan memperingatkan
terminal.

kecuali
[Bawaan tidak disetel]

If kecuali sudah diatur, ex akan mengakses setiap .exrc file di direktori saat ini, seperti yang dijelaskan dalam
Inisialisasi in ex dan vi. Jika kecuali tidak diatur, ex akan mengabaikan apapun .exrc file di
direktori saat ini selama inisialisasi, kecuali direktori saat ini diberi nama oleh
HOME variabel lingkungan.

kasus abaikan, ic
[Bawaan tidak disetel]

If abaikan kasus diatur, karakter yang memiliki representasi huruf besar dan kecil harus
memiliki representasi yang dianggap setara untuk tujuan ekspresi reguler
perbandingan.

Grafik abaikan kasus opsi edit akan mempengaruhi semua ekspresi reguler yang diingat; Misalnya,
membatalkan pengaturan abaikan kasus opsi edit akan menyebabkan yang berikutnya vi n perintah untuk mencari
ekspresi reguler dasar terakhir dengan cara yang peka huruf besar/kecil.

daftar
[Bawaan tidak disetel]

If daftar diatur, edit baris buffer yang ditulis saat di ex mode perintah harus ditulis sebagai
ditentukan untuk mencetak perintah dengan l bendera yang ditentukan. Dalam mode terbuka atau visual, masing-masing
edit garis buffer akan ditampilkan seperti yang ditentukan untuk ex mencetak perintah dengan l bendera
ditentukan. Dalam mode input teks terbuka atau visual, saat kursor tidak bertumpu pada apapun
karakter di baris, itu akan bertumpu pada '$' menandai akhir baris.

sihir
[Bawaan set]

If sihir diatur, memodifikasi interpretasi karakter dalam ekspresi reguler dan
string pengganti substitusi (lihat Reguler Ekspresi in ex dan Penggantian String in
ex).

pesan
[Bawaan set]

If pesan diatur, izin bagi orang lain untuk menggunakan menulis or berbicara perintah untuk menulis ke
terminal harus dihidupkan saat dalam mode terbuka atau visual. Perintah tingkat shell pesan
n harus didahulukan daripada pengaturan apa pun dari ex pesan pilihan; yaitu jika pesan y adalah
dikeluarkan sebelum editor dimulai (atau dalam pelarian shell), seperti:

:!pesan y

itu pesan pilihan dalam ex akan menekan pesan masuk, tetapi pesan pilihan tidak boleh
aktifkan pesan masuk jika pesan n dikeluarkan.

jumlah, nu
[Bawaan tidak disetel]

If jumlah diatur, edit baris buffer yang ditulis saat di ex mode perintah harus ditulis dengan
nomor baris, dalam format yang ditentukan oleh mencetak perintah dengan # bendera yang ditentukan. Di
ex mode input teks, setiap baris harus didahului dengan nomor baris yang ada di
file.

Dalam mode terbuka atau visual, setiap baris buffer edit harus ditampilkan dengan baris sebelumnya
nomor, dalam format yang ditentukan oleh ex mencetak perintah dengan # bendera yang ditentukan. Ini
nomor baris tidak boleh dianggap sebagai bagian dari jalur untuk tujuan mengevaluasi
kolom saat ini; yaitu, posisi kolom 1 harus menjadi posisi kolom pertama setelah
format yang ditentukan oleh mencetak perintah.

paragraf, ayat
[Default di lokal POSIX IPLPPPQPP LIpplpipbp]

Grafik paragraf opsi edit akan menentukan batas paragraf tambahan untuk open dan
perintah mode visual. Itu paragraf opsi edit dapat diatur ke string karakter
terdiri dari nol atau lebih pasangan karakter. Ini akan menjadi kesalahan untuk mengaturnya menjadi ganjil
jumlah karakter.

cepat
[Bawaan set]

If cepat sudah diatur, ex input mode perintah akan diminta dengan a (':'); Kapan
tidak disetel, tidak ada perintah yang akan ditulis.

dibaca saja
[Bawaan melihat teks]

Jika dibaca saja opsi edit diatur, mode read-only akan diaktifkan (lihat Menulis). Itu
dibaca saja opsi edit harus diinisialisasi untuk disetel jika salah satu dari kondisi berikut adalah:
benar:

* Opsi baris perintah R telah ditentukan.

* Melakukan tindakan yang setara dengan mengakses() fungsi dipanggil dengan yang berikut:
argumen menunjukkan bahwa file tersebut tidak memiliki izin menulis:

1. Nama jalur saat ini digunakan sebagai path argumen.

2. Konstanta W_OK digunakan sebagai mode argumen.

Grafik dibaca saja opsi edit dapat diinisialisasi untuk disetel untuk yang lain, yang ditentukan implementasi
alasan. Itu dibaca saja opsi edit tidak boleh diinisialisasi ke unset berdasarkan spesial
hak istimewa pengguna atau proses. Itu dibaca saja opsi edit harus diinisialisasi ulang setiap
waktu konten buffer edit diganti (misalnya, dengan mengedit or berikutnya
perintah) kecuali jika pengguna telah mengaturnya secara eksplisit, dalam hal ini akan tetap diatur sampai
pengguna secara eksplisit menghapusnya. Setelah tidak disetel, itu akan diinisialisasi ulang setiap kali
isi buffer edit diganti.

menggambar ulang
[Bawaan tidak disetel]

Editor mensimulasikan terminal cerdas pada terminal bodoh. (Karena ini mungkin untuk
membutuhkan sejumlah besar output ke terminal, ini hanya berguna pada transmisi tinggi
kecepatan.)

remap
[Bawaan set]

If remap ditetapkan, terjemahan peta harus memungkinkan peta yang didefinisikan dalam istilah peta lain;
terjemahan akan berlanjut sampai produk akhir diperoleh. Jika tidak disetel, hanya satu langkah
terjemahan harus dilakukan.

melaporkan
[Awal 5]

Nilai ini melaporkan opsi edit menentukan jumlah baris yang ditambahkan, disalin,
dihapus, atau diubah dalam buffer edit akan menyebabkan pesan informasi ditulis
kepada pengguna. Kondisi berikut akan menyebabkan pesan informasi. Pesan
harus berisi jumlah baris yang ditambahkan, disalin, dihapus, atau diubah, tetapi sebaliknya
tidak ditentukan.

* Sebuah ex or vi perintah editor, selain Buka, merusak, atau visual, yang memodifikasi setidaknya
nilai dari melaporkan edit opsi jumlah baris, dan yang bukan bagian dari ex
global or v perintah, atau ex or vi eksekusi buffer, akan menyebabkan informasi
pesan yang akan ditulis.

* Sebuah ex merenggut or vi y or Y perintah, yang menyalin setidaknya nilai dari melaporkan mengedit
opsi ditambah 1 jumlah baris, dan yang bukan merupakan bagian dari ex global or v perintah, atau
ex or vi eksekusi buffer, akan menyebabkan pesan informasi ditulis.

* Sebuah ex global, v, Buka, merusak, atau visual perintah atau ex or vi eksekusi buffer, yang menambahkan
atau menghapus total setidaknya nilai dari melaporkan edit opsi jumlah baris,
dan yang bukan bagian dari ex global or v perintah, atau ex or vi eksekusi penyangga,
akan menyebabkan pesan informasi ditulis. (Misalnya, jika 3 baris adalah
ditambahkan dan 8 baris dihapus selama ex visual perintah, 5 akan menjadi angka yang dibandingkan
terhadap melaporkan edit opsi setelah perintah selesai.)

gulir, scr
[Default (jumlah baris dalam tampilan 1)/2]

Nilai dari gulir opsi edit akan menentukan jumlah baris yang digulir oleh ex
-D dan z perintah. Untuk vi -D dan -U perintah, itu akan menjadi
jumlah baris awal untuk digulir ketika tidak ada sebelumnya -D atau -U perintah
telah dieksekusi.

bagian
[Default di lokal POSIX NHSHH HUnhsh]

Grafik bagian opsi edit akan menentukan batas bagian tambahan untuk terbuka dan
perintah mode visual. Itu bagian opsi edit dapat diatur ke string karakter yang terdiri dari
dari nol atau lebih pasangan karakter; itu akan menjadi kesalahan untuk mengaturnya ke angka ganjil
karakter.

kulit, sh
[Default dari variabel lingkungan SHELL]

Nilai opsi ini harus berupa string. Default akan diambil dari SHELL
variabel lingkungan. jika SHELL variabel lingkungan nol atau kosong, the sh (Lihat sh)
utilitas akan menjadi default.

lebar geser, sw
[Awal 8]

Nilai opsi ini akan memberikan lebar dalam kolom dari tingkat lekukan yang digunakan
selama autoindentation dan dengan perintah shift (< dan >).

pertandingan pertunjukkan, sm
[Bawaan tidak disetel]

Fungsionalitas yang dijelaskan untuk pertandingan pertunjukan opsi edit tidak perlu didukung di blok-
terminal mode atau terminal dengan kemampuan yang tidak memadai.

If pertandingan pertunjukan diatur, dalam mode terbuka atau visual, ketika a ')' or '}' diketik, jika cocok
'(' or '{' saat ini terlihat di layar, pencocokan '(' or '{' akan ditandai
memindahkan kursor ke lokasinya untuk waktu yang tidak ditentukan.

mode pertunjukan
[Bawaan tidak disetel]

If mode pertunjukan diatur, dalam mode terbuka atau visual, mode saat ini yang digunakan editor harus
ditampilkan pada baris terakhir tampilan. Mode perintah dan mode input teks harus
dibedakan; mode lain yang tidak ditentukan dan informasi yang ditentukan implementasi mungkin
ditampilkan.

buka perlahan
[Bawaan tidak disetel]

If buka perlahan diatur selama mode input teks terbuka dan visual, editor tidak boleh memperbarui
bagian dari tampilan selain kolom baris tampilan yang menampilkan karakter
dimasukkan oleh pengguna (lihat Memasukkan mode Perintah in vi).

tab berhenti, ts
[Awal 8]

Nilai opsi edit ini akan menentukan batas kolom yang digunakan oleh a dalam
tampilan (lihat cetak otomatis, ap dan Memasukkan mode Perintah in vi).

panjang tag, tl
[Nol default]

Nilai opsi edit ini akan menentukan jumlah maksimum karakter yang
dianggap signifikan dalam nama tag yang ditentukan pengguna dan dalam nama tag dari tag
mengajukan. Jika nilainya nol, semua karakter di kedua nama tag harus signifikan.

tag
[Bawaan melihat teks]

Nilai opsi edit ini harus berupa string dari -nama jalur file yang dibatasi
digunakan oleh label memerintah. Nilai default tidak ditentukan.

istilah
[Default dari variabel lingkungan JANGKA]

Nilai opsi edit ini harus berupa string. Default akan diambil dari JANGKA
variabel di lingkungan. jika JANGKA variabel lingkungan kosong atau nol, the
default tidak ditentukan. Editor harus menggunakan nilai opsi edit ini untuk menentukan
jenis perangkat tampilan.

Hasilnya tidak ditentukan jika pengguna mengubah nilai opsi edit istilah setelah
inisialisasi editor.

pendek
[Bawaan tidak disetel]

If pendek diatur, pesan kesalahan mungkin kurang bertele-tele. Namun, kecuali peringatan ini,
pesan kesalahan tidak ditentukan. Selain itu, tidak semua pesan kesalahan perlu diubah untuk
pengaturan yang berbeda dari opsi ini.

memperingatkan
[Bawaan set]

If memperingatkan diatur, dan konten buffer edit telah dimodifikasi sejak itu
terakhir benar-benar ditulis, editor harus menulis pesan peringatan sebelum tertentu !
perintah (lihat Melarikan diri).

jendela
[Bawaan melihat teks]

Nilai yang digunakan dalam mode terbuka dan visual, oleh -Pita -F perintah, dan, dalam
mode visual, untuk menentukan jumlah garis yang ditampilkan saat layar dicat ulang.

Jika w opsi baris perintah tidak ditentukan, nilai default harus disetel ke
nilai dari LINES variabel lingkungan. jika LINES variabel lingkungan kosong atau
null, defaultnya adalah jumlah baris dalam tampilan dikurangi 1.

Pengaturan jendela edit opsi ke nol atau ke nilai yang lebih besar dari jumlah baris di
tampilan minus 1 (baik secara eksplisit atau berdasarkan w pilihan atau LINES lingkungan Hidup
variabel) akan menyebabkan jendela opsi edit untuk disetel ke jumlah baris di
tampilan minus 1.

Baud rate dari jalur terminal dapat mengubah default dalam implementasi yang ditentukan
cara.

batas bungkus, wm
[Awal 0]

Jika nilai opsi edit ini adalah nol, itu tidak akan berpengaruh.

Jika tidak di lokal POSIX, efek opsi edit ini ditentukan oleh implementasi.

Jika tidak, itu harus menentukan sejumlah kolom dari margin akhir terminal.

Selama mode input teks terbuka dan visual, untuk setiap karakter di mana setiap bagian dari
karakter ditampilkan dalam kolom yang kurang dari batas akhir kolom dari akhir
margin garis tampilan, editor akan berperilaku sebagai berikut:

1. Jika karakter yang memicu event ini adalah a , itu, dan semua yang mendahuluinya
karakter pada baris saat ini yang dimasukkan selama eksekusi saat ini
perintah input teks, harus dibuang, dan editor akan berperilaku seolah-olah pengguna telah
memasuki satu sebagai gantinya. Selain itu, jika karakter yang dimasukkan pengguna berikutnya adalah
sebuah , itu harus dibuang juga.

2. Sebaliknya, jika ada satu atau lebih karakter di baris saat ini segera
mendahului kelompok terakhir dari non- karakter yang dimasukkan selama
eksekusi perintah input teks saat ini, karakter harus
diganti seolah-olah pengguna telah memasukkan satu sebagai gantinya.

Jika indentasi otomatis opsi edit diatur, dan peristiwa yang dijelaskan dalam 1. atau 2. dilakukan,
setiap karakter pada atau setelah kursor pada baris saat ini harus dibuang.

Margin akhir akan ditentukan oleh sistem atau diganti oleh pengguna, sebagai
dijelaskan untuk KOLOM di bagian VARIABEL LINGKUNGAN dan volume Definisi Dasar
dari POSIX.1-2008, Bab 8, Lingkungan Hidup Variabel.

pemindaian, ws
[Bawaan set]

If bungkus scan diatur, pencarian (the ex / or ? alamat, atau mode terbuka dan visual /, ?, N,
dan n perintah) akan membungkus awal atau akhir buffer edit; saat tidak disetel,
pencarian akan berhenti di awal atau akhir buffer edit.

apapun, wa
[Bawaan tidak disetel]

If menulis apa saja diatur, beberapa pemeriksaan dilakukan saat menjalankan ex menulis perintah
akan dihambat, seperti yang dijelaskan dalam opsi editor tulis otomatis.

EXIT STATUS


Nilai keluar berikut harus dikembalikan:

0 Berhasil menyelesaikan.

>0 Terjadi kesalahan.

KONSEKUENSI OF GALAT


Ketika terjadi kesalahan dan input standar bukan file perangkat terminal, ex
tidak akan menulis file atau kembali ke mode perintah atau input teks, dan akan diakhiri dengan
status keluar bukan nol.

Jika tidak, ketika kesalahan yang tidak dapat dipulihkan ditemukan, itu akan setara dengan SIGHUP
peristiwa asinkron.

Jika tidak, ketika terjadi kesalahan, editor akan berperilaku seperti yang ditentukan dalam perintah
baris Penguraian in ex.

Grafik berikut bagian adalah informatif.

APLIKASI PENGGUNAAN


Jika sinyal SIGSEGV diterima saat ex sedang menyimpan file, file tersebut mungkin tidak
berhasil disimpan.

Grafik berikutnya perintah dapat menerima lebih dari satu file, sehingga penggunaan seperti:

berikutnya `l [abc]*`

adalah benar; itu tidak akan berlaku untuk mengedit or Baca baca perintah, misalnya, karena mereka
mengharapkan hanya satu file dan hasil yang tidak ditentukan terjadi.

CONTOH


Tidak ada.

ALASAN


Grafik ex/vi spesifikasi didasarkan pada praktik historis yang ditemukan di 4 BSD dan Sistem
V implementasi dari ex dan vi.

A terbatas editor (keduanya sejarah merah utilitas dan modifikasi untuk ex) adalah
dipertimbangkan dan ditolak untuk dimasukkan. Tidak ada opsi yang memberikan tingkat keamanan yang
mungkin diharapkan oleh pengguna.

Diakui bahwa ex mode visual dan fitur terkait akan sulit, jika tidak
tidak mungkin, untuk diimplementasikan dengan memuaskan pada terminal mode blok, atau terminal tanpa
segala bentuk pengalamatan kursor; dengan demikian, bukan merupakan persyaratan wajib bahwa fitur tersebut
harus bekerja di semua terminal. Ini adalah niat, bagaimanapun, bahwa ex implementasi
harus menyediakan kemampuan lengkap pada semua terminal yang mampu mendukungnya.

Opsi
Grafik c pengganti untuk +Command terinspirasi oleh e pilihan dari sed. Secara historis, semua
perintah seperti itu (lihat mengedit dan berikutnya juga) dieksekusi dari baris terakhir suntingan
penyangga. Ini berarti, misalnya, bahwa "+/pola" akan gagal kecuali bungkus scan Option
telah dipasang. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis. Itu +Command pilihannya adalah
tidak lagi ditentukan oleh POSIX.1-2008 tetapi mungkin ada di beberapa implementasi.
Secara historis, beberapa implementasi membatasi ex perintah yang dapat didaftar sebagai bagian
dari argumen baris perintah. Untuk konsistensi, POSIX.1-2008 tidak mengizinkan ini
pembatasan.

Dalam implementasi historis editor, R pilihan (dan dibaca saja opsi edit)
hanya mencegah penimpaan file; menambahkan ke file masih diizinkan, pemetaan
longgar ke dalam csh noclobber variabel. Beberapa implementasi, bagaimanapun, tidak mengikuti
semantik ini, dan dibaca saja tidak mengizinkan penambahan juga. POSIX.1-2008 mengikuti
praktik terakhir, percaya bahwa itu adalah makna yang lebih jelas dan intuitif dari dibaca saja.

Grafik s opsi menekan semua umpan balik pengguna interaktif dan berguna untuk mengedit skrip
dalam pekerjaan batch. Daftar efek spesifik adalah praktik sejarah. Tipe terminal
``tidak mampu mendukung mode terbuka dan visual'' secara historis disebut ``bodoh''.

Grafik t pilihan diperlukan karena ctag utilitas muncul di POSIX.1-2008 dan
opsi tersedia di semua implementasi historis dari ex.

Secara historis, ex dan vi utilitas diterima x opsi, yang melakukan enkripsi berdasarkan
algoritma yang ditemukan dalam sejarah ruang bawah tanah kegunaan. NS x opsi untuk enkripsi, dan
terkait ruang bawah tanah utilitas, dihilangkan karena algoritma yang digunakan tidak dapat ditentukan dan
undang-undang kontrol ekspor beberapa negara mempersulit ekspor kriptografi
teknologi. Selain itu, secara historis tidak memberikan tingkat keamanan yang pengguna
mungkin mengharapkan.

Standar Memasukkan
Kondisi akhir file tidak sama dengan karakter akhir file. Akhir yang umum-
karakter berkas, -D, secara historis adalah ex perintah.

Tidak ada panjang garis maksimum dalam implementasi historis dari ex. Secara khusus, seperti itu
diuraikan dalam potongan, alamat memiliki panjang maksimum yang berbeda dari nama file.
Selanjutnya, ukuran buffer baris maksimum dinyatakan sebagai BUFSIZ, yang panjangnya berbeda
pada sistem yang berbeda. Versi ini memilih nilai {LINE_MAX} untuk menerapkan yang wajar
pembatasan penggunaan portabel dari ex dan untuk membantu penulis test suite dalam pengembangan mereka
tes realistis yang menggunakan batas ini.

Memasukkan File
Itu adalah keputusan eksplisit oleh pengembang standar bahwa a ditambahkan ke mana saja
file kurang satu. Diyakini bahwa fitur ini dari ex dan vi diandalkan oleh pengguna di
untuk membuat file teks tidak memiliki trailing lebih portabel. Diakui bahwa
ini akan memerlukan opsi atau ekstensi yang ditentukan pengguna untuk implementasi yang mengizinkan ex
dan vi untuk mengedit file jenis selain teks jika file tersebut tidak diidentifikasi oleh
sistem. Disepakati bahwa kemampuan untuk mengedit file jenis arbitrer dapat berguna,
tetapi itu tidak dianggap perlu untuk mengamanatkan bahwa dan ex or vi implementasi diperlukan
untuk menangani file selain file teks.

Paragraf di bagian INPUT FILES, ``Secara default, ...'', dimaksudkan untuk menutup
masalah keamanan lama di ex dan vi; yang dari ``modeline'' atau ``modelines''
opsi edit. Fitur ini memungkinkan setiap baris dalam lima baris pertama atau terakhir dari file
berisi string "mantan:" or "vi:" (dan, rupanya, "Ei:" or "vx:") menjadi garis
berisi perintah editor, dan ex menafsirkan semua teks hingga berikutnya ':' atau
sebagai perintah. Pertimbangkan konsekuensi, misalnya, dari pengguna yang tidak curiga menggunakan ex or
vi sebagai editor saat membalas pesan email di mana baris seperti:

mantan:! rm rf :

muncul di baris tanda tangan. Pengembang standar sangat percaya bahwa editor
seharusnya tidak secara default menafsirkan baris file apa pun. Vendor sangat disarankan untuk menghapus
fitur ini dari implementasi mereka dari ex dan vi.

Asinkron Acara
Maksud dari frasa ``penulisan lengkap'' adalah agar seluruh buffer edit ditulis
ke penyimpanan yang stabil. Catatan mengenai file-file sementara dimaksudkan untuk implementasi yang
gunakan file sementara untuk mengedit buffer yang tidak disebutkan namanya oleh pengguna.

Secara historis, SIGQUIT diabaikan oleh ex, tapi setara dengan Q perintah dalam visual
mode; yaitu, keluar dari mode visual dan masuk ex mode. POSIX.1-2008 mengizinkan, tetapi tidak
tidak memerlukan, perilaku ini. Secara historis, SIGINT sering digunakan oleh vi pengguna untuk dihentikan
mode masukan teks ( –C seringkali lebih mudah dimasuki daripada ). Beberapa implementasi
of vi memperingatkan terminal tentang acara ini, dan beberapa tidak. POSIX.1-2008 mensyaratkan bahwa
SIGINT berperilaku identik dengan , dan bahwa terminal tidak diperingatkan.

Secara historis, menangguhkan ex editor selama mode input teks mirip dengan SIGINT, karena
baris yang sudah selesai dipertahankan, tetapi sebagian baris dibuang, dan editor kembali ke
modus perintah. POSIX.1-2008 tidak membahas masalah ini; implementasi didorong untuk
ikuti praktik sejarah, jika memungkinkan.

Secara historis, vi editor tidak memperlakukan SIGTSTP sebagai peristiwa asinkron, dan itu
oleh karena itu tidak mungkin untuk menangguhkan editor dalam mode input teks visual. Ada dua besar
alasan untuk ini. Yang pertama adalah bahwa SIGTSTP adalah sinyal siaran pada sistem UNIX, dan
rantai peristiwa di mana shell eksekutifadalah aplikasi yang kemudian eksekutifs vi biasanya disebabkan
kebingungan untuk status terminal jika SIGTSTP dikirim ke grup proses di
cara default. Yang kedua adalah sebagian besar implementasi UNIX kutukan paket berhasil
tidak menangani SIGTSTP dengan aman, dan penerimaan SIGTSTP pada waktu yang salah akan menyebabkannya
menabrak. POSIX.1-2008 tidak membahas masalah ini; implementasi didorong untuk mengobati
penangguhan sebagai acara asinkron jika memungkinkan.

Secara historis, modifikasi pada buffer edit yang dibuat sebelum SIGINT menginterupsi operasi
dipertahankan; yaitu, di mana saja dari nol hingga semua baris yang akan dimodifikasi mungkin memiliki
telah dimodifikasi pada saat SIGINT tiba. Perubahan ini tidak dibuang oleh
kedatangan SIGINT. POSIX.1-2008 mengizinkan perilaku ini, dengan mencatat bahwa merusak perintah adalah
diperlukan untuk dapat membatalkan perintah yang diselesaikan sebagian ini.

Tindakan yang diambil untuk sinyal selain SIGINT, SIGCONT, SIGHUP, dan SIGTERM adalah
tidak ditentukan karena beberapa implementasi mencoba menyimpan buffer edit dalam keadaan yang berguna
ketika sinyal lain diterima.

Standar error
Untuk ex/vi, pesan diagnostik adalah pesan yang dilaporkan sebagai hasil dari upaya yang gagal
untuk memanggil ex or vi, seperti opsi yang tidak valid atau sumber daya yang tidak mencukupi, atau abnormal
kondisi terminasi. Pesan diagnostik tidak boleh dikacaukan dengan pesan kesalahan
dihasilkan oleh perintah pengguna yang tidak pantas atau ilegal.

Inisialisasi in ex dan vi
Jika ex perintah (selain cd, chdir, atau sumber) memiliki argumen nama file, salah satu atau keduanya
nama jalur alternatif dan saat ini akan ditetapkan. Secara informal, mereka ditetapkan sebagai berikut:

1. Jika ex perintah adalah salah satu yang menggantikan isi buffer edit, dan itu
berhasil, nama path saat ini akan disetel ke argumen nama file (yang pertama
argumen nama file dalam kasus berikutnya perintah) dan nama jalur alternatifnya adalah
atur ke nama jalur saat ini sebelumnya, jika ada.

2. Dalam hal file bentuk baca/tulis dari Baca baca dan menulis perintah, jika ada
tidak ada nama jalur saat ini, nama jalur saat ini akan disetel ke argumen nama file.

3. Jika tidak, nama path alternatif akan disetel ke argumen nama file.

Sebagai contoh, : sunting foo dan :pulih foo, ketika berhasil, atur nama jalur saat ini, dan,
jika ada nama jalur saat ini sebelumnya, nama jalur alternatif. Perintah-perintahnya :menulis,
!memerintah, dan : sunting tidak mengatur nama jalur saat ini atau alternatif. jika : sunting foo
perintah gagal karena alasan tertentu, nama jalur alternatif akan ditetapkan. Itu Baca baca dan
menulis perintah mengatur nama jalur alternatif ke fillet argumen, kecuali arus
pathname tidak disetel, dalam hal ini mereka menyetel nama path saat ini ke fillet argumen.
Nama jalur alternatif tidak secara historis ditetapkan oleh :sumber memerintah. POSIX.1-2008
membutuhkan kesesuaian dengan praktik sejarah. Implementasi menambahkan perintah yang mengambil
nama file sebagai argumen didorong untuk mengatur nama jalur alternatif seperti yang dijelaskan di sini.

Secara historis, ex dan vi membaca .exrc file di $ HOME direktori dua kali, jika editor
dieksekusi di $ HOME direktori. POSIX.1-2008 melarang perilaku ini.

Secara historis, 4 BSD ex dan vi membaca $ HOME dan lokal .exrc file jika dimiliki
dengan ID asli pengguna, atau sumber dari mana saja opsi telah ditetapkan, terlepas dari yang lain
pertimbangan. Ini adalah masalah keamanan karena dimungkinkan untuk menempatkan UNIX normal
perintah sistem di dalam a .exrc mengajukan. POSIX.1-2008 tidak menentukan sumber dari mana saja pilihan,
dan implementasi historis didorong untuk menghapusnya.

Grafik .exrc file harus dimiliki oleh ID asli pengguna, dan tidak dapat ditulis oleh orang lain
daripada pemiliknya. Pengecualian hak istimewa yang sesuai dimaksudkan untuk mengizinkan pengguna untuk
memperoleh hak istimewa, tetapi terus menggunakan .exrc file di direktori home mereka.

Sistem V Rilis 3.2 dan yang lebih baru vi implementasi menambahkan opsi [tidak]exrc. Perilaku
apakah itu lokal? .exrc file hanya-baca jika kecuali pilihan diatur. Default untuk
kecuali opsi tidak aktif, jadi secara default, lokal .exrc file tidak dibaca. Masalah ini adalah
dimaksudkan untuk dipecahkan adalah bahwa Sistem V mengizinkan pengguna untuk memberikan file, jadi tidak ada
kemungkinan kepemilikan atau tes kemampuan menulis untuk memastikan bahwa file tersebut aman. Ini masih
masalah keamanan pada sistem di mana pengguna dapat memberikan file, tetapi tidak ada apa-apa
tambahan yang dapat dilakukan POSIX.1-2008. Pengecualian yang ditentukan implementasi dimaksudkan untuk
izinkan grup untuk memiliki lokal .exrc file yang dibagikan oleh pengguna, dengan membuat pengguna semu
untuk memiliki file yang dibagikan.

POSIX.1-2008 tidak menyebutkan seluruh sistem ex dan vi file start-up. Sementara mereka ada di
beberapa implementasi dari ex dan vi, mereka tidak ada dalam implementasi apa pun
dianggap praktik historis oleh POSIX.1-2008. Implementasi yang memiliki file seperti itu
harus menggunakannya hanya jika mereka dimiliki oleh ID pengguna asli atau pengguna yang sesuai (untuk
misalnya, root pada sistem UNIX) dan jika tidak dapat ditulis oleh pengguna selain mereka
pemilik. File start-up seluruh sistem harus dibaca sebelum KELUAR variabel, $HOME/.exrc,
atau lokal .exrc file dievaluasi.

Secara historis, setiap ex perintah bisa dimasukkan di KELUAR variabel atau .exrc file,
meskipun yang mengharuskan buffer edit sudah berisi baris teks secara umum
menyebabkan implementasi historis editor turun inti. POSIX.1-2008 mensyaratkan bahwa
Apa pun ex perintah diizinkan di KELUAR variabel dan .exrc file, untuk kesederhanaan
spesifikasi dan konsistensi, meskipun banyak dari mereka jelas akan gagal di bawah banyak
keadaan.

Inisialisasi isi buffer edit menggunakan frasa ``efeknya harus
be'' berkaitan dengan berbagai ex perintah. Maksud dari frasa ini adalah mengedit buffer
konten yang dimuat selama fase inisialisasi tidak akan hilang; yaitu, memuat hasil edit
buffer harus gagal jika .exrc file membaca isi file dan tidak
selanjutnya tulis buffer edit. Maksud tambahan dari frasa ini adalah untuk menentukan bahwa
baris dan kolom awal saat ini diatur seperti yang ditentukan untuk individu ex perintah.

Secara historis, t opsi berperilaku seolah-olah pencarian tag adalah a +Command; yaitu, itu
dieksekusi dari baris terakhir file yang ditentukan oleh tag. Ini menghasilkan pencarian
gagal jika polanya adalah pola pencarian maju dan bungkus scan opsi edit tidak
mengatur. POSIX.1-2008 tidak mengizinkan perilaku ini, yang mengharuskan pencarian tag
pola dilakukan pada seluruh file, dan, jika tidak ditemukan, baris saat ini disetel
ke lokasi yang lebih masuk akal dalam file.

Secara historis, buffer edit kosong disajikan untuk pengeditan saat file tidak ditentukan oleh
pengguna tidak disebutkan namanya. Ini diizinkan oleh POSIX.1-2008; namun, implementasinya adalah
didorong untuk memberi pengguna nama file sementara untuk buffer ini karena memungkinkan mereka
penggunaan ex perintah yang menggunakan nama jalur saat ini selama sesi edit sementara.

Secara historis, file yang ditentukan menggunakan t opsi bukan bagian dari argumen saat ini
Daftar. Praktik ini diizinkan oleh POSIX.1-2008; namun, implementasi dianjurkan
untuk memasukkan namanya dalam daftar argumen saat ini untuk konsistensi.

Secara historis, c perintah umumnya tidak dieksekusi sampai file yang sudah ada
telah diedit. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis ini. Perintah itu
dapat menyebabkan c perintah yang akan dieksekusi termasuk ex perintah mengedit, berikutnya, memulihkan,
rewind, dan label, Dan vi perintah -^ dan -]. Secara historis, membaca
file ke buffer edit tidak menyebabkan c perintah yang akan dieksekusi (meskipun mungkin
atur nama jalur saat ini) dengan pengecualian yang menyebabkan c perintah untuk menjadi
dieksekusi jika: editor ada di ex mode, buffer edit tidak memiliki nama jalur saat ini, edit
buffer kosong, dan belum ada perintah baca yang dicoba. Untuk konsistensi dan
kesederhanaan spesifikasi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Secara historis, r opsinya sama dengan sesi edit normal jika tidak ada pemulihan
informasi yang tersedia untuk file tersebut. Ini memungkinkan pengguna untuk memasukkan:

vi r *.C

dan memulihkan file apa pun yang dapat dipulihkan. Dalam beberapa implementasi, pemulihan adalah
dicoba hanya pada file pertama bernama, dan file tersebut tidak dimasukkan ke dalam argumen
Daftar; di lain, pemulihan dicoba untuk setiap file bernama. Selain itu, beberapa sejarah
implementasi diabaikan r if t ditentukan atau tidak mendukung baris perintah fillet
argumen dengan t pilihan. Untuk konsistensi dan kesederhanaan spesifikasi,
POSIX.1-2008 melarang kasus khusus ini, dan mengharuskan pemulihan dilakukan
pertama kali setiap file diedit.

Secara historis, vi diinisialisasi ` dan ' tanda, tapi ex tidak. Ini berarti bahwa jika
perintah pertama di ex modus adalah visual atau jika ada ex perintah dieksekusi terlebih dahulu (misalnya,
vi +10 fillet), vi dimasukkan tanpa tanda diinisialisasi. Karena standar
pengembang percaya bahwa tanda tersebut secara umum berguna, dan untuk konsistensi dan kesederhanaan
spesifikasi, POSIX.1-2008 mengharuskan mereka selalu diinisialisasi jika dalam keadaan terbuka atau
mode visual, atau jika dalam ex mode dan buffer edit tidak kosong. Tidak menginisialisasi dalam ex
mode jika buffer edit kosong adalah praktik historis; Namun, itu selalu
memungkinkan untuk mengatur (dan menggunakan) tanda di buffer edit kosong dalam mode edit terbuka dan visual
sesi.

Pengalamatan
Secara historis, ex dan vi menerima formulir pengalamatan tambahan '\/' dan '\?'. Mereka
setara dengan "//" dan "??", masing-masing. Mereka tidak diharuskan oleh POSIX.1-2008, sebagian besar
karena tidak ada yang bisa mengingat apakah mereka pernah melakukan sesuatu yang berbeda secara historis.

Secara historis, ex dan vi mengizinkan alamat nol untuk beberapa perintah, dan diizinkan
itu % alamat dalam file kosong untuk orang lain. Untuk konsistensi, POSIX.1-2008 membutuhkan dukungan
untuk yang pertama dalam beberapa perintah yang masuk akal, dan melarangnya sebaliknya. Di
Selain itu, karena POSIX.1-2008 mengharuskan % secara logis setara dengan "1,$", ini
juga didukung jika masuk akal dan sebaliknya tidak diperbolehkan.

Secara historis, % alamat tidak dapat diikuti oleh alamat selanjutnya. Untuk konsistensi
dan kesederhanaan spesifikasi, POSIX.1-2008 mensyaratkan bahwa alamat tambahan harus
didukung.

Semua yang berikut ini valid alamat:

+++ Tiga baris setelah baris saat ini.

/re/− Satu baris sebelum kemunculan berikutnya re.

2 Dua baris sebelum baris saat ini.

3 2 Baris satu (perhatikan alamat negatif perantara).

1 2 3 Baris enam.

Sejumlah alamat dapat diberikan untuk perintah yang mengambil alamat; Misalnya,
"1,2,3,4,5p" mencetak baris 4 dan 5, karena dua adalah jumlah alamat valid terbesar
diterima oleh mencetak memerintah. Ini, dalam kombinasi dengan pembatas,
memungkinkan pengguna untuk membuat perintah berdasarkan pola yang dipesan dalam file. Misalnya,
Command 3;/foo/;+2cetak akan menampilkan baris pertama setelah baris 3 yang berisi pola
foo, ditambah dua baris berikutnya. Perhatikan bahwa alamat 3; harus dievaluasi sebelum
dibuang karena asal penelusuran untuk /foo/ perintah tergantung pada ini.

Secara historis, nilai dapat ditambahkan ke alamat dengan memasukkannya setelah satu atau lebih
karakter; Misalnya, 3 - 5p menulis baris ketujuh dari file, dan /foo/ 5
sama dengan /foo/+5. Namun, hanya nilai absolut yang dapat ditambahkan; Misalnya,
5 /foo/ adalah sebuah kesalahan. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis. Alamat
offset secara terpisah ditentukan dari alamat karena mereka dapat secara historis
disediakan untuk perintah pencarian mode visual.

Secara historis, setiap alamat yang hilang default ke baris saat ini. Ini benar untuk
memimpin dan mengikuti alamat -delimited, dan untuk trailing -dibatasi
alamat. Untuk konsistensi, POSIX.1-2008 membutuhkannya untuk memimpin alamat sebagai
baik.

Secara historis, ex dan vi menerima '^' karakter sebagai alamat dan sebagai offset bendera
untuk perintah. Dalam kedua kasus itu identik dengan '−' karakter. POSIX.1-2008 tidak
mengharuskan atau melarang perilaku ini.

Secara historis, peningkatan pada ekspresi reguler dasar dapat digunakan dalam pengalamatan;
sebagai contoh, '~', '\<', dan '\>'. POSIX.1-2008 membutuhkan kesesuaian dengan sejarah
praktek; yaitu, penggunaan ekspresi reguler itu konsisten, dan reguler itu
peningkatan ekspresi didukung di mana pun ekspresi reguler digunakan.

perintah baris Penguraian in ex
Historis ex penguraian perintah bahkan lebih kompleks daripada yang dijelaskan di sini. POSIX.1-2008
membutuhkan subset dari penguraian perintah yang diyakini oleh pengembang standar
didokumentasikan dan bahwa pengguna dapat diharapkan untuk menggunakannya secara portabel, dan
yang secara historis konsisten antara implementasi. (Fungsi yang dibuang adalah
tidak jelas, paling banter.) Implementasi historis akan membutuhkan perubahan untuk mematuhi
dengan POSIX.1-2008; namun, pengguna tidak diharapkan untuk melihat salah satu dari perubahan ini. Paling
kompleksitas dalam ex parsing adalah untuk menangani tiga kasus penghentian khusus:

1. Itu !, global, v, dan versi filter dari Baca baca dan menulis perintah dibatasi
oleh karakter (bisa berisi karakter yang biasanya
pipa cangkang).

2. Itu ex, mengedit, berikutnya, dan visual dalam mode terbuka dan visual, semua perintah diambil ex perintah,
opsional mengandung karakter, sebagai argumen pertama mereka.

3. Itu s perintah mengambil ekspresi reguler sebagai argumen pertama, dan menggunakan
membatasi karakter untuk membatasi perintah.

Secara historis, karakter dalam +Command argumen dari ex, mengedit, berikutnya,
vi, dan visual perintah, dan di belt hold dan penggantian bagian dari s perintah, apakah
tidak membatasi perintah, dan dalam kasus filter untuk Baca baca dan menulis, Dan !, global,
dan v perintah, mereka tidak membatasi perintah sama sekali. Sebagai contoh, berikut ini
semua perintah valid:

:sunting +25 | s/abc/ABC/file.c
:s/ | /PIPA/
:baca !eja % | berbentuk kolom
:global/pola/p | aku
:s/a/b/ | s/c/h | mengatur

Secara historis, kosong atau baris terisi .exrc file dan sumberd file (dan juga
KELUAR variabel dan ex skrip perintah) diperlakukan sebagai perintah default; itu adalah, mencetak
perintah. POSIX.1-2008 secara khusus mengharuskan mereka diabaikan ketika ditemui di
.exrc dan sumberd file untuk menghilangkan sumber umum kesalahan pengguna baru.

Secara historis, ex perintah dengan beberapa perintah yang berdekatan (atau -dipisahkan) garis vertikal
ditangani dengan aneh ketika dieksekusi dari ex mode. Misalnya perintah ||| <kereta-
return>, ketika kursor berada di baris 1, ditampilkan baris 2, 3, dan 5 dari file. Di
Selain itu, perintah | hanya akan menampilkan baris setelah baris berikutnya, alih-alih
dua baris berikutnya. Yang pertama bekerja lebih logis ketika dieksekusi dari vi mode, dan ditampilkan
baris 2, 3, dan 4. POSIX.1-2008 membutuhkan vi perilaku; yaitu, satu default
perintah dan kenaikan nomor baris untuk setiap pemisah perintah, dan tambahan
karakter setelah pemisah dibuang.

Secara historis, ex diizinkan satu tambahan sebagai karakter komando terkemuka; untuk
contoh, :g/pola/:p adalah perintah yang valid. POSIX.1-2008 menggeneralisasi ini untuk mensyaratkan itu
sejumlah terkemuka karakter dilucuti.

Secara historis, setiap awalan dari hapus perintah bisa diikuti tanpa campur tangan
karakter dengan karakter bendera karena dalam perintah d p, p diartikan sebagai
penyangga p. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Secara historis, k perintah bisa diikuti dengan nama tanda tanpa campur tangan
karakter. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Secara historis, s perintah dapat segera diikuti oleh karakter bendera dan opsi;
sebagai contoh, s/e/E/|s|sgc3p adalah perintah yang valid. Namun, karakter bendera tidak tahan
sendiri; misalnya perintah sp dan s l akan gagal, sedangkan perintah sgp dan s gl
akan berhasil. (Jelas, '#' karakter bendera digunakan sebagai karakter pembatas jika
mengikuti perintah.) Masalah lainnya adalah karakter opsi harus mendahului flag
karakter bahkan ketika perintah sepenuhnya ditentukan; misalnya perintah s/e/E/hal
akan gagal, sedangkan perintah s/e/E/gp akan berhasil. POSIX.1-2008 membutuhkan kesesuaian untuk
praktik sejarah.

Secara historis, nama perintah pertama yang memiliki awalan yang cocok dengan input dari pengguna
adalah perintah yang dieksekusi; Misalnya, ve, ver, dan untuk semua dieksekusi versi perintah.
Perintah berada dalam urutan tertentu, bagaimanapun, sehingga a cocok menambahkan, tidak menyingkat.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis. Pembatasan perintah
urutan pencarian untuk implementasi dengan ekstensi adalah untuk menghindari penambahan perintah seperti
bahwa awalan historis akan gagal berfungsi dengan mudah.

Implementasi historis dari ex dan vi tidak menangani banyak dengan benar ex perintah,
dipisahkan oleh karakter, yang masuk atau keluar dari mode visual atau editor.
Karena implementasi dari vi ada yang tidak menunjukkan mode kegagalan ini, POSIX.1-2008
tidak mengizinkannya.

Persyaratan bahwa nama perintah abjad terdiri dari semua abjad berikut:
karakter hingga karakter non-abjad berikutnya berarti nama perintah abjad
harus dipisahkan dari argumennya oleh satu atau lebih karakter non-abjad, biasanya
sebuah atau '!' karakter, kecuali sebagaimana ditentukan untuk pengecualian, the hapus, k, dan s
perintah.

Secara historis, eksekusi berulang dari ex kegagalan mencetak perintah ( -D, eof,
, ) menghapus karakter yang mendorong dan menampilkan baris berikutnya
tanpa menggulir terminal; yaitu, tepat di bawah garis yang ditampilkan sebelumnya.
Ini memberikan presentasi baris yang lebih bersih dalam file untuk pengguna. POSIX.1-2008
tidak memerlukan perilaku ini karena mungkin tidak mungkin dalam beberapa situasi; Namun,
implementasi sangat dianjurkan untuk menyediakan semantik ini jika memungkinkan.

Secara historis, dimungkinkan untuk mengubah file di tengah-tengah perintah, dan memiliki
sisa perintah yang dieksekusi di file baru; Misalnya:

: sunting +25 file.c | s/abc/ABC/ | 1

adalah perintah yang valid, dan substitusi dicoba di file yang baru diedit.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis. Perintah berikut adalah
contoh yang melatih ex pengurai:

gema 'foo | batang' > berkas1; gema 'foo/bar' > berkas2;
vi
: sunting +1 | s/|/PIPA/ | w file1 | e file2 | 1 | s/\//tebas/ | wq

Secara historis, tidak ada perlindungan dalam implementasi editor yang harus dihindari ex global, v, @,
or * perintah mengubah buffer edit selama eksekusi perintah terkait. Karena
ini hampir selalu mengakibatkan kegagalan besar editor, dan
ada implementasi yang menunjukkan masalah ini, POSIX.1-2008 mengharuskan perubahan itu
buffer edit selama a global or v perintah, atau selama a @ or * perintah yang ada
akan lebih dari satu eksekusi, menjadi kesalahan. Implementasi yang mendukung banyak
edit buffer secara bersamaan sangat dianjurkan untuk menerapkan semantik yang sama untuk
beralih antara buffer juga.

Grafik ex kutipan perintah yang diperlukan oleh POSIX.1-2008 adalah superset dari kutipan dalam sejarah
implementasi editor. Misalnya, secara historis tidak mungkin untuk melarikan diri dari
dalam nama file; Misalnya, : sunting foo\\\ bar akan melaporkan bahwa terlalu banyak nama file
telah dimasukkan untuk perintah edit, dan tidak ada metode untuk melarikan diri a di
argumen pertama dari mengedit, ex, berikutnya, atau visual perintah sama sekali. POSIX.1-2008 diperpanjang
praktik historis, yang mengharuskan perilaku mengutip dibuat konsisten di semua ex
perintah, kecuali untuk peta, buka peta, menyingkat, dan singkat perintah, yang
digunakan secara historis -V bukannya karakter untuk kutipan. Untuk mereka
empat perintah, POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Mengutip backslash di ex adalah non-intuitif. -kabur diabaikan kecuali mereka
melarikan diri dari karakter khusus; misalnya saat tampil fillet perluasan argumen,
tali "\\%" adalah setara dengan '\%', bukan "\arus nama jalur>". Ini bisa membingungkan bagi
pengguna karena biasanya merupakan salah satu karakter yang menyebabkan ekspansi shell menjadi
dilakukan, dan oleh karena itu aturan kutipan shell harus dipertimbangkan.
Umumnya, mengutip karakter hanya dipertimbangkan jika mereka lolos dari karakter khusus, dan
karakter kutipan harus disediakan untuk setiap lapisan penguraian yang karakternya
spesial. Sebagai contoh lain, hanya satu diperlukan untuk '\l' urutan
dalam pola penggantian pengganti, karena karakter 'l' tidak istimewa bagi siapa pun
lapisan parsing di atasnya.

-V mengutip dalam ex sedikit berbeda dari kutipan backslash. dalam empat
perintah dimana -V kutipan berlaku (menyingkat, singkat, peta, dan buka peta), setiap
karakter dapat diloloskan oleh -V apakah itu akan memiliki arti khusus atau tidak.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Implementasi historis editor tidak memerlukan pembatas dalam karakter
kelas yang akan diloloskan; misalnya perintah :S/[/]// pada tali "xxx/yyy" akan
hapus '/' dari tali. POSIX.1-2008 melarang praktik historis ini untuk
konsistensi dan karena menempatkan beban besar pada implementasi dengan mengharuskan itu
pengetahuan tentang ekspresi reguler dibangun ke dalam parser editor.

Secara historis, mengutip karakter dalam ex perintah ditangani secara tidak konsisten. Di
kebanyakan kasus, karakter selalu menghentikan perintah, terlepas dari apa pun
karakter pelarian sebelumnya, karena karakter tidak lolos
karakter untuk sebagian besar ex perintah. Namun, beberapa ex perintah (misalnya, s, peta, dan
singkatan) diizinkan karakter yang harus diloloskan (walaupun dalam kasus peta
dan singkatan, -V karakter lolos dari mereka alih-alih karakter).
Ini benar tidak hanya di baris perintah, tetapi juga .exrc dan sumberfile d. Sebagai contoh,
perintah:

peta = foo batang

akan berhasil, meskipun terkadang sulit untuk mendapatkan -V dan yang dimasukkan
diteruskan ke ex pengurai Untuk konsistensi dan kesederhanaan spesifikasi,
POSIX.1-2008 mengharuskan kemungkinan untuk melarikan diri karakter dalam ex perintah di
setiap saat, menggunakan karakter untuk sebagian besar ex perintah, dan menggunakan -V
karakter untuk peta dan singkatan perintah. Misalnya perintah
mencetakdaftar diperlukan untuk diuraikan sebagai perintah tunggal mencetakdaftar.
Meskipun ini berbeda dari praktik historis, pengembang POSIX.1-2008 percaya itu tidak mungkin
bahwa setiap skrip atau pengguna bergantung pada perilaku historis.

Secara historis, kesalahan dalam perintah yang ditentukan menggunakan c pilihan tidak menyebabkan sisanya
dari c perintah untuk dibuang. POSIX.1-2008 melarang ini untuk konsistensi dengan
kunci yang dipetakan, @, global, sumber, dan v perintah, KELUAR variabel lingkungan, dan
itu .exrc file.

Memasukkan Mengedit in ex
Salah satu penggunaan umum dari sejarah ex editor melalui koneksi jaringan yang lambat.
Editor yang berjalan dalam mode kanonik dapat membutuhkan jauh lebih sedikit lalu lintas ke dan dari, dan jauh lebih sedikit
memproses, mesin host, serta lebih mudah mendukung terminal mode blok.
Untuk alasan ini, POSIX.1-2008 mensyaratkan bahwa: ex diimplementasikan menggunakan input mode kanonik
pengolahan, seperti yang dilakukan secara historis.

POSIX.1-2008 tidak memerlukan 4 karakter pengeditan input BSD historis ``penghapusan kata''
atau `` literal berikutnya''. Untuk alasan ini, tidak ditentukan bagaimana mereka ditangani oleh ex,
meskipun mereka harus memiliki efek yang diperlukan. Implementasi yang menyelesaikannya setelah
baris telah diakhiri menggunakan a atau -M karakter, dan implementasi yang
mengandalkan dukungan terminal sistem yang mendasari untuk pemrosesan ini, keduanya sesuai.
Implementasi sangat disarankan untuk menggunakan fungsionalitas sistem yang mendasarinya, jika ada
mungkin, untuk kompatibilitas dengan antarmuka input teks sistem lainnya.

Secara historis, ketika eof karakter digunakan untuk mengurangi indentasi otomatis tingkat, itu
kursor dipindahkan untuk menampilkan akhir baru dari indentasi otomatis karakter, tetapi tidak memindahkan
kursor ke baris baru, juga tidak menghapus -D karakter dari garis.
POSIX.1-2008 tidak menentukan bahwa kursor tetap berada pada baris yang sama atau sisa dari
garis dihapus; namun, implementasi sangat dianjurkan untuk memberikan yang terbaik
kemungkinan antarmuka pengguna; yaitu, kursor harus tetap pada baris yang sama, dan setiap
-Karakter D pada baris harus dihapus.

POSIX.1-2008 tidak memerlukan karakter pengeditan input 4 BSD historis ``cetak ulang'',
secara tradisional -R, yang menampilkan kembali input saat ini dari pengguna. Untuk ini
alasan, dan karena fungsionalitas tidak dapat diimplementasikan setelah saluran selesai
dihentikan oleh pengguna, POSIX.1-2008 tidak membuat persyaratan tentang fungsi ini.
Implementasi sangat disarankan untuk membuat fungsionalitas historis ini tersedia, jika
mungkin.

Secara historis, –Q tidak melakukan fungsi literal berikutnya dalam ex, seperti yang terjadi di vi.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis untuk menghindari pelanggaran historis ex
skrip dan .exrc file.

eof
apakah eof karakter segera memodifikasi indentasi otomatis karakter dalam prompt adalah
dibiarkan tidak ditentukan sehingga implementasi dapat menyesuaikan dengan adanya sistem yang melakukannya
tidak mendukung fungsi ini. Implementasi didorong untuk memodifikasi jalur dan
segera tampilkan kembali, jika memungkinkan.

Spesifikasi penanganan eof karakter berbeda dari praktik sejarah
hanya di itu eof karakter tidak dibuang jika mengikuti karakter normal dalam teks
memasukkan. Secara historis, mereka selalu dibuang.

perintah Deskripsi in ex
Secara historis, beberapa perintah (misalnya, global, v, visual, s, menulis, wq, merenggut, !, <,
>, &, dan ~) dapat dieksekusi dalam file kosong (yaitu, alamat default adalah 0), atau
alamat eksplisit yang diizinkan 0 (misalnya, 0 adalah alamat yang valid, atau 0,0 adalah alamat yang valid
jangkauan). Alamat 0, atau eksekusi perintah dalam file kosong, hanya masuk akal untuk
perintah yang menambahkan teks baru ke buffer edit atau perintah tulis (karena pengguna mungkin ingin
menulis file kosong). POSIX.1-2008 memerlukan perilaku ini untuk perintah tersebut dan melarangnya
jika tidak, untuk konsistensi dan kesederhanaan spesifikasi.

Hitungan ke ex perintah telah dikoreksi secara historis menjadi tidak lebih besar dari yang terakhir
baris dalam file; misalnya, dalam file lima baris, perintah 1,6 print akan gagal, tapi
Command 1cetak300 akan berhasil. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Secara historis, penggunaan bendera di ex perintah bisa menjadi tidak jelas. Sejarah umum
praktek seperti yang dijelaskan oleh POSIX.1-2008, tetapi ada beberapa kasus khusus. Untuk
misalnya, daftar, jumlah, dan mencetak perintah mengabaikan offset alamat tambahan; untuk
contoh, 3p +++# akan menampilkan baris 3, dan 3 akan menjadi baris saat ini setelah eksekusi
dari perintah. Itu Buka dan visual perintah mengabaikan offset trailing dan
bendera tertinggal. Juga, bendera yang ditentukan untuk Buka dan visual perintah berinteraksi dengan buruk
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. daftar edit opsi, dan atur lalu hapus pengaturannya selama buka/visual
sesi akan menyebabkan vi untuk berhenti menampilkan garis dalam format yang ditentukan. Untuk konsistensi
dan kesederhanaan spesifikasi, POSIX.1-2008 tidak mengizinkan pengecualian ini untuk
aturan umum.

POSIX.1-2008 menggunakan kata salinan di beberapa tempat ketika membahas buffer. Ini bukan
dimaksudkan untuk mengimplikasikan implementasi.

Secara historis, ex pengguna tidak dapat menentukan buffer numerik karena ambiguitas ini
akan menyebabkan; misalnya dalam perintah 3 hapus 2, tidak jelas apakah 2 adalah buffer
nama atau menghitung. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis secara default, tetapi
tidak menghalangi ekstensi.

Secara historis, isi buffer yang tidak disebutkan namanya sering dibuang setelah perintah
yang tidak secara eksplisit mempengaruhinya; misalnya saat menggunakan mengedit perintah untuk beralih
file. Untuk konsistensi dan kesederhanaan spesifikasi, POSIX.1-2008 tidak mengizinkan ini
tingkah laku.

Grafik ex utilitas tidak secara historis memiliki akses ke buffer numerik, dan, lebih jauh lagi,
menghapus baris di ex tidak mengubah isinya. Misalnya, jika, setelah melakukan penghapusan
in vi, pengguna beralih ke ex, melakukan penghapusan lagi, lalu beralih kembali ke vi, yang
isi buffer numerik tidak akan berubah. POSIX.1-2008 membutuhkan kesesuaian
ke praktik sejarah. Buffer numerik dijelaskan dalam ex utilitas untuk
membatasi deskripsi buffer ke satu lokasi di POSIX.1-2008.

Metakarakter yang memicu ekspansi shell di fillet argumen cocok dengan sejarah
praktek, seperti halnya metode untuk melakukan ekspansi shell. Implementasi ingin memberikan
pengguna dengan fleksibilitas untuk mengubah set metakarakter didorong untuk memberikan a
shellmeta opsi edit string.

Secara historis, ex perintah dieksekusi dari vi menyegarkan layar saat tidak sepenuhnya
perlu melakukannya; Misalnya, :!tanggal > / dev / null tidak memerlukan penyegaran layar karena
keluaran UNIX tanggal perintah hanya membutuhkan satu baris layar.
POSIX.1-2008 mengharuskan layar di-refresh jika telah ditimpa, tetapi membuat
tidak ada persyaratan tentang bagaimana implementasi harus membuat penentuan itu.
Implementasi mungkin meminta dan menyegarkan layar.

Singkatan
Praktik sejarah adalah karakter yang dimasukkan sebagai bagian dari singkatan
penggantian dikenakan peta ekspansi, pertandingan pertunjukan opsi edit, lebih lanjut
perluasan singkatan, dan sebagainya; yaitu, mereka secara logis didorong ke terminal
antrian input, dan bukan pengganti yang sederhana. POSIX.1-2008 membutuhkan kesesuaian untuk
praktik sejarah. Praktik sejarah adalah bahwa setiap kali karakter non-kata (yang memiliki
tidak lolos oleh -V) dimasukkan setelah karakter kata, vi akan memeriksa
singkatan. Cek didasarkan pada jenis karakter yang dimasukkan sebelum kata
karakter pasangan kata/non-kata yang memicu cek. Kata karakter dari
pasangan kata/non-kata yang memicu cek dan semua karakter dimasukkan sebelum pemicu
pasangan yang bertipe itu termasuk dalam cek, kecuali
karakter, yang selalu dibatasi singkatannya.

Ini berarti bahwa, agar singkatan berfungsi, lhs harus diakhiri dengan karakter kata,
tidak boleh ada transisi dari karakter kata ke karakter non-kata (atau wakil sebaliknya) Selain daripada
antara karakter terakhir dan berikutnya-ke-terakhir di lhs, dan tidak mungkin ada
karakter dalam lhs. Selain itu, karena aturan kutipan sejarah, itu
tidak mungkin untuk memasukkan literal -V di lhs. POSIX.1-2008 membutuhkan kesesuaian
ke praktik sejarah. Implementasi historis tidak memberi tahu pengguna saat singkatan
yang tidak pernah bisa digunakan dimasukkan; implementasi sangat dianjurkan untuk melakukannya.

Misalnya, singkatan berikut akan berfungsi:

:ab (p REPLACE
:ab p REPLACE
:ab ((P REPLACE

Singkatan berikut tidak akan berfungsi:

:ab ( REPLACE
:ab (hal REPLACE

Praktek sejarah adalah bahwa kata-kata di vi baris perintah titik dua tunduk pada
perluasan singkatan, termasuk argumen ke singkatan (dan yang lebih menarik) adalah
singkat memerintah. Karena ada implementasi yang tidak melakukan perluasan singkatan
untuk argumen pertama untuk perintah-perintah itu, ini diizinkan, tetapi tidak diharuskan, oleh
POSIX.1-2008. Namun, urutan berikut:

:ab foo bar
:ab foo dasar

mengakibatkan penambahan singkatan dari "baz" untuk tali "batang" dalam sejarah
ex/vi, dan urutannya:

:ab foo1 bar
:ab foo2 bar
:tidak disingkat foo2

dihapus singkatannya "foo1", tidak "foo2". Perilaku ini tidak diizinkan oleh
POSIX.1-2008 karena mereka jelas melanggar harapan pengguna.

Itu adalah praktik sejarah yang -V, bukan , karakter diartikan sebagai
melarikan diri dari karakter berikutnya di menyingkat memerintah. POSIX.1-2008 membutuhkan
kesesuaian dengan praktik sejarah; Namun, perlu dicatat bahwa singkatan
mengandung tidak akan pernah berhasil.

Menambahkan
Secara historis, teks apa pun yang mengikuti a pemisah perintah setelah menambahkan,
perubahan, atau menyisipkan perintah menjadi bagian dari teks sisipkan. Misalnya, dalam perintah:

:g/pola/tambahkan|hal1

baris yang berisi teks "barang1" akan ditambahkan ke setiap pola pencocokan garis. Dia
juga secara historis valid untuk masuk:

:tambahkan|hal1
barang2
.

dan teks pada ex baris perintah akan ditambahkan bersama dengan teks yang disisipkan setelahnya
dia. Ada bug historis, bagaimanapun, bahwa pengguna harus memasukkan dua pengakhiran
garis ( '.' baris) untuk menghentikan mode input teks dalam kasus ini. POSIX.1-2008 membutuhkan
kesesuaian dengan praktik historis, tetapi tidak mengizinkan kebutuhan historis untuk banyak
mengakhiri garis.

Perubahan
Lihat RASIONAL untuk menambahkan memerintah. Praktik historis untuk posisi kursor setelah
perintah ubah ketika tidak ada teks yang dimasukkan, seperti yang dijelaskan dalam POSIX.1-2008. Namun, satu
Implementasi Sistem V diketahui telah dimodifikasi sedemikian rupa sehingga kursor diposisikan
pada alamat pertama yang ditentukan, dan bukan pada baris sebelum alamat pertama. POSIX.1-2008
melarang modifikasi ini untuk konsistensi.

Secara historis, perubahan perintah tidak mendukung argumen buffer, meskipun beberapa
implementasi memungkinkan spesifikasi buffer opsional. Perilaku ini juga bukan
diwajibkan atau dilarang oleh POSIX.1-2008.

Perubahan Direktori
Ekstensi umum di ex implementasinya adalah dengan menggunakan elemen a jalur cd edit opsi sebagai
direktori awalan untuk path argumen untuk chdir yang merupakan nama path relatif dan yang tidak
memiliki '.' or ".." sebagai komponen pertama mereka. Elemen dalam jalur cd opsi edit adalah
-terpisah. Nilai awal dari jalur cd opsi edit adalah nilai shell
CDPATH variabel lingkungan. Fitur ini tidak disertakan dalam POSIX.1-2008 karena fitur ini
tidak ada dalam implementasi yang dianggap sebagai praktik historis.

Copy
Implementasi historis dari ex salinan yang diizinkan ke baris di dalam rentang yang ditentukan;
sebagai contoh, :2,5kopi3 adalah perintah yang valid. POSIX.1-2008 membutuhkan kesesuaian untuk
praktik sejarah.

Delete
POSIX.1-2008 membutuhkan dukungan untuk penguraian historis a hapus perintah diikuti oleh
bendera, tanpa campur tangan apapun karakter. Sebagai contoh:

1dp Menghapus baris pertama dan mencetak baris kedua.

1deep Untuk 1dp.

1d Menghapus baris pertama, menyimpannya di buffer p.

1d hal1l (Pee-one-ell.) Menghapus baris pertama, menyimpannya di buffer p, dan daftar baris
itu yang kedua.

Edit
Secara historis, setiap ex perintah dapat dimasukkan sebagai +Command argumen untuk mengedit perintah,
meskipun beberapa (misalnya, menyisipkan dan menambahkan) dikenal membingungkan sejarah
implementasi. Untuk konsistensi dan kesederhanaan spesifikasi, POSIX.1-2008 membutuhkan:
bahwa perintah apa pun didukung sebagai argumen untuk mengedit perintah.

Secara historis, argumen perintah dieksekusi dengan baris saat ini disetel ke baris terakhir
dari file, terlepas dari apakah mengedit perintah dieksekusi dari mode visual atau tidak.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Secara historis, +Command ditentukan untuk mengedit dan berikutnya perintah dibatasi oleh
pertama , dan tidak ada cara untuk mengutipnya. Untuk konsistensi, POSIX.1-2008 membutuhkan
itu biasa ex kutipan backslash disediakan.

Secara historis, menentukan +Command argumen untuk perintah edit membutuhkan nama file untuk
ditentukan juga; Misalnya, : sunting +100 akan selalu gagal. Untuk konsistensi dan
kesederhanaan spesifikasi, POSIX.1-2008 tidak mengizinkan penggunaan ini gagal untuk itu
alasan.

Secara historis, hanya posisi kursor dari file terakhir yang diedit yang diingat oleh
editor. POSIX.1-2008 mengharuskan ini didukung; namun, implementasinya adalah
diizinkan untuk mengingat dan mengembalikan posisi kursor untuk file apa pun yang telah diedit sebelumnya.

File
Versi sejarah dari ex editor fillet perintah menampilkan baris saat ini dan jumlah
baris di buffer edit 0 saat file kosong, sedangkan vi -Perintah G
menampilkan baris saat ini dan jumlah baris dalam buffer edit 1 di yang sama
situasi. POSIX.1-2008 tidak mengizinkan perbedaan ini, sebaliknya mengharuskan sebuah pesan
ditampilkan menunjukkan bahwa file tersebut kosong.

Aksi
Operasi dua lintasan dari global dan v perintah tidak dimaksudkan untuk menyiratkan
implementasi, hanya hasil yang diperlukan dari operasi.

Baris dan kolom saat ini ditetapkan seperti yang ditentukan untuk individu ex perintah. Ini
persyaratan bersifat kumulatif; yaitu, baris dan kolom saat ini harus melacak di semua
perintah yang dijalankan oleh global or v perintah.

Menyisipkan
Lihat RASIONAL untuk menambahkan perintah.

Secara historis, menyisipkan tidak dapat digunakan dengan alamat nol; yaitu, bukan saat edit
penyangga kosong. POSIX.1-2008 mengharuskan perintah ini berperilaku secara konsisten dengan
menambahkan perintah.

Ikuti seminar
Tindakan dari ikut perintah dalam kaitannya dengan karakter khusus hanya didefinisikan untuk
lokal POSIX karena jumlah spasi yang benar setelah periode bervariasi; di
Bahasa Jepang tidak diperlukan, dalam bahasa Prancis hanya satu spasi, dan seterusnya.

Daftar
Keluaran historis dari daftar perintah berpotensi ambigu. Standar
pengembang percaya mengoreksi ini lebih penting daripada mengikuti sejarah
praktek, dan POSIX.1-2008 membutuhkan keluaran yang tidak ambigu.

Lokasi
Secara historis, peta mode perintah hanya diterapkan pada nama perintah; misalnya jika
karakter 'x' dipetakan ke 'y', perintah fx mencari 'x' karakter, bukan
'y' karakter. POSIX.1-2008 membutuhkan perilaku ini. Secara historis, memasuki -V sebagai
karakter pertama dari vi perintah adalah kesalahan. Beberapa implementasi telah diperpanjang
semantik dari vi seperti yang –V berarti bahwa karakter perintah selanjutnya adalah
tidak dipetakan. Ini diizinkan, tetapi tidak diwajibkan, oleh POSIX.1-2008. Bagaimanapun, menggunakan
–V untuk keluar dari karakter kedua atau yang lebih baru dalam urutan karakter yang mungkin
cocok dengan peta perintah, atau karakter apa pun dalam mode input teks, adalah praktik historis, dan
menghentikan kunci yang dimasukkan agar tidak cocok dengan peta. POSIX.1-2008 membutuhkan kesesuaian untuk
praktik sejarah.

Implementasi historis mengizinkan digit untuk digunakan sebagai peta Command lhs, tapi kemudian
mengabaikan peta. POSIX.1-2008 mengharuskan digit yang dipetakan tidak diabaikan.

Implementasi historis dari peta perintah tidak mengizinkan peta perintah itu
lebih dari satu karakter jika karakter pertama dapat dicetak. Perilaku ini
diizinkan, tetapi tidak diwajibkan, oleh POSIX.1-2008.

Secara historis, karakter yang dipetakan dipetakan ulang kecuali jika remap opsi edit tidak disetel, atau
awalan karakter yang dipetakan cocok dengan karakter pemetaan; misalnya di
peta:

:peta ab abcd

karakter "ab" digunakan apa adanya dan tidak dipetakan ulang, tetapi karakternya "CD" adalah
dipetakan jika sesuai. Ini dapat menyebabkan loop tak terbatas di vi mekanisme pemetaan.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis, dan loop semacam itu harus
bisa diinterupsi.

Peta input teks memiliki masalah yang sama dengan memperluas lhs untuk ex peta! dan buka peta!
perintah seperti yang dilakukan ex menyingkat dan singkat perintah. Lihat RASIONAL untuk ex
menyingkat memerintah. POSIX.1-2008 membutuhkan modifikasi serupa dari beberapa praktik historis
untuk peta dan buka peta perintah, seperti yang dijelaskan untuk menyingkat dan singkat perintah.

Secara historis, petas yang merupakan himpunan bagian dari other petas berperilaku berbeda tergantung pada
urutan di mana mereka didefinisikan. Sebagai contoh:

:peta! ab pendek
:peta! abc panjang

akan selalu menerjemahkan karakter "ab" untuk "pendek", terlepas dari seberapa cepat
karakter "abc" dimasukkan. Jika urutan entri dibalik:

:peta! abc panjang
:peta! ab pendek

karakter "ab" akan menyebabkan editor berhenti sejenak, menunggu penyelesaian 'C'
karakter, dan karakter mungkin tidak akan pernah dipetakan ke "pendek". Untuk konsistensi dan
kesederhanaan spesifikasi, POSIX.1-2008 mengharuskan kecocokan terpendek digunakan sama sekali
kali.

Lamanya waktu yang dihabiskan editor untuk menunggu karakter menyelesaikan lhs is
tidak ditentukan karena kemampuan pengaturan waktu sistem seringkali tidak tepat dan bervariasi, dan
mungkin tergantung pada faktor lain seperti kecepatan koneksi. Waktunya harus
cukup lama bagi pengguna untuk dapat menyelesaikan urutannya, tetapi tidak cukup lama untuk
pengguna harus menunggu. Beberapa implementasi dari vi telah menambahkan waktu kunci pilihan, yang
memungkinkan pengguna untuk mengatur jumlah 0,1 detik editor menunggu untuk menyelesaikan
karakter. Karena fungsi terminal yang dipetakan dan tombol kursor cenderung dimulai dengan
karakter, dan adalah akhir kunci vi mode masukan teks, petadimulai dengan
karakter umumnya dibebaskan dari periode batas waktu ini, atau, setidaknya habis waktu
berbeda.

Mark
Secara historis, pengguna dapat menetapkan tanda ``konteks sebelumnya'' secara eksplisit. Di
tambahan, ex perintah '' dan '` dan vi perintah '', ``, `', dan '` semua dirujuk
tanda yang sama. Selain itu, tanda konteks sebelumnya tidak disetel jika perintah, dengan
yang pengaturan alamat tanda dikaitkan, gagal. POSIX.1-2008 membutuhkan
kesesuaian dengan praktik sejarah. Secara historis, jika garis yang ditandai dihapus, tanda
juga dihapus, tetapi akan muncul kembali jika perubahan dibatalkan. POSIX.1-2008 membutuhkan
kesesuaian dengan praktik sejarah.

Deskripsi acara khusus yang mengatur ` dan ' tanda cocok dengan sejarah
praktek. Misalnya, secara historis perintah /a/,/b/ tidak mengatur ` dan ' tanda, tapi
perintah /a/,/b/hapus lakukan.

Selanjutnya
Secara historis, setiap ex perintah dapat dimasukkan sebagai +Command argumen untuk berikutnya perintah,
meskipun beberapa (misalnya, menyisipkan dan menambahkan) dikenal membingungkan sejarah
implementasi. POSIX.1-2008 mengharuskan perintah apa pun diizinkan dan berperilaku sebagai
ditentukan. NS berikutnya perintah dapat menerima lebih dari satu file, sehingga penggunaan seperti:

berikutnya `l [abc] `

adalah benar; itu tidak harus valid untuk mengedit or Baca baca perintah, misalnya, karena mereka
mengharapkan hanya satu nama file.

Secara historis, berikutnya perintah berperilaku berbeda dari :memutar ulang perintah dalam hal itu
mengabaikan bendera kekuatan jika tulis otomatis bendera ditetapkan. Untuk konsistensi, POSIX.1-2008 tidak
tidak mengizinkan perilaku ini.

Secara historis, berikutnya perintah memposisikan kursor seolah-olah file belum pernah diedit
sebelumnya, terlepas. POSIX.1-2008 tidak mengizinkan perilaku ini, untuk konsistensi dengan
mengedit perintah.

Implementasi yang ingin memberikan mitra untuk berikutnya perintah yang mengedit
file sebelumnya telah menggunakan perintah sebelumnya], yang tidak membutuhkan fillet argumen. POSIX.1-2008
tidak memerlukan perintah ini.

Open
Secara historis, Buka perintah akan gagal jika Buka opsi edit tidak disetel.
POSIX.1-2008 tidak menyebutkan Buka edit opsi dan tidak memerlukan perilaku ini.
Beberapa implementasi historis tidak mengizinkan memasuki mode terbuka dari mode terbuka atau visual,
hanya dari ex mode. Untuk konsistensi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Secara historis, memasuki mode terbuka dari baris perintah (yaitu, vi +buka) mengakibatkan
perilaku anomali; misalnya, ex file dan set perintah, dan vi Command
-G tidak berhasil. Untuk konsistensi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Secara historis, Buka perintah hanya diizinkan '/' karakter yang akan digunakan sebagai pencarian
pembatas pola. Untuk konsistensi, POSIX.1-2008 mengharuskan pembatas pencarian yang digunakan
oleh s, global, dan v perintah diterima juga.

Pertahankan
Grafik memelihara perintah tidak secara historis menyebabkan file dianggap tidak dimodifikasi untuk
tujuan perintah masa depan yang mungkin keluar dari editor. POSIX.1-2008 membutuhkan
kesesuaian dengan praktik sejarah.

Dokumentasi historis menyatakan bahwa email tidak dikirim ke pengguna saat penyimpanan dilakukan
dieksekusi; namun, implementasi historis memang mengirim email dalam kasus ini. POSIX.1-2008
membutuhkan kesesuaian dengan implementasi historis.

Mencetak
Penulisan NUL oleh mencetak perintah tidak ditentukan sebagai kasus khusus karena
pengembang standar tidak ingin mengharuskan ex untuk mendukung karakter NUL. Secara historis,
karakter ditampilkan menggunakan pemetaan standar ARPA, yaitu sebagai berikut:

1. Karakter yang dapat dicetak dibiarkan saja.

2. Karakter kontrol kurang dari \177 direpresentasikan sebagai '^' diikuti oleh karakter
mengimbangi dari '@' karakter dalam peta ASCII; misalnya, \007 direpresentasikan sebagai
'^G'.

3. \177 direpresentasikan sebagai '^' diikuti oleh '?'.

Tampilan karakter yang memiliki set bit kedelapan kurang standar. Yang ada
implementasi menggunakan hex (0x00), oktal (\000), dan tampilan meta-bit. (Yang terakhir
menampilkan byte yang bit kedelapannya ditetapkan sebagai dua karakter "Aku" diikuti oleh
tampilan tujuh-bit seperti yang dijelaskan di atas.) Yang terakhir mungkin memiliki klaim terbaik untuk
praktik sejarah karena digunakan untuk v pilihan 4 BSD dan 4 turunan BSD
versi dari kucing utilitas sejak tahun 1980.

Tidak ada format tampilan khusus yang diperlukan oleh POSIX.1-2008.

Ketergantungan eksplisit pada set karakter ASCII telah dihindari jika memungkinkan, oleh karena itu
penggunaan frasa ``urutan multi-karakter yang ditentukan implementasi'' untuk tampilan
karakter yang tidak dapat dicetak dalam preferensi untuk penggunaan historis, misalnya, "^ aku"
Untuk . Implementasi didorong untuk menyesuaikan dengan praktik sejarah di
tidak adanya alasan kuat untuk menyimpang.

Secara historis, semua ex perintah yang dimulai dengan huruf 'P' dapat dimasukkan menggunakan
versi perintah yang dikapitalisasi; Misalnya, Mencetak], Melestarikan], dan Meletakkan] semua
nama perintah yang valid. POSIX.1-2008 mengizinkan, tetapi tidak mengharuskan, praktik historis ini
karena bentuk kapital dari perintah digunakan oleh beberapa implementasi untuk tujuan lain.

Menempatkan
Secara historis, sebuah ex menempatkan perintah, dieksekusi dari mode terbuka atau visual, sama dengan
mode terbuka atau visual P perintah, jika buffer diberi nama dan dipotong dalam mode karakter, dan
sama dengan p perintah jika buffer diberi nama dan dipotong dalam mode baris. Jika yang tidak disebutkan namanya
buffer adalah sumber teks, seluruh baris dari mana teks itu diambil adalah
biasanya menempatkan, dan buffer ditangani seolah-olah dalam mode baris, tetapi dimungkinkan untuk mendapatkan
perilaku yang sangat anomali. Selain itu, menggunakan Q perintah untuk beralih ke ex modus, dan
kemudian melakukan menempatkan sering mengakibatkan kesalahan juga, seperti menambahkan teks yang
tidak terkait dengan (seharusnya) isi buffer. Untuk konsistensi dan kesederhanaan
spesifikasi, POSIX.1-2008 tidak mengizinkan perilaku ini. Semua ex menempatkan perintah adalah
diperlukan untuk beroperasi dalam mode garis, dan isi buffer tidak diubah oleh
mengubah mode editor.

Baca
Secara historis, sebuah ex Baca baca perintah dieksekusi dari mode terbuka atau visual, dieksekusi dalam keadaan kosong
file, meninggalkan baris kosong sebagai baris pertama file. Untuk konsistensi dan kesederhanaan
spesifikasi, POSIX.1-2008 tidak mengizinkan perilaku ini. Secara historis, Baca baca di tempat terbuka
atau mode visual dari sebuah program meninggalkan kursor pada baris terakhir yang dibaca, bukan yang pertama. Untuk
konsistensi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Implementasi historis dari ex tidak dapat membatalkan Baca baca perintah yang membaca dari
keluaran dari suatu program. Untuk konsistensi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Secara historis, ex dan vi pesan setelah sukses Baca baca or menulis perintah yang ditentukan
``karakter'', bukan ``byte''. POSIX.1-2008 mengharuskan jumlah byte menjadi
ditampilkan, bukan jumlah karakter, karena mungkin sulit dalam multi-byte
implementasi untuk menentukan jumlah karakter yang dibaca. Implementasi didorong
untuk memperjelas pesan yang ditampilkan kepada pengguna.

Secara historis, pembacaan tidak diizinkan pada file selain tipe reguler, kecuali FIFO itu
file dapat dibaca (mungkin hanya karena tidak ada ketika ex dan vi adalah
aslinya ditulis). Karena sejarah ex dievaluasi Baca! dan Baca baca ! setara,
tidak ada cara opsional untuk memaksa membaca. POSIX.1-2008 mengizinkan, tetapi tidak
membutuhkan, perilaku ini.

Memulihkan
Beberapa implementasi historis editor mengizinkan pengguna untuk memulihkan buffer edit
konten dari sesi edit sebelumnya, lalu keluar tanpa menyimpan konten tersebut (atau
secara eksplisit membuangnya). Maksud dari POSIX.1-2008 yang mengharuskan buffer edit
diperlakukan sebagai sudah dimodifikasi adalah untuk mencegah kesalahan pengguna ini.

Rewind
Implementasi historis mendukung rewind perintah ketika pengguna sedang mengedit
file pertama dalam daftar; yaitu, file yang rewind perintah akan mengedit. POSIX.1-2008
membutuhkan kesesuaian dengan praktik sejarah.

Pengganti
Secara historis, ex diterima dan r opsi ke s memerintah. Efek dari r pilihannya adalah untuk
gunakan ekspresi reguler terakhir yang digunakan dalam perintah apa pun sebagai pola, sama seperti ~
perintah. Itu r opsi tidak diperlukan oleh POSIX.1-2008. Secara historis, c dan g Pilihan
diaktifkan; misalnya perintah :s/abc/def/ sama dengan s/abc/def/ccccgggg.
Untuk kesederhanaan spesifikasi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Perintah tilde sering digunakan untuk menggantikan RE pencarian terakhir. Misalnya, di
urutan:

s/merah/biru/
/hijau
~

itu ~ perintah setara dengan:

s/hijau/biru/

Secara historis, ex menerima semua formulir berikut:

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

POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis ini.

Grafik s perintah menganggap bahwa '^' karakter hanya menempati satu kolom di
menampilkan. Banyak dari ex dan vi spesifikasi mengasumsikan bahwa hanya menempati
kolom tunggal di layar. Tidak ada set karakter yang diketahui yang bukan ini
benar.

Secara historis, posisi kolom terakhir untuk perintah pengganti didasarkan pada sebelumnya
gerakan kolom; pencarian pola diikuti dengan substitusi akan meninggalkan kolom
posisi tidak berubah, sedangkan perintah 0 diikuti dengan substitusi akan mengubah kolom
posisi ke non- . Untuk konsistensi dan kesederhanaan spesifikasi,
POSIX.1-2008 mengharuskan posisi kolom terakhir selalu disetel ke yang pertama
non- .

set
Implementasi historis menampilkan kembali semua opsi untuk setiap kemunculan semua
kata kunci. POSIX.1-2008 mengizinkan, tetapi tidak mengharuskan, perilaku ini.

label
Tidak ada persyaratan yang dibuat untuk di mana ex dan vi akan mencari file yang dirujuk oleh tag
pintu masuk. Praktik sejarah adalah mencari jalan yang ditemukan di tag file, berdasarkan
direktori saat ini. Ekstensi berguna yang ditemukan di beberapa implementasi adalah untuk terlihat berdasarkan
pada direktori yang berisi file tag yang menyimpan entri juga. Tidak ada persyaratan
dibuat sebagai referensi untuk tag dalam file tag yang digunakan. Ini disengaja, dalam
untuk mengizinkan ekstensi seperti beberapa entri dalam file tag untuk sebuah tag.

Karena pengguna sering menentukan banyak file tag yang berbeda, beberapa di antaranya tidak perlu relevan
atau ada pada waktu tertentu, POSIX.1-2008 mengharuskan pesan kesalahan tentang masalah
file tag ditampilkan hanya jika tag yang diminta tidak ditemukan, dan kemudian, hanya sekali untuk
setiap kali itu label opsi edit diubah.

Persyaratan bahwa buffer edit saat ini tidak dimodifikasi hanya diperlukan jika file
ditunjukkan oleh entri tag tidak sama dengan file saat ini (seperti yang didefinisikan oleh arus
nama jalur). Secara historis, file akan dimuat ulang jika nama file juga berubah
seolah-olah nama file berbeda dari nama path saat ini. Untuk konsistensi dan kesederhanaan
spesifikasi, POSIX.1-2008 tidak mengizinkan perilaku ini, mengharuskan nama menjadi
satu-satunya faktor dalam keputusan.

Secara historis, vi hanya mencari tag dalam file saat ini dari kursor saat ini ke
akhir file, dan oleh karena itu, jika bungkus scan opsi tidak disetel, tag muncul sebelumnya
kursor saat ini tidak ditemukan. POSIX.1-2008 menganggap ini sebagai bug, dan implementasinya
diminta untuk mencari kemunculan pertama dalam file, terlepas dari itu.

membuka
Grafik merusak deskripsi sengaja menggunakan kata ``dimodifikasi''. Itu merusak perintah tidak
dimaksudkan untuk membatalkan perintah yang menggantikan konten buffer edit, seperti mengedit,
berikutnya, label, atau memulihkan.

Penempatan kursor setelah merusak perintah tidak konsisten dalam sejarah vi, terkadang
mencoba mengembalikan posisi kursor asli (global, merusak, dan v perintah), dan
terkadang, dengan adanya peta, menempatkan kursor pada baris terakhir yang ditambahkan atau diubah
bukannya yang pertama. POSIX.1-2008 membutuhkan perilaku yang disederhanakan untuk konsistensi dan
kesederhanaan spesifikasi.

Versi
Grafik versi perintah tidak dapat ditentukan dengan tepat karena tidak ada yang diterima secara luas
definisi tentang apa yang harus berisi informasi versi. Implementasi didorong
untuk melakukan sesuatu yang cukup cerdas.

Menulis
Secara historis, ex dan vi pesan setelah sukses Baca baca or menulis perintah yang ditentukan
``karakter'', bukan ``byte''. POSIX.1-2008 mengharuskan jumlah byte menjadi
ditampilkan, bukan jumlah karakter karena mungkin sulit dalam multi-byte
implementasi untuk menentukan jumlah karakter yang ditulis. Implementasinya adalah
didorong untuk memperjelas pesan yang ditampilkan kepada pengguna.

Pengujian yang ditentukan implementasi diizinkan sehingga implementasi dapat membuat tambahan
cek; misalnya, untuk kunci atau waktu modifikasi file.

Secara historis, mencoba menambahkan ke file yang tidak ada menyebabkan kesalahan. Itu telah ditinggalkan
tidak ditentukan dalam POSIX.1-2008 untuk mengizinkan implementasi untuk membiarkan menulis berhasil, sehingga
semantik append mirip dengan semantik historis csh.

Historis vi diizinkan mengedit buffer kosong untuk ditulis. Namun, sejak jalan vi mendapat
seputar berurusan dengan file ``kosong'' adalah selalu memiliki garis di buffer edit, tidak
tidak peduli apa, itu menulisnya sebagai file dari satu baris kosong. POSIX.1-2008 tidak mengizinkan
perilaku ini.

Secara historis, ex mengembalikan output standar dan kesalahan standar ke nilainya pada saat ex
dipanggil, sebelum menulis ke program dilakukan. Ini bisa mengganggu terminal
konfigurasi serta menjadi masalah keamanan untuk beberapa terminal. POSIX.1-2008 tidak
izinkan ini, mengharuskan output program ditangkap dan ditampilkan seolah-olah oleh ex
mencetak perintah.

Menyesuaikan Jendela
Secara historis, jumlah baris diatur ke nilai gulir pilihan jika jenisnya
karakter adalah end-of-file. Fitur ini rusak pada sebagian besar implementasi historis lama
lalu, bagaimanapun, dan tidak didokumentasikan di mana pun. Untuk alasan ini, POSIX.1-2008 secara tegas
diam.

Secara historis, z perintah adalah -sensitif dan z + dan z - melakukan hal yang berbeda
dari z+ dan z− karena jenisnya tidak bisa dibedakan dari sebuah bendera. (Perintah z .
dan z = secara historis tidak valid.) POSIX.1-2008 membutuhkan kesesuaian dengan riwayat ini
praktek.

Secara historis, z perintah lebih lanjut -sensitif dalam hal itu menghitung tidak mungkin
-dibatasi; misalnya perintah z= 5 dan z− 5 juga tidak valid. Karena
menghitung tidak ambigu sehubungan dengan karakter tipe atau bendera, ini bukan
diizinkan oleh POSIX.1-2008.

Melarikan diri
Secara historis, ex perintah filter hanya membaca output standar dari perintah, membiarkan
standard error muncul di terminal seperti biasa. Itu vi utilitas, bagaimanapun, baca keduanya
keluaran standar dan kesalahan standar. POSIX.1-2008 membutuhkan perilaku yang terakhir untuk keduanya ex
dan vi, untuk konsistensi.

perubahan kiri dan perubahan Kanan
Secara historis, dimungkinkan untuk menambahkan karakter shift untuk meningkatkan efek
memerintah; Misalnya, << outdented (atau >>> indentasi) garis 3 level lekukan
alih-alih default 1. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

-D
Secara historis, –D perintah menghapus prompt, menyediakan pengguna dengan
presentasi baris yang tidak terputus dari buffer edit. Ini tidak diwajibkan oleh POSIX.1-2008;
implementasi didorong untuk menyediakannya jika memungkinkan. Secara historis, -D
perintah diambil, dan kemudian diabaikan, a menghitung. POSIX.1-2008 tidak mengizinkan perilaku ini.

Menulis baris Jumlah
Secara historis, ex = perintah, ketika dieksekusi di ex mode dalam buffer edit kosong, dilaporkan
0, dan dari mode terbuka atau visual, dilaporkan 1. Untuk konsistensi dan kesederhanaan
spesifikasi, POSIX.1-2008 tidak mengizinkan perilaku ini.

Eksekusi
Secara historis, ex tidak menangani penyertaan perintah input teks dengan benar (yaitu,
menambahkan, menyisipkan, dan perubahan) dalam buffer yang dieksekusi. POSIX.1-2008 tidak mengizinkan ini
pengecualian untuk konsistensi.

Secara historis, konten logis dari buffer yang dieksekusi tidak berubah jika
buffer itu sendiri dimodifikasi oleh perintah yang dieksekusi; yaitu, eksekusi buffer lakukan
tidak mendukung kode modifikasi sendiri. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Secara historis, @ perintah mengambil berbagai baris, dan @ buffer dieksekusi sekali per
baris, dengan baris saat ini ('.') diatur ke setiap baris yang ditentukan. POSIX.1-2008 membutuhkan
kesesuaian dengan praktik sejarah.

Beberapa implementasi historis tidak memperhatikan jika terjadi kesalahan selama eksekusi buffer.
Ini, ditambah dengan kemampuan untuk menentukan rentang garis untuk ex @ perintah, membuatnya
sepele untuk menyebabkan mereka jatuh inti. POSIX.1-2008 mengharuskan implementasi berhenti
eksekusi buffer jika terjadi kesalahan, jika baris yang ditentukan tidak ada, atau jika
isi buffer edit itu sendiri diganti (misalnya, buffer mengeksekusi ex
: sunting memerintah).

Reguler Ekspresi in ex
Praktek sejarah adalah bahwa karakter di bagian pengganti yang terakhir s memerintah-
yaitu, yang cocok dengan memasukkan a '~' dalam ekspresi reguler—tidak lebih jauh
diperluas oleh mesin ekspresi reguler. Jadi, jika karakter berisi string
"sebuah.," mereka akan cocok 'A' diikuti oleh ".," dan tidak 'A' diikuti oleh karakter apapun.
POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Edit Opsi in ex
Paragraf berikut menjelaskan perilaku historis dari beberapa opsi edit yang
tidak, untuk alasan apapun, termasuk dalam POSIX.1-2008. Implementasinya sangat kuat
dianjurkan untuk hanya menggunakan nama-nama ini jika fungsi yang dijelaskan di sini didukung sepenuhnya.

luas Grafik luas opsi edit telah digunakan dalam beberapa implementasi vi untuk menyediakan
ekspresi reguler yang diperluas alih-alih ekspresi reguler dasar Opsi ini
dihilangkan dari POSIX.1-2008 karena bukan praktik sejarah yang tersebar luas.

flash Grafik flash opsi edit secara historis menyebabkan layar berkedip alih-alih berbunyi bip
pada kesalahan. Opsi ini dihilangkan dari POSIX.1-2008 karena tidak ditemukan di
beberapa implementasi historis.

hardtab Grafik hardtab opsi edit secara historis menentukan jumlah kolom di antara
pengaturan tab perangkat keras. Opsi ini dihilangkan dari POSIX.1-2008 karena
diyakini tidak lagi berguna secara umum.

model Grafik model (kadang-kadang bernama modeline) opsi edit yang disebabkan secara historis ex or
vi untuk membaca lima baris pertama dan terakhir dari file untuk perintah editor. Ini
opsi adalah masalah keamanan, dan vendor sangat dianjurkan untuk menghapusnya
dari implementasi sejarah.

Buka Grafik Buka opsi edit secara historis tidak mengizinkan ex Buka dan visual perintah.
Opsi edit ini dihilangkan karena perintah ini diperlukan oleh
POSIX.1-2008.

mengoptimalkan Grafik mengoptimalkan opsi edit secara historis mempercepat throughput teks dengan mengatur
terminal untuk tidak melakukan otomatis karakter saat mencetak lebih banyak
dari satu baris output logis. Opsi ini dihilangkan dari POSIX.1-2008
karena ditujukan untuk terminal tanpa kursor yang dapat dialamatkan, yaitu
jarang, jika pernah, masih digunakan.

penggaris Grafik penggaris opsi edit telah digunakan dalam beberapa implementasi vi untuk menyajikan a
penggaris baris/kolom saat ini untuk pengguna. Opsi ini dihilangkan dari POSIX.1-2008
karena itu bukan praktik sejarah yang meluas.

sumber dari mana saja Grafik sumber dari mana saja opsi edit yang disebabkan secara historis ex or vi untuk sumber file start-up
yang dimiliki oleh pengguna selain pengguna yang menjalankan editor. Pilihan ini adalah
masalah keamanan, dan vendor sangat dianjurkan untuk menghapusnya dari
implementasi.

batas waktu Grafik batas waktu opsi edit secara historis mengaktifkan fitur (sekarang standar) saja
menunggu beberapa saat sebelum mengembalikan kunci yang bisa menjadi bagian dari makro.
Fitur ini dihilangkan dari POSIX.1-2008 karena perilakunya sekarang standar,
itu tidak berguna secara luas, dan jarang didokumentasikan.

bertele-tele Grafik bertele-tele opsi edit telah digunakan dalam beberapa implementasi vi menyebabkan vi
untuk menampilkan pesan kesalahan untuk kesalahan umum; misalnya, mencoba untuk memindahkan
kursor melewati awal atau akhir baris alih-alih hanya mengingatkan
layar. (Sejarah vi hanya memberi tahu terminal dan tidak memberikan pesan
untuk kesalahan seperti itu. Opsi editor sejarah pendek tidak memilih kapan harus
menyajikan pesan kesalahan, itu hanya membuat pesan kesalahan yang ada kurang lebih
verbose.) Opsi ini dihilangkan dari POSIX.1-2008 karena tidak tersebar luas
praktek sejarah; namun, pelaksana didorong untuk menggunakannya jika mereka mau
untuk memberikan pesan kesalahan bagi pengguna yang naif.

membungkus Grafik membungkus opsi edit telah digunakan dalam beberapa implementasi vi untuk menentukan
margin otomatis diukur dari margin kiri, bukan dari kanan
batas. Ini berguna ketika beberapa ukuran layar digunakan untuk mengedit
file tunggal. Opsi ini dihilangkan dari POSIX.1-2008 karena tidak
praktik sejarah yang meluas; namun, pelaksana didorong untuk menggunakannya
jika mereka menambahkan fungsi ini.

inden otomatis, ai
Secara historis, perintah 0a tidak melakukan autoindentation, terlepas dari arus
lekukan baris 1. POSIX.1-2008 mengharuskan setiap lekukan yang ada di baris 1 menjadi
bekas.

cetak otomatis, ap
Secara historis, cetak otomatis opsi edit tidak sepenuhnya konsisten atau hanya berdasarkan
modifikasi buffer edit. Pengecualiannya adalah Baca baca perintah (saat membaca dari a
file, tetapi bukan dari filter), yang menambahkan, perubahan, menyisipkan, global, dan v perintah, semuanya
yang tidak terpengaruh oleh cetak otomatis, Dan label perintah, yang dipengaruhi oleh
cetak otomatis. POSIX.1-2008 membutuhkan kesesuaian dengan praktik historis.

Secara historis, cetak otomatis opsi hanya diterapkan pada yang terakhir dari beberapa perintah yang dimasukkan
menggunakan pembatas; Misalnya, hapus dipengaruhi oleh cetak otomatis,
tapi hapus|versi tidak. POSIX.1-2008 membutuhkan kesesuaian dengan sejarah
praktek.

tulis otomatis, aw
Menambahkan '!' karakter untuk ex berikutnya perintah untuk menghindari melakukan penulisan otomatis
tidak didukung dalam implementasi historis. POSIX.1-2008 mensyaratkan bahwa perilaku
cocok dengan yang lain ex perintah untuk konsistensi.

kasus abaikan, ic
Implementasi historis dari pencocokan case-insensitive (the abaikan kasus opsi edit) memimpin
untuk situasi kontra-intuitif ketika karakter huruf besar digunakan dalam ekspresi rentang.
Secara historis, prosesnya adalah sebagai berikut:

1. Ambil sebaris teks dari buffer edit.

2. Ubah huruf besar menjadi huruf kecil pada baris teks.

3. Ubah huruf besar menjadi huruf kecil dalam ekspresi reguler, kecuali di kelas karakter
spesifikasi.

4. Cocokkan ekspresi reguler dengan teks.

Ini berarti bahwa, dengan abaikan kasus sebenarnya, teks:

Grafik kucing duduk on itu tikar

akan dicocokkan oleh

/^itu/

tetapi tidak oleh:

/^[A−Z]dia/

Untuk konsistensi dengan perintah lain yang mengimplementasikan ekspresi reguler, POSIX.1-2008 tidak
tidak mengizinkan perilaku ini.

paragraf, ayat
Standar ISO POSIX-2:1993 dijadikan standar paragraf dan bagian opsi edit
implementasi-didefinisikan, dengan alasan mereka secara historis berorientasi pada sistem UNIX troff
pemformat teks, dan ``pengguna portabel'' dapat menggunakan {, }, [[, ]], (, dan ) perintah dalam
buka atau mode visual dan biarkan kursor berhenti di tempat yang tidak terduga. POSIX.1-2008 menentukan
nilainya di lokal POSIX karena pengelompokan yang tidak biasa (mereka hanya berfungsi saat dikelompokkan
menjadi dua karakter sekaligus) berarti tidak dapat digunakan untuk tujuan umum
gerakan, terlepas.

dibaca saja
Implementasi didorong untuk memberikan informasi terbaik kepada pengguna tentang:
status read-only file, dengan pengecualian bahwa mereka tidak boleh mempertimbangkan
hak khusus saat ini dari proses. Ini memberi pengguna jaring pengaman karena
mereka harus memaksa penimpaan file hanya-baca, bahkan ketika dijalankan dengan tambahan
hak istimewa.

Grafik dibaca saja spesifikasi opsi edit sebagian besar sesuai dengan praktik historis. Satu-satunya
perbedaannya adalah implementasi historis tidak memperhatikan bahwa pengguna telah mengatur
dibaca saja opsi edit dalam kasus di mana file sudah ditandai hanya-baca karena alasan tertentu,
dan karena itu akan menginisialisasi ulang dibaca saja edit opsi lain kali isi
buffer edit diganti. Perilaku ini tidak diizinkan oleh POSIX.1-2008.

melaporkan
Persyaratan bahwa garis yang disalin ke buffer berinteraksi secara berbeda dari garis yang dihapus adalah
praktik sejarah. Misalnya, jika melaporkan opsi edit diatur ke 3, menghapus 3 baris
akan menyebabkan laporan ditulis, tetapi 4 baris harus disalin sebelum laporan ditulis.

Persyaratan bahwa ex global, v, Buka, merusak, dan visual perintah menyajikan laporan
berdasarkan jumlah total baris yang ditambahkan atau dihapus selama eksekusi perintah, dan itu
perintah yang dijalankan oleh global dan v perintah tidak menyajikan laporan, bersifat historis
praktek. POSIX.1-2008 memperluas praktik historis dengan mengharuskan eksekusi buffer menjadi
diperlakukan sama. Alasan untuk ini ada dua. Secara historis, hanya laporan oleh
perintah terakhir yang dieksekusi dari buffer akan terlihat oleh pengguna, karena setiap laporan baru akan
menimpa yang terakhir. Selain itu, pengembang standar percaya bahwa eksekusi buffer
memiliki lebih banyak kesamaan dengan global dan v perintah daripada yang dilakukan dengan yang lain ex perintah, dan
harus berperilaku serupa, untuk konsistensi dan kesederhanaan spesifikasi.

pertandingan pertunjukkan, sm
Lamanya waktu yang dihabiskan kursor pada karakter yang cocok tidak ditentukan karena
kemampuan waktu sistem sering tidak tepat dan variabel. Waktunya harus lama
cukup bagi pengguna untuk memperhatikan, tetapi tidak cukup lama bagi pengguna untuk menjadi kesal. Beberapa
implementasi dari vi telah menambahkan waktu pertandingan opsi yang memungkinkan pengguna untuk mengatur nomor
interval 0,1 detik kursor berhenti pada karakter yang cocok.

mode pertunjukan
Grafik mode pertunjukan opsi telah digunakan dalam beberapa implementasi historis dari ex dan vi untuk
menampilkan mode pengeditan saat ini saat dalam mode terbuka atau visual. Mode pengeditan memiliki
umumnya menyertakan ``command'' dan ``input'', dan terkadang mode lain seperti
``ganti'' dan ``ubah''. String biasanya ditampilkan di garis bawah
layar di sudut paling kanan. Selain itu, sebelumnya '*' karakter sering dilambangkan
apakah isi buffer edit telah dimodifikasi. Tampilan terakhir memiliki
terkadang menjadi bagian dari mode pertunjukan pilihan, dan terkadang berdasarkan pilihan lain. Ini
opsi tidak tersedia dalam implementasi historis 4 BSD dari vi, tetapi dipandang sebagai
umumnya berguna, terutama untuk pengguna pemula, dan diperlukan oleh POSIX.1-2008.

Grafik smd singkatan untuk mode pertunjukan opsi tidak ada di semua sejarah
implementasi editor. POSIX.1-2008 membutuhkannya, untuk konsistensi.

Tidak semua implementasi historis editor menampilkan string mode untuk mode perintah,
membedakan mode perintah dari mode input teks dengan tidak adanya string mode.
POSIX.1-2008 mengizinkan perilaku ini untuk konsistensi dengan praktik historis, tetapi
implementasi didorong untuk menyediakan string tampilan untuk kedua mode.

buka perlahan
Secara historis, buka perlahan opsi secara otomatis disetel jika baud rate terminal kurang
dari 1200 baud, atau jika baud rate adalah 1200 baud dan menggambar ulang opsi tidak disetel. Itu
buka perlahan pilihan memiliki dua efek. Pertama, saat menyisipkan karakter di tengah baris,
karakter setelah kursor tidak akan didorong ke depan, tetapi akan tampak ditimpa.
Kedua, saat membuat baris teks baru, baris setelah baris saat ini tidak akan
digulir ke bawah, tetapi akan tampak ditimpa. Dalam kedua kasus, mengakhiri mode input teks
akan menyebabkan layar disegarkan agar sesuai dengan konten sebenarnya dari buffer edit.
Akhirnya, terminal yang cukup cerdas menyebabkan editor mengabaikan
buka perlahan pilihan. POSIX.1-2008 memungkinkan sebagian besar perilaku historis, memperluas historis
praktek untuk membutuhkan buka perlahan perilaku jika opsi edit diatur oleh pengguna.

tag
Jalur default untuk file tag dibiarkan tidak ditentukan karena implementasi mungkin memilikinya sendiri
tag implementasi yang tidak sesuai dengan yang historis. Standarnya tag
nilai opsi mungkin setidaknya harus menyertakan file ./tag.

istilah
Implementasi historis dari ex dan vi mengabaikan perubahan pada istilah edit opsi setelah
informasi terminal awal telah dimuat. Ini diizinkan oleh POSIX.1-2008; Namun,
implementasi didorong untuk mengizinkan pengguna memodifikasi tipe terminal mereka kapan saja
waktu.

pendek
Secara historis, pendek opsi edit secara opsional memberikan kesalahan yang lebih pendek dan kurang deskriptif
pesan, untuk beberapa pesan kesalahan. Ini diizinkan, tetapi tidak diwajibkan, oleh POSIX.1-2008.
Secara historis, kesalahan mode visual yang paling umum (misalnya, mencoba memindahkan kursor melewati
akhir baris) tidak menghasilkan pesan kesalahan, tetapi hanya memperingatkan terminal.
Implementasi yang ingin memberikan pesan untuk pengguna pemula didesak untuk melakukannya berdasarkan
itu mengedit Option bertele-tele, dan tidak pendek.

jendela
Dalam implementasi historis, default untuk jendela opsi edit didasarkan pada
baud rate sebagai berikut:

1. Jika baud rate kurang dari 1200, mengedit Option w300 mengatur nilai jendela; untuk
contoh, baris:

set w300=12

akan mengatur opsi jendela ke 12 jika baud rate kurang dari 1200.

2. Jika baud rate sama dengan 1200, mengedit Option w1200 mengatur nilai jendela.

3. Jika baud rate lebih besar dari 1200, mengedit Option w9600 mengatur nilai jendela.

Grafik w300, w1200, dan w9600 opsi tidak muncul di POSIX.1-2008 karena
ketergantungan pada baud rate tertentu.

Dalam implementasi historis, ukuran jendela yang ditampilkan oleh berbagai perintah adalah
terkait dengan, tetapi tidak harus sama dengan, jendela opsi edit. Misalnya ukuran
jendela diatur oleh ex Command visual 10, tetapi tidak mengubah nilai
jendela opsi edit. Namun, mengubah nilai jendela opsi edit memang mengubah
jumlah baris yang ditampilkan saat layar dicat ulang. POSIX.1-2008 tidak
mengizinkan perilaku ini demi konsistensi dan kesederhanaan spesifikasi, dan
mengharuskan semua perintah yang mengubah jumlah baris yang ditampilkan melakukannya dengan
pengaturan nilai jendela opsi edit.

batas bungkus, wm
Secara historis, batas akhir opsi tidak memengaruhi peta yang memasukkan karakter yang juga memiliki
terkait menghitungS; Misalnya :peta K 5aABC DEF. Sayangnya, ada banyak digunakan
peta yang bergantung pada perilaku ini. Untuk konsistensi dan kesederhanaan spesifikasi,
POSIX.1-2008 tidak mengizinkan perilaku ini.

Secara historis, batas akhir dihitung menggunakan lebar tampilan kolom semua karakter
di layar. Misalnya, implementasi menggunakan "^ aku" untuk mewakili karakter
ketika daftar opsi edit telah ditetapkan, di mana '^' dan 'SAYA' masing-masing mengambil satu kolom di
layar, akan menghitung batas akhir berdasarkan nilai 2 untuk masing-masing . Itu jumlah
opsi edit juga mengubah panjang efektif garis. POSIX.1-2008
membutuhkan kesesuaian dengan praktik sejarah.

Versi sebelumnya dari standar ini memungkinkan untuk implementasi dengan byte selain delapan
bit, tetapi ini telah dimodifikasi dalam versi ini.

MASA DEPAN ARAH


Tidak ada.

Gunakan exposix online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

  • 1
    Phaser
    Phaser
    Phaser adalah pembukaan yang cepat, gratis, dan menyenangkan
    kerangka kerja game HTML5 sumber yang menawarkan
    Rendering WebGL dan Canvas di seluruh
    browser web desktop dan seluler. permainan
    bisa bersama...
    Unduh Phaser.dll
  • 2
    Mesin VASSAL
    Mesin VASSAL
    VASSAL adalah mesin permainan untuk membuat
    versi elektronik dari papan tradisional
    dan permainan kartu. Ini memberikan dukungan untuk
    rendering dan interaksi potongan game,
    dan ...
    Unduh Mesin VASSAL
  • 3
    OpenPDF - Garpu iText
    OpenPDF - Garpu iText
    OpenPDF adalah perpustakaan Java untuk membuat
    dan mengedit file PDF dengan LGPL dan
    Lisensi sumber terbuka MPL. OpenPDF adalah
    LGPL/MPL penerus sumber terbuka iText,
    Sebuah...
    Unduh OpenPDF - Garpu iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistem untuk Otomatis
    Analisis Geoscientific - adalah Geografis
    Perangkat lunak Sistem Informasi (GIS) dengan
    kemampuan luar biasa untuk geodata
    pengolahan dan ...
    Unduh SAGA GIS
  • 5
    Toolbox untuk Java/JTOpen
    Toolbox untuk Java/JTOpen
    Toolbox IBM untuk Java / JTOpen adalah a
    perpustakaan kelas Java mendukung
    client/server dan pemrograman internet
    model ke sistem yang menjalankan OS/400,
    i5/OS, atau...
    Unduh Toolbox untuk Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (atau D3 untuk Dokumen Berbasis Data)
    adalah perpustakaan JavaScript yang memungkinkan Anda
    untuk menghasilkan data yang dinamis dan interaktif
    visualisasi di browser web. Dengan D3
    kamu...
    Unduh D3.js
  • Lebih banyak lagi »

Perintah Linux

Ad