ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

Ad


OnWorks favicon

exposix - ອອນລາຍໃນຄລາວ

ເປີດໃຊ້ exposix ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ exposix ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


ຕົວຢ່າງ - ຕົວແກ້ໄຂຂໍ້ຄວາມ

ສະຫຼຸບສັງລວມ


ex [−rR] [−s|−v] [−ຄ ຄໍາສັ່ງ] [-t tagstring] [−ວ ຂະຫນາດ] [ເອກະສານ...]

ລາຍລະອຽດ


ໄດ້ ex ຜົນປະໂຫຍດແມ່ນຕົວແກ້ໄຂຂໍ້ຄວາມທີ່ເນັ້ນໃສ່ເສັ້ນ. ມີ​ສອງ​ຮູບ​ແບບ​ອື່ນໆ​ຂອງ​ບັນ​ນາ​ທິ​ການ -
ເປີດ ແລະເປັນພາບ—ໃນອັນໃດທີ່ການແກ້ໄຂທີ່ເນັ້ນໃສ່ໜ້າຈໍແມ່ນມີຢູ່. ນີ້ແມ່ນອະທິບາຍເພີ່ມເຕີມ
ຢ່າງເຕັມສ່ວນໂດຍ ex ເປີດ ແລະ ສາຍຕາ ຄໍາສັ່ງແລະໃນ vi.

ຖ້າ operand ເປັນ '−', ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ລະບຸ.

ພາກນີ້ໃຊ້ຄໍາສັບ ດັດແກ້ buffer ເພື່ອອະທິບາຍຂໍ້ຄວາມທີ່ເຮັດວຽກໃນປະຈຸບັນ. ບໍ່ມີສະເພາະ
ການປະຕິບັດແມ່ນຫມາຍເຖິງໂດຍຄໍາສັບນີ້. ການ​ປ່ຽນ​ແປງ​ການ​ແກ້​ໄຂ​ທັງ​ຫມົດ​ແມ່ນ​ປະ​ຕິ​ບັດ​ໃນ​ການ​ແກ້​ໄຂ​
buffer, ແລະບໍ່ມີການປ່ຽນແປງທີ່ຈະສົ່ງຜົນກະທົບຕໍ່ໄຟລ໌ໃດໆຈົນກ່ວາຄໍາສັ່ງບັນນາທິການຈະຂຽນ
ຍື່ນ.

terminals ທີ່ແນ່ນອນບໍ່ມີຄວາມສາມາດທັງຫມົດທີ່ຈໍາເປັນເພື່ອສະຫນັບສະຫນູນການສໍາເລັດ ex
ຄໍານິຍາມ, ເຊັ່ນຄໍາສັ່ງການແກ້ໄຂເຕັມຫນ້າຈໍ (ສາຍຕາ ຮູບແບບການ or ເປີດ ຮູບແບບການ). ເມື່ອ​ໃດ​
ຄໍາສັ່ງເຫຼົ່ານີ້ບໍ່ສາມາດຖືກສະຫນັບສະຫນູນຢູ່ໃນ terminals ດັ່ງກ່າວ, ເງື່ອນໄຂນີ້ຈະບໍ່ຜະລິດ
ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ເຊັ່ນ​: "ບໍ່​ແມ່ນ​ຄໍາ​ສັ່ງ​ບັນ​ນາ​ທິ​ການ​" ຫຼື​ລາຍ​ງານ​ຄວາມ​ຜິດ​ພາດ syntax​. ໄດ້
ການປະຕິບັດອາດຈະຍອມຮັບຄໍາສັ່ງແລະຜະລິດຜົນໄດ້ຮັບໃນຫນ້າຈໍທີ່ເປັນ
ຜົນຂອງຄວາມພະຍາຍາມບໍ່ສໍາເລັດເພື່ອຕອບສະຫນອງຄວາມຕ້ອງການຂອງປະລິມານຂອງ
POSIX.1-2008 ຫຼືລາຍງານຄວາມຜິດພາດທີ່ອະທິບາຍເຖິງຄວາມບົກຜ່ອງທີ່ກ່ຽວຂ້ອງກັບເຄື່ອງໝາຍປາຍທາງ.

OPTIONS


ໄດ້ ex ຜົນປະໂຫຍດຈະຕ້ອງສອດຄ່ອງກັບປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 12.2,
ຜົນປະໂຫຍດ syntax ຄູ່ມືແນະນໍາ, ຍົກເວັ້ນສໍາລັບການນໍາໃຊ້ທີ່ບໍ່ໄດ້ກໍານົດຂອງ '−', ແລະ​ນັ້ນ '+' ອາດຈະເປັນ
ຖືກຮັບຮູ້ວ່າເປັນຕົວກໍານົດທາງເລືອກເຊັ່ນດຽວກັນ '−'.

ທາງເລືອກຕໍ່ໄປນີ້ຈະໄດ້ຮັບການສະຫນັບສະຫນູນ:

−ຄ ຄໍາສັ່ງ
ລະບຸຄໍາສັ່ງເບື້ອງຕົ້ນທີ່ຈະຖືກປະຕິບັດໃນ buffer ການແກ້ໄຂທໍາອິດທີ່ໂຫລດມາຈາກ
ໄຟລ໌ທີ່ມີຢູ່ແລ້ວ (ເບິ່ງພາກສ່ວນຄໍາອະທິບາຍເພີ່ມເຕີມ). ການຈັດຕັ້ງປະຕິບັດອາດຈະ
ສະ​ຫນັບ​ສະ​ຫນູນ​ຫຼາຍ​ກ​່​ວາ​ດຽວ​ −ຄ ທາງເລືອກ. ໃນການປະຕິບັດດັ່ງກ່າວ, ກໍານົດໄວ້
ຄໍາສັ່ງຈະຖືກປະຕິບັດໃນຄໍາສັ່ງທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ.

-r ກູ້ໄຟລ໌ທີ່ມີຊື່ຄືນມາ (ເບິ່ງພາກລາຍລະອຽດເພີ່ມເຕີມ). ການຟື້ນຕົວ
ຂໍ້​ມູນ​ສໍາ​ລັບ​ໄຟລ​໌​ຈະ​ໄດ້​ຮັບ​ການ​ບັນ​ທຶກ​ໄວ້​ໃນ​ລະ​ຫວ່າງ​ການ​ບັນ​ນາ​ທິ​ການ​ຫຼື​ລະ​ບົບ​ຂັດ​ໄດ້ (ສໍາ​ລັບ​
ຕົວຢ່າງ, ເມື່ອບັນນາທິການຖືກຢຸດໂດຍສັນຍານທີ່ບັນນາທິການສາມາດຈັບໄດ້),
ຫຼືຫຼັງຈາກການນໍາໃຊ້ຂອງ ex ຮັກສາ ຄໍາສັ່ງ.

A ອຸປະຕິເຫດ ໃນສະພາບການນີ້ແມ່ນຄວາມລົ້ມເຫລວທີ່ບໍ່ຄາດຄິດຂອງລະບົບຫຼືຜົນປະໂຫຍດທີ່
ຮຽກ​ຮ້ອງ​ໃຫ້​ຣີ​ສະ​ຕາດ​ລະ​ບົບ​ທີ່​ບໍ່​ສໍາ​ເລັດ​ຫຼື​ຜົນ​ປະ​ໂຫຍດ​. ການຂັດຂ້ອງຂອງລະບົບ ໝາຍ ຄວາມວ່າ
ຜົນປະໂຫຍດໃດໆທີ່ແລ່ນຢູ່ໃນເວລານັ້ນກໍ່ຂັດຂ້ອງ. ໃນກໍລະນີຂອງບັນນາທິການຫຼືລະບົບ
crash, ຈໍາ​ນວນ​ຂອງ​ການ​ປ່ຽນ​ແປງ​ການ​ແກ້​ໄຂ buffer (ນັບ​ຕັ້ງ​ແຕ່​ຫລ້າ​ສຸດ​ ຮັກສາ
ຄໍາ​ສັ່ງ​) ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຕົວ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​.

ຖ້າບໍ່ ເອກະສານ operands ແມ່ນ​ໄດ້​ຮັບ​ແລະ​ -t ທາງ​ເລືອກ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, ອື່ນໆ​ທັງ​ຫມົດ​
ທາງ​ເລືອກ​, ໄດ້​ ອອກໄປ ຕົວແປ, ແລະໃດໆ .exrc ໄຟລ໌ຈະຖືກລະເລີຍ; ບັນຊີລາຍຊື່ຂອງ
ໄຟລ​໌​ທັງ​ຫມົດ​ທີ່​ສາ​ມາດ​ກູ້​ຄືນ​ໄດ້​ທີ່​ມີ​ສໍາ​ລັບ​ຜູ້​ໃຊ້​ຮຽກ​ຮ້ອງ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ຂຽນ​, ແລະ​
ບັນນາທິການຈະຕ້ອງອອກຈາກປົກກະຕິໂດຍບໍ່ມີການດໍາເນີນການຕໍ່ໄປ.

−ຣ ທີ່ກໍານົດໄວ້ ອ່ານ​ຢ່າງ​ດຽວ ແກ້ໄຂທາງເລືອກ.

−ສ ກຽມຕົວ ex ສໍາລັບການນໍາໃຊ້ batch ໂດຍການດໍາເນີນການດັ່ງຕໍ່ໄປນີ້:

* ສະກັດກັ້ນການຂຽນຂໍ້ຄວາມ ແລະໃຫ້ຂໍ້ມູນ (ແຕ່ບໍ່ແມ່ນການວິນິດໄສ) ຂໍ້ຄວາມ.

* ບໍ່ສົນໃຈມູນຄ່າຂອງ TERM ແລະການປະຕິບັດໃດໆ terminal ເລີ່ມຕົ້ນປະເພດແລະ
ສົມມຸດວ່າ terminal ເປັນປະເພດທີ່ບໍ່ມີຄວາມສາມາດໃນການສະຫນັບສະຫນູນຮູບແບບເປີດຫຼືເບິ່ງເຫັນ;
ເບິ່ງໄດ້ ສາຍຕາ ຄໍາສັ່ງແລະຄໍາອະທິບາຍຂອງ vi.

* ສະ​ກັດ​ກັ້ນ​ການ​ນໍາ​ໃຊ້​ຂອງ​ ອອກໄປ ສະພາບແວດລ້ອມທີ່ມີການປ່ຽນແປງແລະການອ່ານໃດໆ
.exrc ໄຟລ໌; ເບິ່ງພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍ.

* ສະກັດກັ້ນ autoindentation, ບໍ່ສົນໃຈມູນຄ່າຂອງ autoindent ແກ້ໄຂທາງເລືອກ.

-t tagstring
ແກ້ໄຂໄຟລ໌ທີ່ລະບຸໄວ້ tagstring1 ເບິ່ງ ctags. ຄຸນນະສົມບັດແທັກ
ສະແດງໂດຍ -t tagstring ແລະ ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງແມ່ນທາງເລືອກ. ມັນຈະເປັນ
ສະຫນອງໃຫ້ຢູ່ໃນລະບົບໃດຫນຶ່ງທີ່ຍັງສະຫນອງການປະຕິບັດທີ່ສອດຄ່ອງຂອງ ctags;
ຖ້າບໍ່ດັ່ງນັ້ນ, ການນໍາໃຊ້ -t ສ້າງຜົນໄດ້ຮັບທີ່ບໍ່ໄດ້ກໍານົດ. ໃນລະບົບໃດກໍ່ຕາມ, ມັນຈະເປັນ
ຂໍ້ຜິດພາດໃນການລະບຸຫຼາຍກວ່າອັນດຽວ -t ທາງເລືອກ.

−v ເລີ່ມຕົ້ນໃນຮູບແບບສາຍຕາ (ເບິ່ງ vi).

−ວ ຂະຫນາດ ກໍານົດມູນຄ່າຂອງ ປ່ອງຢ້ຽມ ທາງເລືອກບັນນາທິການເພື່ອ ຂະຫນາດ.

ດໍາເນີນງານ


operand ຕໍ່​ໄປ​ນີ້​ຈະ​ໄດ້​ຮັບ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​:

ເອກະສານ ຊື່ເສັ້ນທາງຂອງໄຟລ໌ທີ່ຈະແກ້ໄຂ.

STDIN


ການປ້ອນຂໍ້ມູນມາດຕະຖານປະກອບດ້ວຍຊຸດຂອງຄໍາສັ່ງ ແລະຂໍ້ຄວາມປ້ອນຂໍ້ມູນ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນ
ພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍ. ການ​ປະ​ຕິ​ບັດ​ອາດ​ຈະ​ຈໍາ​ກັດ​ແຕ່​ລະ​ເສັ້ນ​ຂອງ​ມາດ​ຕະ​ຖານ​ການ​ເຂົ້າ​ເຖິງ​
ຄວາມຍາວຂອງ {LINE_MAX}.

ຖ້າ​ຫາກ​ວ່າ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ມາດ​ຕະ​ຖານ​ບໍ່​ແມ່ນ​ອຸ​ປະ​ກອນ​ຢູ່​ປາຍ​ຍອດ​, ມັນ​ຈະ​ເປັນ​ຖ້າ​ຫາກ​ວ່າ​ −ສ ທາງ​ເລືອກ​ທີ່​ໄດ້​ຮັບ​
ລະບຸ.

ຖ້າການອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານສົ່ງຄືນຂໍ້ຜິດພາດ, ຫຼືຖ້າບັນນາທິການກວດພົບການສິ້ນສຸດ.
ເງື່ອນໄຂໄຟລ໌ຈາກການປ້ອນຂໍ້ມູນມາດຕະຖານ, ມັນຈະເທົ່າກັບ SIGHUP asynchronous
ເຫດການ.

ປັດໄຈນໍາເຂົ້າ ເອກະສານ


ໄຟລ໌ປ້ອນຂໍ້ມູນຈະຕ້ອງເປັນໄຟລ໌ຂໍ້ຄວາມ ຫຼືໄຟລ໌ທີ່ເປັນໄຟລ໌ຂໍ້ຄວາມ ຍົກເວັ້ນໄຟລ໌ທີ່ບໍ່ຄົບຖ້ວນ
ແຖວສຸດທ້າຍທີ່ມີຄວາມຍາວບໍ່ເກີນ {LINE_MAX}−1 bytes ແລະບໍ່ມີ NUL
ຕົວລະຄອນ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ເສັ້ນສຸດທ້າຍທີ່ບໍ່ຄົບຖ້ວນຈະຖືກປະຕິບັດຄືກັບວ່າມັນມີສ່ວນຕໍ່ທ້າຍ
. ການແກ້ໄຂໄຟລ໌ຮູບແບບອື່ນໆອາດຈະໄດ້ຮັບອະນຸຍາດຈາກ ex
ການຈັດຕັ້ງປະຕິບັດ.

ໄດ້ .exrc ໄຟລ໌ແລະໄຟລ໌ແຫຼ່ງຕ້ອງເປັນໄຟລ໌ຂໍ້ຄວາມປະກອບດ້ວຍ ex ຄໍາສັ່ງ; ເບິ່ງ
ພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍ.

ໂດຍຄ່າເລີ່ມຕົ້ນ, ບັນນາທິການຈະຕ້ອງອ່ານແຖວຈາກໄຟລ໌ທີ່ຈະດັດແກ້ໂດຍບໍ່ມີການຕີຄວາມໝາຍ
ໃດໆຂອງເສັ້ນເຫຼົ່ານັ້ນເປັນຮູບແບບຂອງຄໍາສັ່ງບັນນາທິການ.

ENVIRONMENT ຄວາມຮັບຜິດຊອບ


ຕົວແປສະພາບແວດລ້ອມຕໍ່ໄປນີ້ຈະສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ ex:

ສີ ລົບລ້າງຂະໜາດໜ້າຈໍແນວນອນທີ່ລະບົບເລືອກ. ເບິ່ງຄໍານິຍາມພື້ນຖານ
ປະລິມານຂອງ POSIX.1-2008, ບົດ 8, ສະພາບແວດລ້ອມ Variables ສໍາລັບຄ່າທີ່ຖືກຕ້ອງແລະ
ຜົນໄດ້ຮັບໃນເວລາທີ່ມັນບໍ່ໄດ້ຖືກຕັ້ງຫຼື null.

ອອກໄປ ກໍານົດບັນຊີລາຍຊື່ຂອງ ex ຄໍາສັ່ງທີ່ຖືກປະຕິບັດໃນການເລີ່ມຕົ້ນບັນນາທິການ. ເບິ່ງ
ພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍສຳລັບລາຍລະອຽດເພີ່ມເຕີມຂອງໄລຍະເລີ່ມຕົ້ນ.

ຫນ້າທໍາອິດ ກໍານົດຊື່ເສັ້ນທາງຂອງໄດເລກະທໍລີທີ່ຈະຖືກຄົ້ນຫາສໍາລັບບັນນາທິການເລີ່ມຕົ້ນ -
ໄຟລ໌ທີ່ມີຊື່ .exrc; ເບິ່ງພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍ.

ພາສາ ໃຫ້ຄ່າເລີ່ມຕົ້ນສໍາລັບຕົວແປສາກົນທີ່ບໍ່ໄດ້ຕັ້ງ ຫຼື
null. (ເບິ່ງປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 8.2,
Internationalization Variables ​ເພື່ອ​ຄວາມ​ກ້າວໜ້າ​ຂອງ​ການ​ຫັນ​ເປັນ​ສາກົນ
ຕົວແປທີ່ໃຊ້ເພື່ອກໍານົດຄ່າຂອງປະເພດທ້ອງຖິ່ນ.)

LC_ALL ຖ້າຕັ້ງເປັນຄ່າສະຕຣິງທີ່ບໍ່ຫວ່າງເປົ່າ, ລົບລ້າງຄ່າຂອງອັນອື່ນທັງໝົດ
ຕົວແປສາກົນ.

LC_COLLATE
ກໍານົດສະຖານທີ່ສໍາລັບພຶດຕິກໍາຂອງໄລຍະ, ຫ້ອງຮຽນທຽບເທົ່າ, ແລະ multi-
ອົງປະກອບການລວບລວມຕົວລະຄອນພາຍໃນສໍານວນປົກກະຕິ.

LC_CTYPE ກໍານົດທ້ອງຖິ່ນສໍາລັບການຕີຄວາມລໍາດັບຂອງ bytes ຂອງຂໍ້ມູນຂໍ້ຄວາມ
ເປັນຕົວອັກສອນ (ຕົວຢ່າງ, single-byte ກົງກັນຂ້າມກັບ multi-byte ຕົວອັກສອນໃນ
arguments ແລະ input ໄຟລ໌), ພຶດຕິກໍາຂອງຫ້ອງຮຽນລັກສະນະພາຍໃນປົກກະຕິ
ການສະແດງອອກ, ການຈັດປະເພດຂອງຕົວອັກສອນເປັນຕົວພິມໃຫຍ່ຫຼືຕົວພິມນ້ອຍ,
ການ​ປ່ຽນ​ຕົວ​ອັກ​ສອນ​ກໍ​ລະ​ນີ​, ແລະ​ການ​ຊອກ​ຫາ​ຂອງ​ຂອບ​ເຂດ​ຄໍາ​ສັບ​ຕ່າງໆ​.

LC_MESSAGES
ກໍານົດທ້ອງຖິ່ນທີ່ຄວນຈະຖືກນໍາໃຊ້ເພື່ອຜົນກະທົບຕໍ່ຮູບແບບແລະເນື້ອໃນຂອງ
ຂໍ້ຄວາມການວິນິໄສທີ່ຂຽນເປັນຄວາມຜິດພາດມາດຕະຖານ.

ເສັ້ນ ລົບລ້າງຂະໜາດໜ້າຈໍແນວຕັ້ງທີ່ລະບົບເລືອກ, ໃຊ້ເປັນຈຳນວນແຖວ
ໃນຫນ້າຈໍແລະຂະຫນາດຫນ້າຈໍຕັ້ງໃນໂຫມດສາຍຕາ. ເບິ່ງຖານ
ປະລິມານຄໍານິຍາມຂອງ POSIX.1-2008, ບົດ 8, ສະພາບແວດລ້ອມ Variables ສໍາລັບທີ່ຖືກຕ້ອງ
ຄ່າ ແລະຜົນໄດ້ຮັບເມື່ອມັນບໍ່ໄດ້ຖືກຕັ້ງ ຫຼື null.

NLSPATH ກໍານົດສະຖານທີ່ຂອງລາຍການຂໍ້ຄວາມສໍາລັບການປະມວນຜົນຂອງ LC_MESSAGES.

PATH ກໍານົດເສັ້ນທາງຄົ້ນຫາສໍາລັບຄໍາສັ່ງ shell ທີ່ລະບຸໄວ້ໃນ ex ບັນນາທິການ
ຄໍາສັ່ງ !, ຫອຍ, ອ່ານ, ແລະ ຂຽນ, ແລະຄໍາສັ່ງຮູບແບບເປີດແລະສາຍຕາ !1 ເບິ່ງ
ລາຍລະອຽດຂອງການຄົ້ນຫາຄໍາສັ່ງແລະການປະຕິບັດໃນ ສ່ວນ 2.9.1.1, ຄໍາສັ່ງ
ຄົ້ນຫາ ແລະ ການບໍລິຫານ.

SHELL ກໍານົດຕົວແປສາຍຄໍາສັ່ງທີ່ຕ້ອງການສໍາລັບການນໍາໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນຂອງ
ໄດ້ ຫອຍ ແກ້ໄຂທາງເລືອກ.

TERM ກໍານົດຊື່ຂອງປະເພດ terminal. ຖ້າຕົວແປນີ້ບໍ່ໄດ້ຖືກຕັ້ງ ຫຼື null, an
ປະເພດ terminal ເລີ່ມຕົ້ນທີ່ບໍ່ໄດ້ກໍານົດຈະຖືກນໍາໃຊ້.

ASYNCHRONOUS ເຫດການ


ຄຳສັບຕໍ່ໄປນີ້ແມ່ນໃຊ້ໃນສ່ວນນີ້ ແລະຕໍ່ໄປນີ້ເພື່ອລະບຸຄຳສັ່ງ ແລະ
ການ​ປະ​ຕິ​ບັດ​ເຫດ​ການ asynchronous​:

ສົມບູນ ຂຽນ
ການຂຽນທີ່ສົມບູນແມ່ນການຂຽນເນື້ອໃນທັງຫມົດຂອງການແກ້ໄຂ buffer ໄປຫາໄຟລ໌
ປະເພດອື່ນນອກເໜືອໄປຈາກອຸປະກອນ terminal, ຫຼືການປະຫຍັດ buffer ແກ້ໄຂທີ່ເກີດ
ໂດຍຜູ້ໃຊ້ປະຕິບັດການ ex ຮັກສາ ຄໍາສັ່ງ. ການຂຽນເນື້ອໃນຂອງການແກ້ໄຂ
buffer ກັບໄຟລ໌ຊົ່ວຄາວທີ່ຈະເອົາອອກໃນເວລາທີ່ບັນນາທິການຈະບໍ່ໄດ້ອອກ
ຖືວ່າເປັນການຂຽນທີ່ສົມບູນ.

ການ​ປະ​ຕິ​ບັດ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ຈະ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​ຕາມ​ການ​ໄດ້​ຮັບ​ສັນ​ຍານ​:

SIGINT ຖ້າການປ້ອນຂໍ້ມູນມາດຕະຖານບໍ່ແມ່ນອຸປະກອນ terminal, ex ຈະບໍ່ຂຽນໄຟລ໌ຫຼື
ກັບຄືນສູ່ຮູບແບບການປ້ອນຄໍາສັ່ງ ຫຼືຂໍ້ຄວາມ, ແລະຈະອອກດ້ວຍການອອກທີ່ບໍ່ແມ່ນສູນ
ສະຖານະພາບ.

ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ປະ​ຕິ​ບັດ​ຄໍາ​ສັ່ງ​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​ເປີດ​ຫຼື​ພາບ​, ex ໃນໃບຮັບເງິນ
ຂອງ SIGINT ຈະປະຕິບັດຕົວດຽວກັນກັບການໄດ້ຮັບຂອງຕົນ ລັກສະນະ.

ຖ້າບໍ່ດັ່ງນັ້ນ:

1. ຖ້າປະຕິບັດການ ex ຄໍາສັ່ງຮູບແບບການປ້ອນຂໍ້ຄວາມ, ເສັ້ນການປ້ອນຂໍ້ມູນທັງໝົດທີ່ໄດ້ມາ
ປ້ອນເຂົ້າຢ່າງສົມບູນຈະຖືກແກ້ໄຂໃນ buffer ແກ້ໄຂ, ແລະບາງສ່ວນ
ເສັ້ນທີ່ເຂົ້າມາຈະຖືກຍົກເລີກ.

2. ຖ້າມີຄໍາສັ່ງປະຕິບັດໃນປັດຈຸບັນ, ມັນຈະຖືກຍົກເລີກແລະຂໍ້ຄວາມ
ສະແດງ. ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນໂດຍ ex or vi ລາຍ​ລະ​ອຽດ​ຄໍາ​ສັ່ງ​,
ມັນບໍ່ໄດ້ຖືກລະບຸວ່າເສັ້ນໃດທີ່ຖືກດັດແປງໂດຍຄໍາສັ່ງປະຕິບັດປາກົດ
ດັດແກ້, ຫຼືດັ່ງທີ່ພວກມັນເປັນກ່ອນທີ່ຈະຖືກດັດແກ້ໂດຍຄໍາສັ່ງປະຕິບັດ, ໃນ
buffer ໄດ້.

ຖ້າຄໍາສັ່ງປະຕິບັດໃນປັດຈຸບັນເປັນຄໍາສັ່ງການເຄື່ອນໄຫວ, ທີ່ກ່ຽວຂ້ອງຂອງມັນ
ຄໍາສັ່ງຈະຖືກຍົກເລີກ.

3. ຖ້າຢູ່ໃນໂຫມດຄໍາສັ່ງເປີດຫຼືເບິ່ງເຫັນ, terminal ຈະໄດ້ຮັບການເຕືອນ.

4. ຫຼັງຈາກນັ້ນບັນນາທິການຈະຕ້ອງກັບຄືນສູ່ຮູບແບບຄໍາສັ່ງ.

SIGCONT ໜ້າຈໍຈະຖືກໂຫຼດຄືນໃໝ່ຖ້າຢູ່ໃນໂໝດເປີດ ຫຼື ສາຍຕາ.

SIGHUP ຖ້າການແກ້ໄຂ buffer ໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ການຂຽນທີ່ສົມບູນຄັ້ງສຸດທ້າຍ, ex ຈະ
ພະ​ຍາ​ຍາມ​ທີ່​ຈະ​ຊ່ວຍ​ປະ​ຢັດ buffer ການ​ແກ້​ໄຂ​ດັ່ງ​ນັ້ນ​ມັນ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ​ພາຍ​ຫຼັງ​ການ​ນໍາ​ໃຊ້​ -r
ທາງເລືອກຫຼື ex ກູ້ຄືນ ຄໍາສັ່ງ. ບັນນາທິການຈະບໍ່ຂຽນໄຟລ໌ຫຼືສົ່ງຄືນ
ໃນ​ການ​ສັ່ງ​ຫຼື​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​, ແລະ​ຈະ​ສິ້ນ​ສຸດ​ດ້ວຍ​ສະ​ຖາ​ນະ​ການ​ອອກ​ທີ່​ບໍ່​ແມ່ນ​ສູນ​.

SIGTERM ອ້າງເຖິງ SIGHUP.

ການດໍາເນີນການສໍາລັບສັນຍານອື່ນໆທັງຫມົດແມ່ນບໍ່ຖືກກໍານົດ.

STDOUT


ຜົນຜະລິດມາດຕະຖານຈະຖືກນໍາໃຊ້ພຽງແຕ່ສໍາລັບການຂຽນ prompts ກັບຜູ້ໃຊ້, ສໍາລັບຂໍ້ມູນຂ່າວສານ
ຂໍ້ຄວາມ, ແລະສໍາລັບການຂຽນເສັ້ນຈາກໄຟລ໌.

ສະດຸດ


ຄວາມຜິດພາດມາດຕະຖານຈະຖືກນໍາໃຊ້ສໍາລັບຂໍ້ຄວາມວິນິດໄສເທົ່ານັ້ນ.

OUTPUT ເອກະສານ


ຜົນໄດ້ຮັບຈາກ ex ຈະເປັນໄຟລ໌ຂໍ້ຄວາມ.

ອະທິບາຍ ລາຍລະອຽດ


ພຽງແຕ່ໄດ້ ex ຮູບແບບຂອງບັນນາທິການໄດ້ຖືກອະທິບາຍຢູ່ໃນພາກນີ້. ເບິ່ງ vi ສໍາລັບການດັດແກ້ເພີ່ມເຕີມ
ຄວາມສາມາດທີ່ມີຢູ່ໃນ ex.

ເມື່ອ​ເກີດ​ຄວາມ​ຜິດ​ພາດ​, ex ຈະຂຽນຂໍ້ຄວາມ. ຖ້າສະຖານີຮອງຮັບຮູບແບບໂດດເດັ່ນ
(ເຊັ່ນ: ວິດີໂອປີ້ນກັບກັນ), ຂໍ້ຄວາມຈະຖືກຂຽນໃນໂຫມດໂດດເດັ່ນ. ຖ້າຢູ່ປາຍຍອດ
ບໍ່ຮອງຮັບຮູບແບບທີ່ໂດດເດັ່ນ, ແລະຕົວເລືອກການແກ້ໄຂ ກະດິ່ງຜິດພາດ ຖືກ​ຕັ້ງ​ໄວ້​, ການ​ປະ​ຕິ​ບັດ​ການ​ແຈ້ງ​ເຕືອນ​
ຈະນໍາຫນ້າຂໍ້ຄວາມຄວາມຜິດພາດ.

ໂດຍຕົວຢ່າງ, ex ຈະເລີ່ມຕົ້ນໃນຮູບແບບຄໍາສັ່ງ, ເຊິ່ງຈະຖືກຊີ້ບອກໂດຍ a : ດ່ວນ; ເບິ່ງ
ໄດ້ ການກະຕຸ້ນເຕືອນ ຄໍາສັ່ງ. ຮູບແບບການປ້ອນຂໍ້ຄວາມສາມາດເຂົ້າໄດ້ໂດຍ ເພີ່ມເຕີມ, ໃສ່, ຫຼື ການປ່ຽນແປງ
ຄໍາສັ່ງ; ມັນ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ອອກ​ຈາກ (ແລະ​ຮູບ​ແບບ​ຄໍາ​ສັ່ງ​ເຂົ້າ​ມາ​ໃຫມ່​) ໂດຍ​ການ​ພິມ a ('.') ຄົນດຽວ
ໃນຕອນຕົ້ນຂອງແຖວ.

ການລິເລີ່ມ in ex ແລະ vi
ສັນຍາລັກຕໍ່ໄປນີ້ແມ່ນໃຊ້ໃນສ່ວນນີ້ ແລະຕໍ່ໄປນີ້ເພື່ອລະບຸສະຖານທີ່ຢູ່ໃນ
ແກ້ໄຂ buffer:

ຈັບສະຫຼັບ ແລະ ໃນປະຈຸບັນ ຊື່ເສັ້ນທາງ
ສອງຊື່, ຊື່ ໃນປະຈຸບັນ ແລະ ຈັບສະຫຼັບ, ຖືກຮັກສາໄວ້ໂດຍບັນນາທິການ. ໃດ ex
ຄໍາ​ສັ່ງ​ທີ່​ເອົາ​ຊື່​ໄຟລ​໌​ເປັນ​ການ​ໂຕ້​ຖຽງ​ຈະ​ກໍາ​ນົດ​ໃຫ້​ເຂົາ​ເຈົ້າ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

1. ຖ້າເປັນ ເອກະສານ ການໂຕ້ຖຽງແມ່ນໄດ້ລະບຸໄວ້ໃນ ex ດັດແກ້, ex, ຫຼື ກູ້ຄືນ ຄໍາສັ່ງ, ຫຼືຖ້າຫາກວ່າ
an ex ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງແທນເນື້ອໃນຂອງການແກ້ໄຂ buffer.

ກ. ຖ້າຄໍາສັ່ງແທນເນື້ອໃນຂອງການແກ້ໄຂ buffer, ປະຈຸບັນ
ຊື່ເສັ້ນທາງຈະຖືກຕັ້ງເປັນ ເອກະສານ argument ຫຼືໄຟລ໌ທີ່ຊີ້ບອກໂດຍ tag,
ແລະຊື່ເສັ້ນທາງສຳຮອງຈະຖືກຕັ້ງເປັນຄ່າທີ່ຜ່ານມາຂອງປັດຈຸບັນ
ຊື່ເສັ້ນທາງ.

ຂ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຊື່ເສັ້ນທາງສຳຮອງຈະຖືກຕັ້ງເປັນ ເອກະສານ ການໂຕ້ຖຽງ.

2. ຖ້າເປັນ ເອກະສານ ການໂຕ້ຖຽງແມ່ນໄດ້ລະບຸໄວ້ໃນ ex ຕໍ່ໄປ ຄໍາສັ່ງ:

ກ. ຖ້າຄໍາສັ່ງແທນເນື້ອໃນຂອງການແກ້ໄຂ buffer, ປະຈຸບັນ
ຊື່ເສັ້ນທາງຈະຖືກຕັ້ງເປັນອັນທໍາອິດ ເອກະສານ argument, ແລະຊື່ເສັ້ນທາງທາງເລືອກ
ຈະຖືກຕັ້ງເປັນຄ່າກ່ອນໜ້າຂອງຊື່ເສັ້ນທາງປັດຈຸບັນ.

3. ຖ້າເປັນ ເອກະສານ ການໂຕ້ຖຽງແມ່ນໄດ້ລະບຸໄວ້ໃນ ex ເອກະສານ ຄໍາສັ່ງ, ຊື່ເສັ້ນທາງປະຈຸບັນ
ຈະຖືກຕັ້ງເປັນ ເອກະສານ ການໂຕ້ຖຽງ, ແລະຊື່ເສັ້ນທາງສະຫຼັບຈະຖືກຕັ້ງເປັນ
ຄ່າທີ່ຜ່ານມາຂອງຊື່ເສັ້ນທາງປະຈຸບັນ.

4. ຖ້າເປັນ ເອກະສານ ການໂຕ້ຖຽງແມ່ນໄດ້ລະບຸໄວ້ໃນ ex ອ່ານ ແລະ ຂຽນ ຄໍາສັ່ງ (ນັ້ນແມ່ນ, ເມື່ອ
ອ່ານຫຼືຂຽນໄຟລ໌, ແລະບໍ່ແມ່ນໂຄງການທີ່ມີຊື່ໂດຍ ຫອຍ ດັດແກ້
ທາງເລືອກ), ຫຼື a ເອກະສານ ການໂຕ້ຖຽງແມ່ນໄດ້ລະບຸໄວ້ໃນ ex xit ຄໍາສັ່ງ:

ກ. ຖ້າຊື່ເສັ້ນທາງປະຈຸບັນບໍ່ມີຄ່າ, ຊື່ເສັ້ນທາງປະຈຸບັນຈະຖືກຕັ້ງເປັນ
ໄດ້ ເອກະສານ ການໂຕ້ຖຽງ.

ຂ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຊື່ເສັ້ນທາງສຳຮອງຈະຖືກຕັ້ງເປັນ ເອກະສານ ການໂຕ້ຖຽງ.

ຖ້າຊື່ເສັ້ນທາງສຳຮອງຖືກຕັ້ງເປັນຄ່າກ່ອນໜ້າຂອງຊື່ເສັ້ນທາງປັດຈຸບັນເມື່ອໃດ
ຊື່ເສັ້ນທາງປັດຈຸບັນບໍ່ມີຄ່າກ່ອນໜ້າ, ຈາກນັ້ນຊື່ເສັ້ນທາງສຳຮອງຈະມີ
ບໍ່ມີຄ່າເປັນຜົນມາຈາກ.

ໃນປະຈຸບັນ ອອນໄລນ໌
ແຖວຂອງການແກ້ໄຂບັຟເຟີທີ່ອ້າງອີງໂດຍຕົວກະພິບ. ຄໍາອະທິບາຍຄໍາສັ່ງແຕ່ລະຄົນ
ກໍານົດເສັ້ນປະຈຸບັນຫຼັງຈາກຄໍາສັ່ງໄດ້ຖືກປະຕິບັດ, ເປັນ ໃນປະຈຸບັນ ອອນໄລນ໌
ມູນຄ່າ. ເມື່ອ buffer ດັດແກ້ບໍ່ມີເສັ້ນ, ເສັ້ນປະຈຸບັນຈະເປັນສູນ; ເບິ່ງ
ທີ່ຢູ່ in ex.

ໃນປະຈຸບັນ ຖັນ
ຖັນແຖວສະແດງປັດຈຸບັນຖືກຍຶດໂດຍຕົວກະພິບ. (ຖັນຈະຕ້ອງເປັນ
ຕົວເລກເລີ່ມຕົ້ນທີ່ 1.) ແຕ່ລະຄໍາອະທິບາຍຄໍາສັ່ງກໍານົດຖັນປະຈຸບັນ
ຫຼັງຈາກຄໍາສັ່ງໄດ້ຖືກປະຕິບັດ, ເປັນ ໃນປະຈຸບັນ ຖັນ ຄ່າ. ຖັນນີ້ແມ່ນເປັນ
ທີ່ເຫມາະສົມ ຖັນທີ່ຈື່ໄດ້ຕະຫຼອດຊີວິດຂອງບັນນາທິການ. ການສະແດງຕົວຈິງ
ຖັນແຖວທີ່ຕົວກະພິບວາງໄວ້ອາດຈະແຕກຕ່າງຈາກຖັນປັດຈຸບັນ;
ເບິ່ງການສົນທະນາການຈັດຕໍາແຫນ່ງຕົວກະພິບໃນ ຄໍາສັ່ງ ຄໍາອະທິບາຍ in vi.

ທີ່ກໍານົດໄວ້ to ບໍ່ແມ່ນ
ລາຍ​ລະ​ອຽດ​ສໍາ​ລັບ​ຄ່າ​ຖັນ​ປະ​ຈຸ​ບັນ​, ຊຶ່ງ​ຫມາຍ​ຄວາມ​ວ່າ​ຖັນ​ປັດ​ຈຸ​ບັນ​ຈະ​ເປັນ​
ຕັ້ງເປັນຖັນແຖວສະແດງຜົນສຸດທ້າຍທີ່ສະແດງສ່ວນໃດນຶ່ງຂອງທຳອິດ
ບໍ່ແມ່ນ ຂອງສາຍ. ຖ້າສາຍບໍ່ມີບໍ່ແມ່ນ. ບໍ່ແມ່ນ ຕົວ​ອັກ​ສອນ​,
ຖັນປະຈຸບັນຈະຖືກຕັ້ງເປັນຖັນແຖວການສະແດງຜົນສຸດທ້າຍທີ່ຢູ່ເທິງນັ້ນ
ສະແດງສ່ວນໃດນຶ່ງຂອງອັນສຸດທ້າຍທີ່ບໍ່ແມ່ນ ລັກ​ສະ​ນະ​ໃນ​ເສັ້ນ​. ຖ້າສາຍແມ່ນ
ຫວ່າງເປົ່າ, ຖັນປະຈຸບັນຈະຖືກຕັ້ງເປັນຖັນແຖວທີ 1.

ຄວາມ​ຍາວ​ຂອງ​ແຖວ​ໃນ​ການ​ແກ້​ໄຂ buffer ອາດ​ຈະ​ຖືກ​ຈໍາ​ກັດ​ທີ່ {LINE_MAX} bytes. ໃນ​ການ​ເປີດ​ແລະ​
ຮູບ​ແບບ​ການ​ສາຍ​ຕາ​, ຄວາມ​ຍາວ​ຂອງ​ເສັ້ນ​ໃນ​ການ​ແກ້​ໄຂ buffer ອາດ​ຈະ​ຖືກ​ຈໍາ​ກັດ​ຈໍາ​ນວນ​ຂອງ​
ຕົວອັກສອນທີ່ຈະເຫມາະໃນການສະແດງ. ຖ້າເກີນຂອບເຂດຈໍາກັດໃນລະຫວ່າງການດັດແກ້, an
ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ຈະ​ໄດ້​ຮັບ​ການ​ຂຽນ​. ຖ້າຂີດຈຳກັດອັນໃດນຶ່ງເກີນຂອບເຂດທີ່ອ່ານຈາກໄຟລ໌ໃດໜຶ່ງ,
ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ຈະ​ໄດ້​ຮັບ​ການ​ລາຍ​ລັກ​ອັກ​ສອນ​ແລະ​ກອງ​ປະ​ຊຸມ​ແກ້​ໄຂ​ອາດ​ຈະ​ຖືກ​ລະ​ງັບ​.

ຖ້າບັນນາທິການຢຸດເຮັດວຽກຍ້ອນເຫດຜົນອື່ນນອກເຫນືອຈາກຄໍາສັ່ງຂອງຜູ້ໃຊ້, ແລະການແກ້ໄຂ
buffer ໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ການຂຽນທີ່ສົມບູນຄັ້ງສຸດທ້າຍ, ມັນຈະເທົ່າກັບ SIGHUP.
ເຫດການ asynchronous. ຖ້າລະບົບຂັດຂ້ອງ, ມັນຈະເທົ່າກັບ SIGHUP asynchronous
ເຫດການ.

ໃນ​ລະ​ຫວ່າງ​ການ​ເລີ່ມ​ຕົ້ນ (ກ່ອນ​ທີ່​ໄຟລ​໌​ທໍາ​ອິດ​ຈະ​ຖືກ​ຄັດ​ລອກ​ເຂົ້າ​ໄປ​ໃນ​ການ​ແກ້​ໄຂ buffer ຫຼື​ຜູ້​ໃຊ້​ໃດ​ຫນຶ່ງ​
ຄໍາ​ສັ່ງ​ຈາກ terminal ຖືກ​ປະ​ຕິ​ບັດ​) ສິ່ງ​ຕໍ່​ໄປ​ນີ້​ຈະ​ເກີດ​ຂຶ້ນ​:

1. ຖ້າສະພາບແວດລ້ອມປ່ຽນແປງ ອອກໄປ ຖືກກໍານົດ, ບັນນາທິການຈະດໍາເນີນການ ex ຄໍາສັ່ງ
ບັນຈຸຢູ່ໃນຕົວແປນັ້ນ.

2. ຖ້າທ ອອກໄປ ຕົວແປບໍ່ໄດ້ຕັ້ງ, ແລະທັງໝົດຕໍ່ໄປນີ້ແມ່ນຄວາມຈິງ:

ກ. ທ ຫນ້າທໍາອິດ ຕົວແປສະພາບແວດລ້ອມບໍ່ແມ່ນ null ແລະບໍ່ແມ່ນຫວ່າງເປົ່າ.

ຂ. ໄຟລ໌ .exrc ໃນໄດເລກະທໍລີທີ່ກ່າວເຖິງໂດຍ ຫນ້າທໍາອິດ ຕົວແປສະພາບແວດລ້ອມ:

i. ມີຢູ່

ii. ແມ່ນເປັນເຈົ້າຂອງໂດຍ ID ຜູ້ໃຊ້ດຽວກັນກັບ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງຂອງຂະບວນການຫຼື
ຂະບວນການມີສິດທິພິເສດທີ່ເຫມາະສົມ

iii. ບໍ່ສາມາດຂຽນໄດ້ໂດຍຜູ້ອື່ນນອກຈາກເຈົ້າຂອງ

ບັນນາທິການຈະຕ້ອງປະຕິບັດ ex ຄໍາສັ່ງທີ່ມີຢູ່ໃນໄຟລ໌ນັ້ນ.

3. ຖ້າແລະພຽງແຕ່ຖ້າຫາກວ່າທັງຫມົດຕໍ່ໄປນີ້ແມ່ນຄວາມຈິງ:

ກ. ໄດເລກະທໍລີປະຈຸບັນບໍ່ໄດ້ອ້າງເຖິງໂດຍ ຫນ້າທໍາອິດ environment variable

ຂ. ຄໍາສັ່ງຢູ່ໃນ ອອກໄປ ຕົວແປສະພາບແວດລ້ອມຫຼືຄໍາສັ່ງໃນ .exrc ໄຟລ໌ໃນ
ໄດເລກະທໍລີທີ່ອ້າງເຖິງໂດຍ ຫນ້າທໍາອິດ ຕົວແປສະພາບແວດລ້ອມກໍານົດທາງເລືອກບັນນາທິການ
exrc.

.exrc ໄຟລ໌ໃນໄດເລກະທໍລີປະຈຸບັນ:

i. ມີຢູ່

ii. ແມ່ນເປັນເຈົ້າຂອງໂດຍ ID ຜູ້ໃຊ້ດຽວກັນກັບ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງຂອງຂະບວນການ, ຫຼືໂດຍຫນຶ່ງໃນ
ຊຸດຂອງ ID ຜູ້ໃຊ້ທີ່ກໍານົດໂດຍການປະຕິບັດ

iii. ບໍ່ສາມາດຂຽນໄດ້ໂດຍຜູ້ອື່ນນອກຈາກເຈົ້າຂອງ

ບັນນາທິການຈະຕ້ອງພະຍາຍາມປະຕິບັດ ex ຄໍາສັ່ງທີ່ມີຢູ່ໃນໄຟລ໌ນັ້ນ.

ສາຍໃນອັນໃດ .exrc ໄຟລ໌ທີ່ເປັນເສັ້ນເປົ່າຈະຖືກລະເລີຍ. ຖ້າ​ມີ .exrc ມີ​ໄຟລ​໌​,
ແຕ່ບໍ່ໄດ້ອ່ານດ້ວຍເຫດຜົນການເປັນເຈົ້າຂອງຫຼືການອະນຸຍາດ, ມັນຈະເປັນຄວາມຜິດພາດ.

ພາຍຫຼັງທີ່ໄດ້ ອອກໄປ ຕົວແປແລະໃດໆ .exrc ໄຟລ໌ຖືກປະມວນຜົນ, ໄຟລ໌ທໍາອິດທີ່ລະບຸໄວ້ໂດຍ
ຜູ້​ໃຊ້​ຈະ​ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​, ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

1. ຖ້າຜູ້ໃຊ້ໄດ້ລະບຸ -t ທາງ​ເລືອກ​, ຜົນ​ກະ​ທົບ​ຈະ​ເປັນ​ຖ້າ​ຫາກ​ວ່າ​ ex ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງແມ່ນ
ປ້ອນດ້ວຍການໂຕ້ຖຽງທີ່ລະບຸ, ມີຂໍ້ຍົກເວັ້ນວ່າຖ້າການປະມວນຜົນແທັກເຮັດ
ບໍ່ມີຜົນໃນໄຟລ໌ທີ່ຈະແກ້ໄຂ, ຜົນກະທົບຈະຕ້ອງໄດ້ອະທິບາຍໄວ້ໃນຂັ້ນຕອນ 3 ຂ້າງລຸ່ມນີ້.

2. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຜູ້ໃຊ້ກໍານົດເສັ້ນຄໍາສັ່ງໃດໆ ເອກະສານ ການໂຕ້ຖຽງ, ຜົນກະທົບຈະເປັນ
ຄືກັບວ່າ ex ດັດແກ້ ຄໍາສັ່ງຖືກໃສ່ກັບຄັ້ງທໍາອິດຂອງການໂຕ້ຖຽງເຫຼົ່ານັ້ນເປັນຂອງມັນ ເອກະສານ
ການໂຕ້ຖຽງ.

3. ຖ້າບໍ່ດັ່ງນັ້ນ, ຜົນກະທົບຈະຄືກັບວ່າ ex ດັດແກ້ ຄໍາສັ່ງຖືກໃສ່ດ້ວຍ a
ຊື່ໄຟລ໌ທີ່ບໍ່ມີຢູ່ເປັນຂອງມັນ ເອກະສານ ການໂຕ້ຖຽງ. ມັນ​ບໍ່​ໄດ້​ຖືກ​ລະ​ບຸ​ວ່າ​ການ​ກະ​ທໍາ​ນີ້​ຈະ​
ຕັ້ງຊື່ເສັ້ນທາງປະຈຸບັນ. ໃນການປະຕິບັດທີ່ການປະຕິບັດນີ້ບໍ່ໄດ້ກໍານົດ
ຊື່ເສັ້ນທາງປະຈຸບັນ, ຄໍາສັ່ງບັນນາທິການໃດໆທີ່ໃຊ້ຊື່ເສັ້ນທາງປະຈຸບັນຈະລົ້ມເຫລວຈົນກ່ວາເປັນ
ຄໍາສັ່ງບັນນາທິການກໍານົດຊື່ເສັ້ນທາງປະຈຸບັນ.

ຖ້າ -r ທາງ​ເລືອກ​ທີ່​ໄດ້​ຖືກ​ລະ​ບຸ​ໄວ້​, ຄັ້ງ​ທໍາ​ອິດ​ໄຟລ​໌​ໃນ​ບັນ​ຊີ​ລາຍ​ການ​ການ​ໂຕ້​ຖຽງ​ເບື້ອງ​ຕົ້ນ​ຫຼື a​
ໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍ -t ທາງ​ເລືອກ​ແມ່ນ​ການ​ແກ້​ໄຂ​, ຖ້າ​ຫາກ​ວ່າ​ຂໍ້​ມູນ​ການ​ຟື້ນ​ຕົວ​ໄດ້​ຜ່ານ​ມາ​
ບັນທຶກກ່ຽວກັບມັນ, ຂໍ້ມູນນັ້ນຈະຖືກຟື້ນຕົວແລະບັນນາທິການຈະປະຕິບັດຄືກັບວ່າ
ເນື້ອໃນຂອງການແກ້ໄຂ buffer ໄດ້ຖືກດັດແກ້ແລ້ວ. ຖ້າ​ຫາກ​ວ່າ​ມີ​ຫຼາຍ​ຕົວ​ຢ່າງ​ຂອງ​
ໄຟລ​໌​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຕົວ​, ຫນຶ່ງ​ທີ່​ບັນ​ທຶກ​ໄວ້​ບໍ່​ດົນ​ມາ​ນີ້​ຈະ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ​, ແລະ​
ຂໍ້​ຄວາມ​ໃຫ້​ຂໍ້​ມູນ​ທີ່​ມີ​ສະ​ບັບ​ຜ່ານ​ມາ​ຂອງ​ໄຟລ​໌​ທີ່​ສາ​ມາດ​ຟື້ນ​ຕົວ​ໄດ້​
ຈະຖືກຂຽນ. ຖ້າບໍ່ມີຂໍ້ມູນການກູ້ຂໍ້ມູນກ່ຽວກັບໄຟລ໌, ຂໍ້ມູນ
ຂໍ້ຄວາມຕໍ່ກັບຜົນກະທົບນີ້ຈະຖືກຂຽນ, ແລະການແກ້ໄຂຈະດໍາເນີນໄປເປັນປົກກະຕິ.

ຖ້າ −ຄ ທາງ​ເລືອກ​ໄດ້​ຖືກ​ລະ​ບຸ​ໄວ້, ຄັ້ງ​ທໍາ​ອິດ​ທີ່​ມີ​ໄຟລ​໌​ທີ່​ມີ​ຢູ່​ແລ້ວ (ລວມ​ທັງ a
ໄຟລ​໌​ທີ່​ອາດ​ຈະ​ບໍ່​ມີ​ແຕ່​ສໍາ​ລັບ​ການ​ທີ່​ມີ​ຂໍ້​ມູນ​ການ​ຟື້ນ​ຕົວ​, ໃນ​ເວ​ລາ​ທີ່​ -r
ທາງ​ເລືອກ​ແມ່ນ​ລະ​ບຸ​ໄວ້​) ທົດ​ແທນ​ຫຼື​ການ​ເລີ່ມ​ຕົ້ນ​ເນື້ອ​ໃນ​ຂອງ​ການ​ແກ້​ໄຂ​, ການ​ປະ​ຈຸ​ບັນ​
ແຖວຈະຖືກຕັ້ງເປັນແຖວສຸດທ້າຍຂອງການແກ້ໄຂ buffer, ຖັນປະຈຸບັນຈະຖືກຕັ້ງເປັນ
ບໍ່ແມ່ນ , ແລະ ex ຄໍາ​ສັ່ງ​ທີ່​ລະ​ບຸ​ໄວ້​ກັບ​ −ຄ ທາງ​ເລືອກ​ຈະ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​. ໃນ​ນີ້
ກໍ​ລະ​ນີ​, ເສັ້ນ​ປະ​ຈຸ​ບັນ​ແລະ​ຖັນ​ປະ​ຈຸ​ບັນ​ຈະ​ບໍ່​ໄດ້​ຮັບ​ການ​ກໍາ​ນົດ​ໄວ້​ດັ່ງ​ທີ່​ອະ​ທິ​ບາຍ​ສໍາ​ລັບ​ຄໍາ​ສັ່ງ​
ທີ່​ກ່ຽວ​ຂ້ອງ​ກັບ​ການ​ທົດ​ແທນ​ຫຼື​ການ​ເລີ່ມ​ຕົ້ນ​ຂອງ​ເນື້ອ​ໃນ​ການ​ດັດ​ແກ້​. ຢ່າງໃດກໍຕາມ, ຖ້າ
ໄດ້ -t ທາງ​ເລືອກ​ຫຼື a ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາ​ສັ່ງ​ແມ່ນ​ກ່ຽວ​ຂ້ອງ​ກັບ​ການ​ປະ​ຕິ​ບັດ​ນີ້​, ໄດ້​ −ຄ ຄໍາສັ່ງທາງເລືອກ
ຈະຖືກປະຕິບັດແລະຫຼັງຈາກນັ້ນການເຄື່ອນໄຫວໄປຫາແທັກຈະຖືກປະຕິບັດ.

ບັນຊີລາຍການໂຕ້ແຍ້ງປະຈຸບັນຈະຖືກຕັ້ງເປັນຊື່ໄຟລ໌ທີ່ຜູ້ໃຊ້ລະບຸໄວ້ໃນ
ເສັ້ນຄໍາສັ່ງ. ຖ້າບໍ່ມີຊື່ໄຟລ໌ຖືກລະບຸໂດຍຜູ້ໃຊ້, ບັນຊີລາຍຊື່ການໂຕ້ຖຽງປະຈຸບັນ
ຈະຫວ່າງເປົ່າ. ຖ້າ -t ທາງ​ເລືອກ​ໄດ້​ຖືກ​ລະ​ບຸ​ໄວ້​, ມັນ​ບໍ່​ໄດ້​ລະ​ບຸ​ວ່າ​ຈະ​ເປັນ​ຊື່​ໄຟລ​໌​ໃດ​ຫນຶ່ງ​
ຜົນມາຈາກການປະມວນຜົນແທັກຈະຖືກນຳໄປໃສ່ລາຍຊື່ອາກິວເມັນປັດຈຸບັນ. ໃນກໍລະນີ
ບ່ອນທີ່ຊື່ໄຟລ໌ຖືກເພີ່ມເປັນຄໍານໍາຫນ້າໃນບັນຊີລາຍຊື່ argument ໃນປັດຈຸບັນ, argument ໃນປັດຈຸບັນ
ການອ້າງອີງລາຍຊື່ຈະຖືກຕັ້ງເປັນຊື່ໄຟລ໌ນັ້ນ. ໃນກໍລະນີທີ່ຊື່ໄຟລ໌ບໍ່ໄດ້ຖືກເພີ່ມ
ເປັນຄໍານໍາຫນ້າຂອງບັນຊີລາຍຊື່ argument ໃນປັດຈຸບັນ, ການອ້າງອິງບັນຊີລາຍຊື່ argument ປະຈຸບັນຈະ
ຢ່າງມີເຫດຜົນຖືກຕັ້ງໄວ້ກ່ອນຊື່ໄຟລ໌ທໍາອິດທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ (ສໍາລັບ
ຕົວຢ່າງ, ຕໍ່ມາ ex ຕໍ່ໄປ ຄໍາສັ່ງຈະແກ້ໄຂຊື່ໄຟລ໌ທໍາອິດຈາກຄໍາສັ່ງ
ເສັ້ນ). ຖ້າ -t ທາງ​ເລືອກ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, ການ​ອ້າງ​ອີງ​ບັນ​ຊີ​ລາຍ​ການ​ການ​ໂຕ້​ຖຽງ​ໃນ​ປັດ​ຈຸ​ບັນ​ຈະ​ເປັນ​
ທໍາອິດຂອງຊື່ໄຟລ໌ໃນແຖວຄໍາສັ່ງ.

ທີ່ຢູ່ in ex
ທີ່​ຢູ່​ໃນ ex ກ່ຽວຂ້ອງກັບເສັ້ນປະຈຸບັນແລະຖັນປະຈຸບັນ; ທີ່ຢູ່ຂອງແຖວ
ແມ່ນຕົວເລກ 1-based ຂອງມັນ, ທີ່ຢູ່ຂອງຖັນແມ່ນ 1-based ນັບຈາກ
ການເລີ່ມຕົ້ນຂອງເສັ້ນ. ໂດຍທົ່ວໄປແລ້ວ, ເສັ້ນປະຈຸບັນແມ່ນເສັ້ນສຸດທ້າຍທີ່ໄດ້ຮັບຜົນກະທົບຈາກຄໍາສັ່ງ.
ໝາຍເລກແຖວປັດຈຸບັນແມ່ນທີ່ຢູ່ຂອງແຖວປັດຈຸບັນ. ໃນ​ແຕ່​ລະ​ຄໍາ​ອະ​ທິ​ບາຍ​ຄໍາ​ສັ່ງ​,
ຜົນ​ກະ​ທົບ​ຂອງ​ຄໍາ​ສັ່ງ​ກ່ຽວ​ກັບ​ຈໍາ​ນວນ​ເສັ້ນ​ໃນ​ປັດ​ຈຸ​ບັນ​ແລະ​ຖັນ​ປັດ​ຈຸ​ບັນ​ແມ່ນ​ໄດ້​ອະ​ທິ​ບາຍ​.

ທີ່​ຢູ່​ແມ່ນ​ການ​ກໍ່​ສ້າງ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

1. ລັກສະນະ '.' (ໄລຍະເວລາ) ຈະກ່າວເຖິງເສັ້ນປະຈຸບັນ.

2. ລັກສະນະ '$' ຈະແກ້ໄຂແຖວສຸດທ້າຍຂອງ buffer ແກ້ໄຂ.

3. ຈຳນວນທົດສະນິຍົມບວກ n ຈະ​ກ່າວ​ເຖິງ nແຖວທີຂອງການແກ້ໄຂ buffer.

4. ທີ່ຢູ່ "'x" ໝາຍເຖິງເສັ້ນທີ່ໝາຍດ້ວຍຕົວອັກສອນຊື່ເຄື່ອງໝາຍ 'x', ທີ່
ຈະ​ເປັນ​ຕົວ​ພິມ​ນ້ອຍ​ຈາກ​ຊຸດ​ຕົວ​ອັກ​ສອນ​ເຄື່ອນ​ໄຫວ​, ຕົວ​ອັກ​ສອນ backquote​,
ຫຼືຕົວອັກສອນທີ່ອ້າງອີງດຽວ. ມັນຈະເປັນຄວາມຜິດພາດຖ້າຫາກວ່າເສັ້ນທີ່ຖືກຫມາຍບໍ່ແມ່ນ
ປະຈຸບັນຢູ່ໃນ buffer ການແກ້ໄຂຫຼືເຄື່ອງຫມາຍບໍ່ໄດ້ຖືກກໍານົດ. ເສັ້ນສາມາດຖືກຫມາຍ
ກັບ ex ເຄື່ອງຫມາຍ or k ຄໍາສັ່ງ, ຫຼື vi m ຄໍາສັ່ງ.

5. ການສະແດງອອກປົກກະຕິທີ່ປະກອບດ້ວຍ ຕົວອັກສອນ ('/') ຈະກ່າວເຖິງແຖວທໍາອິດ
ພົບເຫັນໂດຍການຊອກຫາໄປຂ້າງຫນ້າຈາກເສັ້ນດັ່ງຕໍ່ໄປນີ້ເສັ້ນປະຈຸບັນໄປສູ່ຈຸດສິ້ນສຸດຂອງ
ແກ້ໄຂ buffer ແລະຢຸດຢູ່ແຖວທໍາອິດທີ່ເສັ້ນບໍ່ລວມ
ການຢຸດເຊົາ ກົງກັບການສະແດງຜົນປົກກະຕິ. ດັ່ງທີ່ໄດ້ກ່າວໄວ້ໃນ ເປັນປົກກະຕິ ສຳ ນວນ
in ex, ທີ່ຢູ່ທີ່ປະກອບດ້ວຍການສະແດງອອກປົກກະຕິ null delimited ໂດຍ
ຕົວອັກສອນ ("//") ຈະກ່າວເຖິງແຖວຕໍ່ໄປທີ່ແຖວນັ້ນບໍ່ລວມເອົາ
ການຢຸດເຊົາ ກົງກັບການສະແດງຜົນປົກກະຕິຫຼ້າສຸດທີ່ພົບ. ເພີ່ມ​ເຕີມ,
ທີ່​ສອງ ສາມາດຖືກຍົກເວັ້ນໃນຕອນທ້າຍຂອງແຖວຄໍາສັ່ງ. ຖ້າ wrapscan ດັດແກ້
ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຖືກ​ກໍາ​ນົດ​, ການ​ຄົ້ນ​ຫາ​ຈະ​ອ້ອມ​ຮອບ​ໄປ​ທີ່​ການ​ເລີ່ມ​ຕົ້ນ​ຂອງ​ການ​ແກ້​ໄຂ buffer ແລະ​
ສືບຕໍ່ເຖິງແລະລວມທັງເສັ້ນປະຈຸບັນ, ດັ່ງນັ້ນ buffer ການແກ້ໄຂທັງຫມົດແມ່ນ
ຄົ້ນຫາ. ພາຍໃນການສະແດງອອກປົກກະຕິ, ລໍາດັບ "\/" ຈະເປັນຕົວແທນຂອງຕົວຫນັງສື
ແທນທີ່ຈະເປັນຕົວກໍານົດການສະແດງອອກປົກກະຕິ.

6. ການສະແດງອອກເປັນປົກກະຕິ enclosed ໃນ ຕົວອັກສອນ ('?') ຈະ​ແກ້​ໄຂ​
ເສັ້ນທໍາອິດທີ່ພົບເຫັນໂດຍການຊອກຫາຖອຍຫຼັງຈາກເສັ້ນກ່ອນເສັ້ນປະຈຸບັນ
ໄປສູ່ຈຸດເລີ່ມຕົ້ນຂອງການແກ້ໄຂ buffer ແລະຢຸດຢູ່ແຖວທໍາອິດທີ່
ເສັ້ນບໍ່ລວມການສິ້ນສຸດ ກົງກັບການສະແດງຜົນປົກກະຕິ. ທີ່ຢູ່
ປະກອບດ້ວຍການສະແດງອອກປົກກະຕິ null delimited ໂດຍ ຕົວອັກສອນ ("??")
ຈະຕ້ອງກ່າວເຖິງແຖວກ່ອນໜ້າ ເຊິ່ງແຖວນັ້ນບໍ່ລວມເຖິງການສິ້ນສຸດ
ກົງກັບການສະແດງຜົນປົກກະຕິຫຼ້າສຸດທີ່ພົບ. ນອກຈາກນັ້ນ, ທີສອງ
mark> ສາມາດຖືກຍົກເວັ້ນໃນຕອນທ້າຍຂອງແຖວຄໍາສັ່ງ. ຖ້າ wrapscan ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​,
ການ​ຄົ້ນ​ຫາ​ຈະ​ກວມ​ເອົາ​ປະ​ມານ​ຈາກ​ການ​ເລີ່ມ​ຕົ້ນ​ຂອງ​ການ​ແກ້​ໄຂ buffer ກັບ​ຕອນ​ທ້າຍ​ຂອງ​
ແກ້ໄຂ buffer ແລະສືບຕໍ່ເຖິງແລະລວມທັງເສັ້ນປະຈຸບັນ, ດັ່ງນັ້ນການແກ້ໄຂທັງຫມົດ
buffer ຖືກຄົ້ນຫາ. ພາຍໃນການສະແດງອອກປົກກະຕິ, ລໍາດັບ "\?" ຈະ​ເປັນ​ຕົວ​ແທນ a
ຕົວໜັງສື ແທນຕົວຂັ້ນ RE.

7. ກ ('+') ຫຼືເຄື່ອງໝາຍລົບ ('−') ຕາມດ້ວຍເລກທົດສະນິຍົມຈະຕ້ອງຢູ່
ເສັ້ນປະຈຸບັນບວກຫຼືລົບຕົວເລກ. ກ '+' or '−' ບໍ່ໄດ້ຕິດຕາມດ້ວຍເລກທົດສະນິຍົມ
ຕົວເລກຈະຕ້ອງລະບຸເສັ້ນປະຈຸບັນບວກ ຫຼື ລົບ 1.

ທີ່ຢູ່ສາມາດຖືກປະຕິບັດຕາມໂດຍສູນຫຼືຫຼາຍກວ່າທີ່ຢູ່ offsets, ເປັນທາງເລືອກ - ແຍກ​ອອກ​.
ທີ່ຢູ່ offsets ແມ່ນຖືກສ້າງຂຶ້ນດັ່ງຕໍ່ໄປນີ້:

1 A '+' or '−' ປະຕິບັດຕາມທັນທີດ້ວຍຕົວເລກທົດສະນິຍົມຈະຕ້ອງຕື່ມ (ລົບ) ໄດ້
ຊີ້ບອກຈໍານວນແຖວໄປຫາ (ຈາກ) ທີ່ຢູ່. ກ '+' or '−' ບໍ່ໄດ້ປະຕິບັດຕາມໂດຍ a
ເລກທົດສະນິຍົມຈະຕ້ອງເພີ່ມ (ລົບ) 1 ຫາ (ຈາກ) ທີ່ຢູ່.

2. ຕົວເລກທົດສະນິຍົມຈະຕ້ອງເພີ່ມຈໍານວນແຖວທີ່ລະບຸໄວ້ໃນທີ່ຢູ່.

ມັນຈະບໍ່ເປັນຂໍ້ຜິດພາດສໍາລັບຄ່າທີ່ຢູ່ຂັ້ນກາງທີ່ຈະໜ້ອຍກວ່າສູນ ຫຼືໃຫຍ່ກວ່າ
ກ່ວາແຖວສຸດທ້າຍໃນການແກ້ໄຂ buffer. ມັນຈະເປັນຄວາມຜິດພາດສໍາລັບຄ່າທີ່ຢູ່ສຸດທ້າຍ
ໜ້ອຍກວ່າສູນ ຫຼືໃຫຍ່ກວ່າແຖວສຸດທ້າຍໃນ buffer ແກ້ໄຂ.

ຄໍາສັ່ງເອົາສູນ, ຫນຶ່ງ, ຫຼືສອງທີ່ຢູ່; ເບິ່ງລາຍລະອຽດຂອງ 1 ຕື່ມ ແລະ 2 ຕື່ມ in
ຄໍາສັ່ງ ຄໍາອະທິບາຍ in ex. ຖ້າ​ຫາກ​ວ່າ​ຫຼາຍ​ກ​່​ວາ​ຈໍາ​ນວນ​ທີ່​ຕ້ອງ​ການ​ຂອງ​ທີ່​ຢູ່​ແມ່ນ​ໄດ້​ສະ​ຫນອງ​ໃຫ້​
ຄໍາສັ່ງທີ່ຕ້ອງການທີ່ຢູ່ສູນ, ມັນຈະເປັນຄວາມຜິດພາດ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຫຼາຍກວ່ານັ້ນ
ຈໍາ​ນວນ​ທີ່​ຢູ່​ທີ່​ຕ້ອງ​ການ​ແມ່ນ​ໄດ້​ຖືກ​ສະ​ຫນອງ​ໃຫ້​ກັບ​ຄໍາ​ສັ່ງ​, ທີ່​ຢູ່​ທີ່​ລະ​ບຸ​ໄວ້​ທໍາ​ອິດ​
ຈະຖືກປະເມີນແລະຫຼັງຈາກນັ້ນຍົກເລີກຈົນກ່ວາຈໍານວນສູງສຸດຂອງທີ່ຢູ່ທີ່ຖືກຕ້ອງຍັງຄົງຢູ່.

ທີ່ຢູ່ຈະຕ້ອງແຍກອອກຈາກກັນໂດຍ ກ (',') ຫຼື ກ (';').
ຖ້າບໍ່ມີການລະບຸທີ່ຢູ່ກ່ອນ ຫຼືຫຼັງ a ຫຼື ຕົວແຍກ, ມັນຈະເປັນ
ຄືກັບວ່າທີ່ຢູ່ຂອງແຖວປະຈຸບັນໄດ້ລະບຸໄວ້ກ່ອນ ຫຼືຫຼັງຕົວແຍກ. ໃນ
ກໍລະນີຂອງ ກ ຕົວແຍກ, ເສັ້ນປະຈຸບັນ ('.') ຈະ​ຖືກ​ຕັ້ງ​ເປັນ​ທໍາ​ອິດ​
ທີ່ຢູ່, ແລະພຽງແຕ່ຫຼັງຈາກນັ້ນທີ່ຢູ່ຕໍ່ໄປຈະຖືກຄິດໄລ່. ຄຸນນະສົມບັດນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອ
ກໍານົດເສັ້ນເລີ່ມຕົ້ນສໍາລັບການຄົ້ນຫາຕໍ່ຫນ້າແລະຖອຍຫລັງ (ເບິ່ງກົດລະບຽບ 5. ແລະ 6.).

ກ ('%') ຈະເທົ່າກັບການໃສ່ສອງທີ່ຢູ່ "1,$".

ການກໍານົດຂອບເຂດໃດໆ ຕົວອັກສອນລະຫວ່າງທີ່ຢູ່, ຕົວແຍກທີ່ຢູ່, ຫຼືທີ່ຢູ່
ການຊົດເຊີຍຈະຖືກຍົກເລີກ.

ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex
ສັນຍາລັກຕໍ່ໄປນີ້ແມ່ນໃຊ້ໃນສ່ວນນີ້ ແລະຕໍ່ໄປນີ້ເພື່ອອະທິບາຍພຶດຕິກໍາການແຍກວິເຄາະ:

escape ຖ້າຕົວລະຄອນໃດນຶ່ງເອີ້ນວ່າ `` - ຫນີ'' ຫຼື `` -V-
escaped'', ມັນຈະຫມາຍຄວາມວ່າລັກສະນະທີ່ໄດ້ມາຫຼືສູນເສຍຄວາມຫມາຍພິເສດ
ໂດຍ​ການ​ຖືກ​ນໍາ​ຫນ້າ​, ຕາມ​ລໍາ​ດັບ​, ໂດຍ a ຫຼື - ວີ
ລັກສະນະ. ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນ, ລັກສະນະການຫລົບຫນີຈະຖືກຍົກເລີກ
ໃນ​ເວ​ລາ​ນັ້ນ​ແລະ​ຈະ​ບໍ່​ໄດ້​ຮັບ​ການ​ພິ​ຈາ​ລະ​ນາ​ເພີ່ມ​ເຕີມ​ສໍາ​ລັບ​ຈຸດ​ປະ​ສົງ​ໃດ​ຫນຶ່ງ​.

parsing ເສັ້ນຄໍາສັ່ງຕ້ອງເຮັດໃນຂັ້ນຕອນຕໍ່ໄປນີ້. ສໍາລັບແຕ່ລະຂັ້ນຕອນ, ລັກສະນະ
ການປະເມີນແລ້ວຈະຖືກລະເລີຍ; ນັ້ນແມ່ນ, ຄໍາວ່າ "ລັກສະນະນໍາ" ຫມາຍເຖິງ
ລັກສະນະຕໍ່ໄປທີ່ຍັງບໍ່ທັນໄດ້ປະເມີນ.

1. ນໍາພາ ຕົວອັກສອນຈະຖືກຂ້າມ.

2. ນໍາພາ ຕົວອັກສອນຈະຖືກຂ້າມ.

3. ຖ້າ​ຕົວ​ອັກ​ສອນ​ນໍາ​ຫນ້າ​ເປັນ​ຕົວ​ອັກ​ສອນ​ສອງ​ຄໍາ​, ຕົວ​ອັກ​ສອນ​ເຖິງ​ແລະ​
ລວມທັງສິ່ງທີ່ບໍ່ເປັນ - ຫນີ ຈະຖືກຍົກເລີກ, ແລະໃດໆ
ຕົວອັກສອນຕໍ່ມາຈະຖືກວິເຄາະເປັນຄໍາສັ່ງແຍກຕ່າງຫາກ.

4. ຕົວລະຄອນຊັ້ນນໍາທີ່ສາມາດຕີຄວາມຫມາຍໄດ້ເປັນທີ່ຢູ່ຈະຖືກປະເມີນ; ເບິ່ງ
ທີ່ຢູ່ in ex.

5. ນໍາພາ ຕົວອັກສອນຈະຖືກຂ້າມ.

6. ຖ້າຕົວລະຄອນຕໍ່ໄປແມ່ນ ກ ລັກສະນະ ຫຼື ກ :

ກ. ຖ້າຕົວລະຄອນຕໍ່ໄປແມ່ນ ກ :

i. ຖ້າ ex ແມ່ນຢູ່ໃນຮູບແບບເປີດຫຼືເບິ່ງເຫັນ, ເສັ້ນປະຈຸບັນຈະຖືກຕັ້ງເປັນສຸດທ້າຍ
ທີ່ຢູ່ລະບຸ, ຖ້າມີ.

ii. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງສຸດທ້າຍຖືກຢຸດໂດຍ a ລັກ​ສະ​ນະ​,
ບໍ່ມີການດໍາເນີນການໃດໆ; ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ " || " ຈະ
ປະຕິບັດສອງຄໍາສັ່ງ implied, ບໍ່ແມ່ນສາມ.

iii. ຖ້າບໍ່ດັ່ງນັ້ນ, ຂັ້ນຕອນ 6.b. ຈະນໍາໃຊ້.

ຂ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຄໍາສັ່ງ implied ຈະເປັນ ພິມ ຄໍາສັ່ງ. ສຸດ​ທ້າຍ #, p, ແລະ l
ທຸງທີ່ລະບຸໄວ້ກັບອັນໃດນຶ່ງ ex ຄໍາສັ່ງຈະຖືກຈົດຈໍາແລະຈະນໍາໃຊ້ກັບເລື່ອງນີ້
ຄໍາ​ສັ່ງ​ສະ​ແດງ​ໃຫ້​ເຫັນ​. ການ​ປະ​ຕິ​ບັດ​ ex ຈໍານວນ, ພິມ, ຫຼື ບັນຊີລາຍຊື່ ຄໍາສັ່ງຈະຕ້ອງກໍານົດ
ຈື່ທຸງໄວ້ #, ບໍ່ມີຫຍັງ, ແລະ l, ຕາມລໍາດັບ, ບວກກັບທຸງອື່ນໆ
ທີ່​ລະ​ບຸ​ໄວ້​ສໍາ​ລັບ​ການ​ປະ​ຕິ​ບັດ​ຂອງ​ ຈໍານວນ, ພິມ, ຫຼື ບັນຊີລາຍຊື່ ຄໍາສັ່ງ.

If ex ບໍ່​ໄດ້​ປະ​ຕິ​ບັດ​ໃນ​ປັດ​ຈຸ​ບັນ a ທົ່ວໂລກ or v ຄໍາສັ່ງ, ແລະບໍ່ມີທີ່ຢູ່ຫຼືນັບ
ຖືກກໍານົດໄວ້, ເສັ້ນປະຈຸບັນຈະຖືກເພີ່ມຂຶ້ນ 1 ກ່ອນທີ່ຈະຄໍາສັ່ງແມ່ນ
ປະ​ຕິ​ບັດ​. ຖ້າການເພີ່ມເສັ້ນປະຈຸບັນຈະສົ່ງຜົນໃຫ້ທີ່ຢູ່ທີ່ຜ່ານມາ
ແຖວສຸດທ້າຍໃນການແກ້ໄຂ buffer, ຄໍາສັ່ງຈະລົ້ມເຫລວ, ແລະ increment ຈະບໍ່
ເກີດຂື້ນ.

ຄ. ໄດ້ ຫຼື ລັກ​ສະ​ນະ​ຈະ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ຍົກ​ເລີກ​ແລະ​ຕໍ່​ມາ​
ຕົວອັກສອນຈະຖືກວິເຄາະເປັນຄໍາສັ່ງແຍກຕ່າງຫາກ.

7. ຊື່ຄໍາສັ່ງຈະຕ້ອງປະກອບດ້ວຍຕົວອັກສອນຕໍ່ໄປ (ຖ້າຕົວອັກສອນບໍ່ແມ່ນ
ຕົວອັກສອນ), ຫຼືຕົວອັກສອນຕໍ່ໄປແລະຕົວອັກສອນຕໍ່ໄປໃດໆ (ຖ້າ
ຕົວອັກສອນເປັນຕົວອັກສອນ), ມີຂໍ້ຍົກເວັ້ນດັ່ງຕໍ່ໄປນີ້:

ກ. ຄໍາສັ່ງທີ່ປະກອບດ້ວຍຄໍານໍາຫນ້າຂອງຕົວອັກສອນໃນຊື່ຄໍາສັ່ງ ລຶບ,
ປະ​ຕິ​ບັດ​ຕາມ​ທັນ​ທີ​ໂດຍ​ການ​ໃດໆ​ຂອງ​ລັກ​ສະ​ນະ​ 'l', 'p', '+', '−', ຫຼື '#' ຈະເປັນ
ແປເປັນ ລຶບ ຄໍາສັ່ງ, ຕາມດ້ວຍ a , ປະຕິບັດຕາມໂດຍລັກສະນະ
ນັ້ນບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງຄໍານໍາຫນ້າຂອງ ລຶບ ຄໍາສັ່ງ. ຈໍານວນສູງສຸດຂອງ
ຕົວອັກສອນຈະຖືກຈັບຄູ່ກັບຊື່ຄໍາສັ່ງ ລຶບ; ຍົກ​ຕົວ​ຢ່າງ, "del" ຈະ
ບໍ່ໄດ້ຮັບການປະຕິບັດເປັນ "ເດ" ຕິດຕາມດ້ວຍທຸງຊາດ l.

ຂ. ຄໍາສັ່ງທີ່ປະກອບດ້ວຍລັກສະນະ 'ກ', ປະຕິບັດຕາມໂດຍລັກສະນະທີ່ສາມາດເປັນ
ໃຊ້ເປັນຊື່ຂອງເຄື່ອງໝາຍ, ຈະເທົ່າກັບຄຳສັ່ງເຄື່ອງໝາຍຕາມດ້ວຍ a
, ປະຕິບັດຕາມໂດຍລັກສະນະທີ່ປະຕິບັດຕາມ 'ກ'.

ຄ. ຄໍາສັ່ງທີ່ປະກອບດ້ວຍລັກສະນະ 's', ຕິດຕາມດ້ວຍຕົວລະຄອນທີ່ອາດຈະເປັນ
ແປເປັນທາງເລືອກທີ່ຖືກຕ້ອງກັບ s ຄໍາສັ່ງ, ຈະທຽບເທົ່າຂອງ s
ຄໍາສັ່ງ, ໂດຍບໍ່ມີຮູບແບບຫຼືຄ່າທົດແທນ, ຕາມດ້ວຍ a ,
ຕິດຕາມດ້ວຍຕົວລະຄອນຫຼັງຈາກ 's'.

8. ຊື່ຄໍາສັ່ງຈະຖືກຈັບຄູ່ກັບຊື່ຄໍາສັ່ງທີ່ເປັນໄປໄດ້, ແລະຄໍາສັ່ງ
ຊື່ທີ່ມີຄໍານໍາຫນ້າທີ່ກົງກັບຕົວອັກສອນທີ່ລະບຸໄວ້ໂດຍຜູ້ໃຊ້ຈະຕ້ອງເປັນ
ຄໍາສັ່ງປະຕິບັດ. ໃນກໍລະນີຂອງຄໍາສັ່ງທີ່ຕົວອັກສອນທີ່ກໍານົດໂດຍຜູ້ໃຊ້
ອາດຈະມີຄວາມບໍ່ຊັດເຈນ, ຄໍາສັ່ງປະຕິບັດຈະຕ້ອງມີດັ່ງນີ້:

┌───┬─────────┬┬───┬───────┬┬───┬───────
aເພີ່ມເຕີມ ││nຕໍ່ໄປ ││tt
cການປ່ຽນແປງ ││pພິມ ││uຍົກເລີກ
chການປ່ຽນແປງ ││prພິມ ││unຍົກເລີກ
eດັດແກ້ ││rອ່ານ ││vv
mການເຄື່ອນໄຫວ ││reອ່ານ ││wຂຽນ
maເຄື່ອງຫມາຍ ││ss ││ │ │
└───┴─────────┴┴───┴───────┴┴───┴───────
ການຂະຫຍາຍການຈັດຕັ້ງປະຕິບັດທີ່ມີຊື່ທີ່ເຮັດໃຫ້ເກີດຄວາມບໍ່ແນ່ນອນທີ່ຄ້າຍຄືກັນຈະບໍ່ຖືກກວດສອບ
ສໍາ​ລັບ​ການ​ແຂ່ງ​ຂັນ​ຈົນ​ກ​່​ວາ​ການ​ແຂ່ງ​ຂັນ​ທີ່​ເປັນ​ໄປ​ໄດ້​ທັງ​ຫມົດ​ສໍາ​ລັບ​ຄໍາ​ສັ່ງ​ລະ​ບຸ​ໄວ້​ໂດຍ POSIX.1-2008 ມີ​
ໄດ້​ຮັບ​ການ​ກວດ​ສອບ​.

9. ຖ້າຄໍາສັ່ງແມ່ນ a ! ຄໍາສັ່ງ, ຫຼືຖ້າຫາກວ່າຄໍາສັ່ງແມ່ນ a ອ່ານ ຄໍາສັ່ງຕິດຕາມດ້ວຍສູນ
ຫຼື​ຫຼາຍ​ກວ່າ ລັກສະນະ ແລະ ກ !, ຫຼືຖ້າຄໍາສັ່ງແມ່ນ a ຂຽນ ຄຳ ສັ່ງຕາມດ້ວຍ
ໜຶ່ງ ຫຼືຫຼາຍກວ່ານັ້ນ ລັກສະນະ ແລະ ກ !, ສ່ວນທີ່ເຫຼືອຂອງຄໍາສັ່ງຈະປະກອບມີທັງຫມົດ
ຕົວ​ອັກ​ສອນ​ເຖິງ​ບໍ່​ແມ່ນ - ຫນີ . ໄດ້ ຈະເປັນ
ຍົກເລີກ ແລະຕົວອັກສອນຕໍ່ໄປຈະຖືກແຍກເປັນຕົວແຍກ ex ຄໍາສັ່ງ.

10. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງແມ່ນ an ດັດແກ້, ex, ຫຼື ຕໍ່ໄປ ຄໍາສັ່ງ, ຫຼື a ສາຍຕາ ຄໍາສັ່ງໃນຂະນະທີ່
ໃນ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ການ​ສາຍ​ຕາ​, ສ່ວນ​ຕໍ່​ໄປ​ຂອງ​ຄໍາ​ສັ່ງ​ຈະ​ໄດ້​ຮັບ​ການ​ວິ​ເຄາະ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

ກ. ໃດ '!' ລັກສະນະທັນທີປະຕິບັດຕາມຄໍາສັ່ງຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງ
ຂອງ​ຄໍາ​ສັ່ງ​.

ຂ. ຜູ້ນໍາໃດໆ ຕົວອັກສອນຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ.

ຄ. ຖ້າຕົວລະຄອນຕໍ່ໄປແມ່ນ ກ '+', ຕົວອັກສອນເຖິງຕົວທໍາອິດທີ່ບໍ່ແມ່ນ. - ຫນີ
ຫຼື​ບໍ່​ແມ່ນ - ຫນີ ຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງ
ຄໍາສັ່ງ.

ງ. ສ່ວນທີ່ເຫຼືອຂອງຄໍາສັ່ງຈະຕ້ອງຖືກກໍານົດໂດຍຂັ້ນຕອນທີ່ລະບຸໄວ້ໃນວັກ
12​.

11. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງແມ່ນ a ທົ່ວໂລກ, ເປີດ, s, ຫຼື v ຄໍາສັ່ງ, ສ່ວນຕໍ່ໄປຂອງ
ຄໍາສັ່ງຈະຖືກວິເຄາະດັ່ງຕໍ່ໄປນີ້:

ກ. ຜູ້ນໍາໃດໆ ຕົວອັກສອນຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ.

ຂ. ຖ້າຕົວອັກສອນຕໍ່ໄປບໍ່ແມ່ນຕົວເລກ ແລະຕົວເລກ, ຕົວເລກສອງເທົ່າ, ,
, ຫຼື ລັກສະນະ:

i. ຕົວອັກສອນຕໍ່ໄປຈະຖືກໃຊ້ເປັນຕົວຂັ້ນຄໍາສັ່ງ.

ii. ຖ້າຄໍາສັ່ງແມ່ນ a ທົ່ວໂລກ, ເປີດ, ຫຼື v ຄໍາສັ່ງ, ຕົວອັກສອນເຖິງທໍາອິດ
ບໍ່ແມ່ນ - ຫນີ , ຫຼື​ທໍາ​ອິດ​ທີ່​ບໍ່​ແມ່ນ -escape ຕົວ​ຂັ້ນ​
ລັກສະນະ, ຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ.

iii. ຖ້າຄໍາສັ່ງແມ່ນ an s ຄໍາສັ່ງ, ຕົວອັກສອນເຖິງທໍາອິດ
ບໍ່ແມ່ນ - ຫນີ , ຫຼືທີສອງທີ່ບໍ່ແມ່ນ - ຫນີ
ຕົວອັກສອນຕົວຂັ້ນ, ຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ.

ຄ. ຖ້າຄໍາສັ່ງແມ່ນ a ທົ່ວໂລກ or v ຄໍາສັ່ງ, ຕົວອັກສອນເຖິງທໍາອິດ
ບໍ່ແມ່ນ - ຫນີ ຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ.

ງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ສ່ວນທີ່ເຫຼືອຂອງຄໍາສັ່ງຈະຖືກກໍານົດໂດຍຂັ້ນຕອນທີ່ລະບຸໄວ້ໃນ
ວັກ 12.

12. ຖ້າບໍ່ດັ່ງນັ້ນ:

ກ. ຖ້າຄໍາສັ່ງແມ່ນ a ແຜນທີ່, ຍົກເລີກແຜນທີ່, ຕົວຫຍໍ້, ຫຼື ບໍ່ຫຍໍ້ ຄໍາ​ສັ່ງ​, ລັກ​ສະ​ນະ​
ເຖິງ​ຄັ້ງ​ທໍາ​ອິດ​ທີ່​ບໍ່​ແມ່ນ -V ຫນີ , , ຫຼື double-
ຕົວອັກສອນ quote ຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ.

ຂ. ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຕົວ​ອັກ​ສອນ​ເຖິງ​ທໍາ​ອິດ​ທີ່​ບໍ່​ແມ່ນ​. - ຫນີ ,
, ຫຼືຕົວອັກສອນ double-quote ຈະຖືກຂ້າມແລະເປັນສ່ວນຫນຶ່ງຂອງ
ຄໍາສັ່ງ.

ຄ. ຖ້າຄໍາສັ່ງແມ່ນເປັນ ເພີ່ມເຕີມ, ການປ່ຽນແປງ, ຫຼື ໃສ່ ຄໍາສັ່ງ, ແລະຂັ້ນຕອນ 12.b. ສິ້ນສຸດລົງ
ຢູ່ ກ ລັກສະນະ, ລັກສະນະຕໍ່ມາ, ຈົນເຖິງຕົວຕໍ່ໄປ
ບໍ່ແມ່ນ - ຫນີ ຈະຖືກໃຊ້ເປັນຂໍ້ຄວາມປ້ອນໃສ່ຄໍາສັ່ງ.

ງ. ຖ້າຄໍາສັ່ງຖືກສິ້ນສຸດດ້ວຍຕົວອັກສອນ double-quote, ຕົວອັກສອນຕໍ່ໄປທັງຫມົດ,
ເຖິງ​ບໍ່​ແມ່ນ​ຕໍ່​ໄປ - ຫນີ , ຈະຖືກຍົກເລີກ.

e. ການຢຸດເຊົາ ຫຼື ລັກ​ສະ​ນະ​ຈະ​ຖືກ​ຍົກ​ເລີກ​ແລະ​ໃດໆ​
ຕົວອັກສອນຕໍ່ໄປຈະຖືກແຍກເປັນຕົວແຍກ ex ຄໍາສັ່ງ.

ການໂຕ້ຖຽງຂອງຄໍາສັ່ງຈະຖືກວິເຄາະຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໂດຍ Synopsis ແລະຄໍາອະທິບາຍຂອງແຕ່ລະຄົນ
ບຸກຄົນ ex ຄໍາສັ່ງ. ການແຍກວິເຄາະນີ້ຈະບໍ່ເປັນ -sensitive​, ຍົກ​ເວັ້ນ​ສໍາ​ລັບ​ການ​ !
argument, ເຊິ່ງຕ້ອງປະຕິບັດຕາມຊື່ຄໍາສັ່ງໂດຍບໍ່ມີການແຊກແຊງ ລັກສະນະ, ແລະ
ບ່ອນທີ່ມັນຈະບໍ່ຊັດເຈນ. ຍົກ​ຕົວ​ຢ່າງ, ນັບ ແລະ ທຸງ ການໂຕ້ຖຽງບໍ່ຈໍາເປັນຕ້ອງເປັນ
- ແຍກ​ອອກ​ເພາະ​ວ່າ​ "d22p" ແມ່ນບໍ່ແນ່ນອນ, ແຕ່ ເອກະສານ ການໂຕ້ຖຽງກັບ ex ຕໍ່ໄປ
ຄໍາສັ່ງຕ້ອງຖືກແຍກອອກໂດຍຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ ຕົວລະຄອນ. ໃດ ໃນຄໍາສັ່ງ
ການໂຕ້ຖຽງສໍາລັບ ຕົວຫຍໍ້, ບໍ່ຫຍໍ້, ແຜນທີ່, ແລະ ຍົກເລີກແຜນທີ່ ຄໍາສັ່ງສາມາດເປັນ -V-
​ໄດ້​ຫລົບ​ໜີ, ​ໃນ​ກໍລະນີ​ດັ່ງກ່າວ ຈະບໍ່ຖືກນໍາໃຊ້ເປັນຕົວກໍານົດການໂຕ້ຖຽງ. ໃດ
ໃນການໂຕ້ຖຽງຄໍາສັ່ງສໍາລັບຄໍາສັ່ງອື່ນສາມາດເປັນ - ຫນີ, ໃນກໍລະນີນີ້
ນັ້ນ ຈະບໍ່ຖືກນໍາໃຊ້ເປັນຕົວກໍານົດການໂຕ້ຖຽງ.

ພາຍໃນການໂຕ້ຖຽງຄໍາສັ່ງສໍາລັບ ຕົວຫຍໍ້, ບໍ່ຫຍໍ້, ແຜນທີ່, ແລະ ຍົກເລີກແຜນທີ່ ຄໍາສັ່ງ, ໃດ
ລັກສະນະສາມາດ -V ຫນີ. ລັກສະນະທີ່ຫຼົບໜີດັ່ງກ່າວທັງໝົດຈະຖືກປະຕິບັດ
ຮູ້ຫນັງສືແລະຈະບໍ່ມີຄວາມຫມາຍພິເສດ. ພາຍໃນການໂຕ້ຖຽງຄໍາສັ່ງສໍາລັບການອື່ນໆທັງຫມົດ ex
ຄໍາ​ສັ່ງ​ທີ່​ບໍ່​ແມ່ນ​ການ​ສະ​ແດງ​ອອກ​ປົກ​ກະ​ຕິ​ຫຼື​ການ​ທົດ​ແທນ​ສະ​ຕ​ຣິງ​, ຕົວ​ອັກ​ສອນ​ທີ່​ຈະ​
ຖ້າບໍ່ດັ່ງນັ້ນມີຄວາມຫມາຍພິເສດສາມາດເປັນ - ຫນີ. ຕົວລະຄອນທີ່ຫລົບຫນີຈະຕ້ອງເປັນ
ຮັບການປິ່ນປົວຕາມຕົວອັກສອນ, ໂດຍບໍ່ມີຄວາມຫມາຍພິເສດເປັນລັກສະນະການຂະຫຍາຍຕົວຂອງແກະຫຼື '!', '%', ແລະ
'#' ຕົວຂະຫຍາຍ. ເບິ່ງ ເປັນປົກກະຕິ ສຳ ນວນ in ex ແລະ ການທົດແທນ Strings in ex ສໍາລັບການ
ຄໍາອະທິບາຍຂອງ argument ຄໍາສັ່ງທີ່ເປັນ expression ປົກກະຕິຫຼື strings ທົດແທນ.

ບໍ່ແມ່ນ - ຫນີ '%' ລັກສະນະທີ່ປາກົດຢູ່ໃນ ເອກະສານ ການໂຕ້ຖຽງກັບໃດໆ ex ຄໍາສັ່ງຈະ
ຖືກແທນທີ່ດ້ວຍຊື່ເສັ້ນທາງປະຈຸບັນ; ໜີບໍ່ພົ້ນ '#' ຕົວອັກສອນຈະຖືກແທນທີ່ດ້ວຍ
ຊື່ເສັ້ນທາງສຳຮອງ. ມັນຈະເປັນຄວາມຜິດພາດຖ້າຫາກວ່າ '%' or '#' ລັກ​ສະ​ນະ​ປະ​ກົດ​ວ່າ unscaped ໃນ​
argument ແລະຄ່າທີ່ສອດຄ້ອງກັນຂອງພວກມັນບໍ່ໄດ້ຖືກຕັ້ງ.

ບໍ່ແມ່ນ - ຫນີ '!' ລັກ​ສະ​ນະ​ໃນ​ການ​ໂຕ້​ຖຽງ​ກັບ​ທັງ​ຫມົດ​ ex ! command or
ຮູບແບບເປີດແລະສາຍຕາ ! ຄໍາສັ່ງ, ຫຼືໃນການໂຕ້ຖຽງກັບ ex ອ່ານ ຄໍາສັ່ງ, ບ່ອນທີ່
ທໍາອິດທີ່ບໍ່ແມ່ນ ຫຼັງຈາກຊື່ຄໍາສັ່ງແມ່ນ a '!' ລັກສະນະ, ຫຼືໃນການໂຕ້ຖຽງກັບ
ex ຂຽນ ຄໍາສັ່ງທີ່ຊື່ຄໍາສັ່ງແມ່ນປະຕິບັດຕາມຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ ລັກ​ສະ​ນະ​ແລະ​
ອັນ​ທໍາ​ອິດ​ທີ່​ບໍ່​ແມ່ນ ຫຼັງຈາກຊື່ຄໍາສັ່ງແມ່ນ a '!' ລັກສະນະ, ຈະຖືກແທນທີ່ດ້ວຍ
ການໂຕ້ຖຽງກັບຄໍາສັ່ງສຸດທ້າຍຂອງສາມຄໍາສັ່ງດັ່ງທີ່ພວກເຂົາເຈົ້າປະກົດວ່າຫຼັງຈາກທັງຫມົດ unescaped
'%', '#', ແລະ '!' ຕົວລະຄອນໄດ້ຖືກປ່ຽນແທນ. ມັນຈະເປັນຄວາມຜິດພາດຖ້າຫາກວ່າ '!' ລັກສະນະ
ປະກົດວ່າ unescaped ໃນຫນຶ່ງຂອງຄໍາສັ່ງເຫຼົ່ານີ້ແລະບໍ່ມີການປະຕິບັດທີ່ຜ່ານມາຂອງຫນຶ່ງ
ຂອງ​ຄໍາ​ສັ່ງ​ເຫຼົ່າ​ນີ້​.

ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນໃນລະຫວ່າງການວິເຄາະ ຫຼືການດຳເນີນການຂອງ an ex ຄໍາສັ່ງ:

* ຂໍ້ຄວາມໃຫ້ຂໍ້ມູນຕໍ່ກັບຜົນກະທົບນີ້ຈະຖືກຂຽນ. ການ​ປະ​ຕິ​ບັດ​ຂອງ​ ex ຄໍາສັ່ງ
ຈະຢຸດ, ແລະຕົວກະພິບ (ຕົວຢ່າງ, ເສັ້ນແລະຖັນປະຈຸບັນ) ຈະບໍ່ເປັນ
ດັດແກ້ເພີ່ມເຕີມ.

* ຖ້າຫາກວ່າ ex ຄໍາສັ່ງທີ່ເປັນຜົນມາຈາກການຂະຫຍາຍແຜນທີ່, ຕົວອັກສອນທັງໝົດຈາກແຜນທີ່ນັ້ນ
ການຂະຫຍາຍຈະຕ້ອງຖືກຍົກເລີກ, ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນໂດຍ ແຜນທີ່ ຄໍາສັ່ງ.

* ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ ex ຄໍາສັ່ງເປັນຜົນມາຈາກການປະມວນຜົນຂອງ ອອກໄປ ສະພາບແວດລ້ອມ
ຕົວແປ, ກ .exrc ໄຟລ໌, ກ :ແຫຼ່ງ ຄໍາສັ່ງ, ກ −ຄ ທາງເລືອກ, ຫຼື a +ຄໍາສັ່ງ ລະບຸໄວ້ເປັນ
ex ດັດແກ້, ex, ຕໍ່ໄປ, ຫຼື ສາຍຕາ ຄໍາສັ່ງ, ບໍ່ມີຄໍາສັ່ງເພີ່ມເຕີມຈາກແຫຼ່ງຂອງ
ຄໍາສັ່ງຈະຖືກປະຕິບັດ.

* ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ ex ຄໍາສັ່ງທີ່ເປັນຜົນມາຈາກການປະຕິບັດຂອງ buffer ຫຼື a ທົ່ວໂລກ or v
ຄໍາສັ່ງ, ບໍ່ມີຄໍາສັ່ງເພີ່ມເຕີມທີ່ເກີດຈາກການປະຕິບັດຂອງ buffer ຫຼື ທົ່ວໂລກ or v
ຄໍາສັ່ງຈະຖືກປະຕິບັດ.

* ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ ex ຄໍາສັ່ງບໍ່ໄດ້ຖືກຍົກເລີກໂດຍ a , ຕົວອັກສອນທັງຫມົດເຖິງ
ແລະລວມທັງສິ່ງທີ່ບໍ່ເປັນ. - ຫນີ ຈະຖືກຍົກເລີກ.

ການປ້ອນຂໍ້ມູນ ການດັດແກ້ in ex
ສັນຍາລັກຕໍ່ໄປນີ້ຖືກນໍາໃຊ້ໃນນີ້ແລະພາກສ່ວນຕໍ່ໄປນີ້ເພື່ອກໍານົດຄໍາສັ່ງ
ການກະ ທຳ:

ຄໍາ ຢູ່ໃນທ້ອງຖິ່ນ POSIX, ຄໍາປະກອບດ້ວຍລໍາດັບສູງສຸດຂອງຕົວອັກສອນ, ຕົວເລກ,
ແລະຂີດກ້ອງ, ຂີດຂັ້ນຢູ່ທັງສອງສົ້ນດ້ວຍຕົວອັກສອນອື່ນທີ່ບໍ່ແມ່ນຕົວອັກສອນ,
ຕົວເລກ, ຫຼືຂີດກ້ອງ, ຫຼືໂດຍຈຸດເລີ່ມຕົ້ນ ຫຼືຈຸດສິ້ນສຸດຂອງແຖວ ຫຼືຕົວແກ້ໄຂ.

ເມື່ອຮັບເອົາຕົວອັກສອນປ້ອນຂໍ້ມູນຈາກຜູ້ໃຊ້, ໃນທັງສອງ ex ຮູບແບບຄໍາສັ່ງຫຼື ex ການປ້ອນຂໍ້ຄວາມ
ຮູບແບບ, ex ຈະຕ້ອງເປີດໃຊ້ການປະມວນຜົນການປ້ອນຂໍ້ມູນແບບ canonical, ຕາມທີ່ກຳນົດໄວ້ໃນສ່ວນຕິດຕໍ່ລະບົບ
ປະລິມານຂອງ POSIX.1-2008.

ຖ້າຢູ່ໃນ ex ຮູບແບບການປ້ອນຂໍ້ຄວາມ:

1. ຖ້າທ ຈໍານວນ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​, ex ຈະຕ້ອງກະຕຸ້ນການປ້ອນຂໍ້ມູນໂດຍໃຊ້ເລກແຖວນັ້ນ
ຈະຖືກມອບຫມາຍໃຫ້ແຖວຖ້າມັນຖືກໃສ່, ໃນຮູບແບບທີ່ລະບຸໄວ້ສໍາລັບ ex
ຈໍານວນ ຄໍາສັ່ງ.

2. ຖ້າທ autoindent ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​, ex ຈະຕ້ອງກະຕຸ້ນການປ້ອນຂໍ້ມູນໂດຍໃຊ້ autoindent
ລັກສະນະ, ຕາມການອະທິບາຍໂດຍ autoindent ແກ້ໄຂທາງເລືອກ. autoindent ລັກ​ສະ​ນະ​ຈະ​
ປະຕິບັດຕາມເລກແຖວ, ຖ້າມີ.

ຖ້າຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງ:

1. ຖ້າທ ການກະຕຸ້ນເຕືອນ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ແມ່ນ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​, ການ​ປ້ອນ​ຂໍ້​ມູນ​ຈະ​ໄດ້​ຮັບ​ການ​ເຕືອນ​ສໍາ​ລັບ​ການ​ນໍາ​ໃຊ້​ດຽວ​ ':'
ລັກສະນະ; ຖ້າບໍ່ດັ່ງນັ້ນ, ບໍ່ມີການກະຕຸ້ນເຕືອນ.

ຕົວ​ອັກ​ສອນ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ໃນ​ພາກ​ສ່ວນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ຈະ​ມີ​ຜົນ​ກະ​ທົບ​ຕໍ່​ໄປ​ນີ້​
ເສັ້ນເຂົ້າ.

ເລື່ອນ
Synopsis:
ເອີ

ເບິ່ງລາຍລະອຽດຂອງ stty ເອີ ຕົວອັກສອນໃນ stty.

ຖ້າຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງ:

ຖ້າ ເອີ ລັກ​ສະ​ນະ​ແມ່ນ​ຕົວ​ອັກ​ສອນ​ທໍາ​ອິດ​ເຂົ້າ​ໄປ​ໃນ​ເສັ້ນ​, ເສັ້ນ​ຈະ​ເປັນ​
ການ​ປະ​ເມີນ​ຄື​ວ່າ​ມັນ​ມີ​ສອງ​ຕົວ​ອັກ​ສອນ​: a -D ແລະ a .

ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້ ເອີ ລັກສະນະຈະບໍ່ມີຄວາມຫມາຍພິເສດ.

ຖ້າຢູ່ໃນ ex ຮູບແບບການປ້ອນຂໍ້ຄວາມ:

ຖ້າຕົວກະພິບປະຕິບັດຕາມ an autoindent ລັກສະນະ, ໄດ້ autoindent ລັກສະນະໃນ
ແຖວຈະຖືກດັດແກ້ເພື່ອໃຫ້ສ່ວນໜຶ່ງຂອງຕົວອັກສອນທີ່ປ້ອນຂໍ້ຄວາມຕໍ່ໄປຈະເປັນ
ສະແດງຢູ່ໃນຖັນທໍາອິດໃນແຖວຫຼັງຈາກກ່ອນຫນ້າ shiftwidth ຕົວເລືອກດັດແກ້
ຂອບຖັນ, ແລະຜູ້ໃຊ້ຈະຖືກເຕືອນອີກເທື່ອຫນຶ່ງສໍາລັບການປ້ອນຂໍ້ມູນສໍາລັບແຖວດຽວກັນ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຕົວກະພິບປະຕິບັດຕາມ a '0', ເຊິ່ງປະຕິບັດຕາມ an autoindent ລັກສະນະ, ແລະ
ໄດ້ '0' ແມ່ນຕົວອັກສອນປ້ອນຂໍ້ຄວາມກ່ອນໜ້າ, the '0' ແລະທັງ ໝົດ autoindent
ຕົວອັກສອນໃນແຖວຈະຖືກຍົກເລີກ, ແລະຜູ້ໃຊ້ຈະຖືກເຕືອນອີກເທື່ອຫນຶ່ງ
input ສໍາລັບເສັ້ນດຽວກັນ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຕົວກະພິບປະຕິບັດຕາມ a '^', ເຊິ່ງປະຕິບັດຕາມ an autoindent ລັກສະນະ, ແລະ
ໄດ້ '^' ແມ່ນຕົວອັກສອນປ້ອນຂໍ້ຄວາມກ່ອນໜ້າ, the '^' ແລະທັງ ໝົດ autoindent
ຕົວອັກສອນໃນແຖວຈະຖືກຍົກເລີກ, ແລະຜູ້ໃຊ້ຈະຖືກເຕືອນອີກເທື່ອຫນຶ່ງ
input ສໍາລັບເສັ້ນດຽວກັນ. ນອກຈາກນັ້ນ, ໄດ້ autoindent ລະດັບການປ້ອນຂໍ້ມູນຕໍ່ໄປ
ຈະມາຈາກເສັ້ນດຽວກັນຈາກທີ່ autoindent ລະດັບສໍາລັບປະຈຸບັນ
ເສັ້ນ​ເຂົ້າ​ໄດ້​ມາ​.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າບໍ່ມີ autoindent ຫຼື​ຕົວ​ອັກ​ສອນ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​ໃນ​ເສັ້ນ​, ໄດ້​ ເອີ
ລັກສະນະຈະຖືກຍົກເລີກ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້ ເອີ ລັກສະນະຈະບໍ່ມີຄວາມຫມາຍພິເສດ.


Synopsis:

- ຈ

ຖ້າຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງ:

ເຮັດໃຫ້ເສັ້ນຄໍາສັ່ງຖືກວິເຄາະ; -J ຈະ​ໄດ້​ຮັບ​ການ​ສ້າງ​ແຜນ​ທີ່​
ສໍາລັບຈຸດປະສົງນີ້.

ຖ້າຢູ່ໃນ ex ຮູບແບບການປ້ອນຂໍ້ຄວາມ:

ຢຸດສາຍປັດຈຸບັນ. ຖ້າບໍ່ມີຕົວອັກສອນອື່ນນອກຈາກ autoindent
ຕົວອັກສອນໃນແຖວ, ຕົວອັກສອນທັງໝົດໃນແຖວຈະຖືກຍົກເລີກ.

ເຕືອນການປ້ອນຂໍ້ຄວາມໃສ່ແຖວໃໝ່ຫຼັງຈາກແຖວປັດຈຸບັນ. ຖ້າ autoindent ດັດແກ້
ທາງ​ເລືອກ​ທີ່​ກໍາ​ນົດ​ໄວ້​, ເປັນ​ຈໍາ​ນວນ​ທີ່​ເຫມາະ​ສົມ​ຂອງ​ autoindent ຕົວອັກສອນຈະຖືກເພີ່ມເປັນ a
prefix ກັບເສັ້ນດັ່ງທີ່ອະທິບາຍໂດຍ ex autoindent ແກ້ໄຂທາງເລືອກ.


Synopsis:


ອະນຸຍາດໃຫ້ເຂົ້າຂອງອັນຕໍ່ມາ ຫຼື -J ເປັນ​ຕົວ​ອັກ​ສອນ​, ລົບ​
ຄວາມຫມາຍພິເສດໃດໆທີ່ມັນອາດຈະມີຕໍ່ກັບບັນນາທິການໃນລະຫວ່າງຮູບແບບການປ້ອນຂໍ້ຄວາມ. ໄດ້
ລັກ​ສະ​ນະ​ຈະ​ໄດ້​ຮັບ​ການ​ເກັບ​ຮັກ​ສາ​ໄວ້​ແລະ​ການ​ປະ​ເມີນ​ຜົນ​ໃນ​ເວ​ລາ​ທີ່​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ໄດ້​ຖືກ​ວິ​ເຄາະ​, ຫຼື​ເກັບ​ຮັກ​ສາ​ໄວ້​ແລະ​
ລວມໄປເຖິງເມື່ອຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າກາຍເປັນສ່ວນໜຶ່ງຂອງບັຟເຟີການແກ້ໄຂ.

- ວີ
Synopsis:
- ວ

ອະ​ນຸ​ຍາດ​ໃຫ້​ມີ​ການ​ເຂົ້າ​ຂອງ​ຕົວ​ອັກ​ສອນ​ຕໍ່​ມາ​ເປັນ​ຕົວ​ອັກ​ສອນ​ໃດ​ຫນຶ່ງ​, ການ​ລົບ​ພິ​ເສດ​ໃດໆ​
ຊຶ່ງຫມາຍຄວາມວ່າມັນອາດຈະມີຕໍ່ກັບບັນນາທິການໃນລະຫວ່າງຮູບແບບການປ້ອນຂໍ້ຄວາມ. ໄດ້ -V ລັກ​ສະ​ນະ​
ຈະຖືກຍົກເລີກກ່ອນທີ່ເສັ້ນຄໍາສັ່ງຈະຖືກວິເຄາະຫຼືຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າເປັນສ່ວນຫນຶ່ງຂອງ
ແກ້ໄຂ buffer.

ຖ້າການທໍາງານຂອງ `` ຕໍ່ໄປຕາມຕົວໜັງສື '' ຖືກປະຕິບັດໂດຍລະບົບພື້ນຖານ, ມັນແມ່ນ
ການປະຕິບັດ - ກໍານົດບໍ່ວ່າຈະເປັນລັກສະນະອື່ນທີ່ບໍ່ແມ່ນ -V ປະຕິບັດຫນ້າທີ່ນີ້.

-ວ
Synopsis:
-ວ

ຍົກເລີກ -W, ແລະຄໍາກ່ອນຫນ້າມັນຢູ່ໃນເສັ້ນປ້ອນເຂົ້າ, ລວມທັງໃດໆ
ຕົວ​ອັກ​ສອນ​ປະ​ຕິ​ບັດ​ຕາມ​ຄໍາ​ສັບ​ຕ່າງໆ​ແລະ​ກ່ອນ​ຫນ້າ​ -ວ. ຖ້າຄຳວ່າ ``
ການທໍາງານຂອງ erase'' ແມ່ນປະຕິບັດໂດຍລະບົບພື້ນຖານ, ມັນຖືກກໍານົດໂດຍການປະຕິບັດ
ບໍ່ວ່າຈະເປັນລັກສະນະອື່ນທີ່ບໍ່ແມ່ນ -W ປະຕິບັດຫນ້າທີ່ນີ້.

ຄໍາສັ່ງ ຄໍາອະທິບາຍ in ex
ສັນຍາລັກຕໍ່ໄປນີ້ຖືກໃຊ້ໃນພາກນີ້ເພື່ອເປັນຕົວແທນຂອງຕົວແກ້ໄຂຄໍາສັ່ງ. ບາງສ່ວນຂອງ
ຕົວແກ້ໄຂເຫຼົ່ານີ້ສາມາດຖືກລະເວັ້ນ, ໃນກໍລະນີນີ້, ຄ່າເລີ່ມຕົ້ນທີ່ລະບຸໄວ້ຈະຖືກໃຊ້.

1 ຕື່ມ ທີ່ຢູ່ແຖວດຽວ, ໃຫ້ໃນຮູບແບບໃດນຶ່ງທີ່ອະທິບາຍໄວ້ໃນ ທີ່ຢູ່ in ex;
ຄ່າເລີ່ມຕົ້ນຈະເປັນເສັ້ນປະຈຸບັນ ('.'), ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນ.

ຖ້າທີ່ຢູ່ແຖວເປັນສູນ, ມັນຈະເປັນຂໍ້ຜິດພາດ, ເວັ້ນເສຍແຕ່ຈະລະບຸໄວ້ເປັນຢ່າງອື່ນ
ຄໍາອະທິບາຍຄໍາສັ່ງຕໍ່ໄປນີ້.

ຖ້າການແກ້ໄຂ buffer ຫວ່າງເປົ່າ, ແລະທີ່ຢູ່ຖືກລະບຸດ້ວຍຄໍາສັ່ງອື່ນ
ກ່ວາ =, ເພີ່ມເຕີມ, ໃສ່, ເປີດ, ເອົາໃຈໃສ່, ອ່ານ, ຫຼື ສາຍຕາຫຼືທີ່ຢູ່ບໍ່ແມ່ນສູນ,
ມັນຈະເປັນຄວາມຜິດພາດ.

2 ຕື່ມ ສອງທີ່ຢູ່ທີ່ລະບຸໄລຍະລວມຂອງແຖວ. ຖ້າບໍ່ມີທີ່ຢູ່
ລະບຸໄວ້, ຄ່າເລີ່ມຕົ້ນສໍາລັບ 2 ຕື່ມ ຈະເປັນເສັ້ນປະຈຸບັນເທົ່ານັ້ນ (".,."), ເວັ້ນເສຍແຕ່
ຖ້າບໍ່ດັ່ງນັ້ນລະບຸໄວ້ໃນຄໍາອະທິບາຍຄໍາສັ່ງຕໍ່ໄປນີ້. ຖ້າທີ່ຢູ່ຫນຶ່ງແມ່ນ
ລະບຸ, 2 ຕື່ມ ຈະຕ້ອງລະບຸເສັ້ນນັ້ນເທົ່ານັ້ນ, ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນໃນ
ດັ່ງຕໍ່ໄປນີ້ຄໍາອະທິບາຍຄໍາສັ່ງ.

ມັນຈະເປັນຂໍ້ຜິດພາດຖ້າທີ່ຢູ່ທໍາອິດໃຫຍ່ກວ່າທີ່ຢູ່ທີສອງ.

ຖ້າການແກ້ໄຂ buffer ຫວ່າງເປົ່າ, ແລະສອງທີ່ຢູ່ຈະຖືກລະບຸດ້ວຍຄໍາສັ່ງ
ນອກຈາກ !, ຂຽນ, wq, ຫຼື xit ຄໍາສັ່ງ, ຫຼືທີ່ຢູ່ທັງສອງບໍ່ແມ່ນສູນ, ມັນ
ຈະ​ເປັນ​ຄວາມ​ຜິດ​ພາດ​.

ນັບ ຈຳນວນທົດສະນິຍົມທີ່ເປັນບວກ. ຖ້າ ນັບ ຖືກກໍານົດ, ມັນຈະເທົ່າກັບ
ການລະບຸທີ່ຢູ່ເພີ່ມເຕີມຕໍ່ກັບຄໍາສັ່ງ, ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນໂດຍ
ຄໍາອະທິບາຍຄໍາສັ່ງຕໍ່ໄປນີ້. ທີ່ຢູ່ເພີ່ມເຕີມຈະຕ້ອງເທົ່າກັບ
ທີ່​ຢູ່​ສຸດ​ທ້າຍ​ລະ​ບຸ​ໄວ້​ກັບ​ຄໍາ​ສັ່ງ (ບໍ່​ວ່າ​ຈະ​ເປັນ​ຢ່າງ​ຊັດ​ເຈນ​ຫຼື​ໂດຍ​ເລີ່ມ​ຕົ້ນ​) ບວກ​
ນັບ-1

ຖ້າອັນນີ້ຈະສົ່ງຜົນໃຫ້ທີ່ຢູ່ໃຫຍ່ກວ່າແຖວສຸດທ້າຍຂອງການແກ້ໄຂ
buffer, ມັນຈະຖືກແກ້ໄຂໃຫ້ເທົ່າກັບເສັ້ນສຸດທ້າຍຂອງ buffer ແກ້ໄຂ.

ທົງ ໜຶ່ງ ຫຼືຫຼາຍຕົວລະຄອນ '+', '−', '#', 'p', ຫຼື 'l' (ell). ທຸງ
ລັກສະນະສາມາດເປັນ - ແຍກ, ແລະໃນຄໍາສັ່ງຫຼືປະສົມປະສານ. ໄດ້
ລັກສະນະ '#', 'p', ແລະ 'l' ຈະເຮັດໃຫ້ເສັ້ນຖືກຂຽນໃນຮູບແບບ
ລະບຸໄວ້ໂດຍ ພິມ ຄໍາສັ່ງທີ່ລະບຸໄວ້ ທົງ.

ເສັ້ນທີ່ຈະຂຽນມີດັ່ງນີ້:

1. ທັງຫມົດແກ້ໄຂເສັ້ນ buffer ລາຍລັກອັກສອນໃນລະຫວ່າງການປະຕິບັດຂອງ ex &, ~, ບັນຊີລາຍຊື່,
ຈໍານວນ, ເປີດ, ພິມ, s, ສາຍຕາ, ແລະ z ຄໍາສັ່ງຈະຖືກຂຽນຕາມທີ່ລະບຸ
by ທົງ.

2. ຫຼັງຈາກສໍາເລັດຂອງ an ex ຄໍາສັ່ງທີ່ມີທຸງເປັນການໂຕ້ຖຽງ, ໄດ້
ເສັ້ນປະຈຸບັນຈະຖືກຂຽນຕາມທີ່ລະບຸໄວ້ໂດຍ ທົງ, ເວັ້ນເສຍແຕ່ວ່າສາຍໃນປະຈຸບັນ
ແມ່ນເສັ້ນສຸດທ້າຍທີ່ຂຽນໂດຍຄໍາສັ່ງ.

ຕົວລະຄອນ '+' ແລະ '−' ເຮັດໃຫ້ມູນຄ່າຂອງເສັ້ນປະຈຸບັນຫຼັງຈາກ
ການປະຕິບັດຂອງ ex ຄໍາ​ສັ່ງ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ປັບ​ໂດຍ​ທີ່​ຢູ່ offset ດັ່ງ​ທີ່​ອະ​ທິ​ບາຍ​ໃນ​
ທີ່ຢູ່ in ex. ການປັບຕົວນີ້ຈະເກີດຂຶ້ນກ່ອນທີ່ເສັ້ນປະຈຸບັນແມ່ນ
ລາຍ​ລັກ​ອັກ​ສອນ​ດັ່ງ​ທີ່​ອະ​ທິ​ບາຍ​ໃນ 2. ຂ້າງ​ເທິງ​ນີ້​.

ຄ່າເລີ່ມຕົ້ນສໍາລັບ ທົງ ຈະບໍ່ມີ.

buffer ຫນຶ່ງໃນຈໍານວນພື້ນທີ່ທີ່ມີຊື່ສໍາລັບການຖືຂໍ້ຄວາມ. buffers ທີ່ມີຊື່ແມ່ນຖືກກໍານົດ
ໂດຍຕົວອັກສອນທີ່ເປັນຕົວອັກສອນ ແລະຕົວເລກຂອງສະຖານທີ່ POSIX. ຍັງ​ຈະ​ມີ​ຫນຶ່ງ​
ບັຟເຟີ ``ບໍ່ມີຊື່''. ເມື່ອບໍ່ມີ buffer ຖືກກໍານົດສໍາລັບຄໍາສັ່ງບັນນາທິການທີ່ໃຊ້ a
buffer, buffer ທີ່ບໍ່ມີຊື່ຈະຖືກນໍາໃຊ້. ຄໍາສັ່ງທີ່ເກັບຮັກສາຂໍ້ຄວາມເຂົ້າໄປໃນ buffers
ຈະ​ເກັບ​ຂໍ້​ຄວາມ​ດັ່ງ​ທີ່​ມັນ​ເປັນ​ກ່ອນ​ທີ່​ຄໍາ​ສັ່ງ​ມີ​ຜົນ​ບັງ​ຄັບ​ໃຊ້​, ແລະ​ຈະ​ເກັບ​ຮັກ​ສາ​ໄວ້​
ຂໍ້​ຄວາມ​ທີ່​ເກີດ​ຂຶ້ນ​ກ່ອນ​ຫນ້າ​ນັ້ນ​ໃນ​ໄຟລ​໌​ກ່ອນ​ທີ່​ຂໍ້​ຄວາມ​ທີ່​ເກີດ​ຂຶ້ນ​ໃນ​ຕໍ່​ມາ​ໃນ​ໄຟລ​໌​,
ໂດຍບໍ່ຄໍານຶງເຖິງວິທີການພື້ນທີ່ຂໍ້ຄວາມຖືກລະບຸ. ຄໍາສັ່ງທີ່ເກັບຮັກສາຂໍ້ຄວາມເຂົ້າໄປໃນ
buffers ຈະຕ້ອງເກັບຮັກສາຂໍ້ຄວາມເຂົ້າໄປໃນ buffer ທີ່ບໍ່ມີຊື່ເຊັ່ນດຽວກັນກັບທີ່ລະບຸໄວ້
buffer

In ex ຄໍາສັ່ງ, ຊື່ buffer ຖືກກໍານົດເປັນຊື່ໂດຍຕົວມັນເອງ. ໃນເປີດຫຼື
ໂໝດສາຍຕາຈະສັ່ງຊື່ໃຫ້ນຳໜ້າດ້ວຍວົງຢືມສອງເທົ່າ ('"') ລັກ​ສະ​ນະ​.

ຖ້າຊື່ buffer ທີ່ລະບຸເປັນຕົວພິມໃຫຍ່, ແລະເນື້ອໃນຂອງ buffer
ຈະຖືກດັດແກ້, buffer ຈະຖືກຕໍ່ທ້າຍແທນທີ່ຈະເປັນ
ຂຽນທັບ. ຖ້າຫາກວ່າ buffer ບໍ່ໄດ້ຖືກດັດແກ້, ການລະບຸຊື່ buffer ໃນ
ຕົວພິມນ້ອຍ ແລະ ຕົວພິມໃຫຍ່ຈະມີຜົນຄືກັນ.

ນອກຈາກນີ້ຍັງຈະຕ້ອງມີ buffers ທີ່ມີຊື່ໂດຍຕົວເລກ 1 ຫາ 9. ໃນເປີດແລະສາຍຕາ
ຮູບແບບ, ຖ້າພາກພື້ນຂອງຂໍ້ຄວາມລວມທັງຕົວອັກສອນຈາກຫຼາຍກວ່າແຖວດຽວ
ຖືກແກ້ໄຂໂດຍ vi c or d ຄໍາສັ່ງ, ລັກສະນະການເຄື່ອນໄຫວທີ່ກ່ຽວຂ້ອງກັບ
ໄດ້ c or d ຄໍາສັ່ງກໍານົດວ່າຂໍ້ຄວາມ buffer ຈະຢູ່ໃນຮູບແບບເສັ້ນ, ຫຼື
ຄໍາສັ່ງ %, `, /, ?, (, ), N, n, {, ຫຼື } ຖືກນໍາໃຊ້ເພື່ອກໍານົດຂອບເຂດຂອງຂໍ້ຄວາມສໍາລັບ
ໄດ້ c or d ຄໍາສັ່ງ, ເນື້ອໃນຂອງ buffers 1 ເຖິງ 8 ຈະຖືກຍ້າຍເຂົ້າໄປໃນ
buffer ຕັ້ງຊື່ໂດຍຄ່າຕົວເລກຕໍ່ໄປ, ເນື້ອໃນຂອງ buffer 9
ຈະຖືກຍົກເລີກ, ແລະພື້ນທີ່ຂອງຂໍ້ຄວາມຈະຖືກຄັດລອກເຂົ້າໄປໃນ buffer 1. ນີ້
ຈະຕ້ອງເປັນນອກຈາກການຄັດລອກຂໍ້ຄວາມເຂົ້າໄປໃນ buffer ທີ່ຜູ້ໃຊ້ກໍານົດຫຼືບໍ່ມີຊື່
buffer, ຫຼືທັງສອງ. ບັຟເຟີຕົວເລກສາມາດຖືກລະບຸໄວ້ເປັນບ່ອນເກັບຂໍ້ມູນແຫຼ່ງສໍາລັບການເປີດ
ແລະຄໍາສັ່ງຮູບແບບສາຍຕາ; ແນວໃດກໍ່ຕາມ, ການລະບຸ buffer ຕົວເລກເປັນການຂຽນ
ເປົ້າໝາຍຂອງຄຳສັ່ງເປີດ ຫຼື ໂໝດສາຍຕາຈະມີຜົນໄດ້ຮັບທີ່ບໍ່ລະບຸ.

ຂໍ້ຄວາມຂອງແຕ່ລະ buffer ຈະມີລັກສະນະເປັນແຖວຫຼື
ຮູບແບບຕົວອັກສອນ. ການຕໍ່ທ້າຍຂໍ້ຄວາມໃສ່ກັບ buffer ທີ່ບໍ່ຫວ່າງເປົ່າຈະຕ້ອງຕັ້ງໂໝດໃຫ້ກົງກັນ
ລັກສະນະຂອງຂໍ້ຄວາມທີ່ຈະຖືກຕື່ມໃສ່. ການຕໍ່ທ້າຍຂໍ້ຄວາມໃສ່ກັບ buffer ຈະ
ເຮັດໃຫ້ເກີດການສ້າງຢ່າງຫນ້ອຍຫນຶ່ງເສັ້ນເພີ່ມເຕີມໃນ buffer. ຂໍ້ຄວາມທັງໝົດ
ເກັບຮັກສາໄວ້ໃນ buffers ໂດຍ ex ຄໍາສັ່ງຈະຕ້ອງຢູ່ໃນຮູບແບບເສັ້ນ. ໄດ້ ex ຄໍາສັ່ງນັ້ນ
ໃຊ້ buffers ເປັນແຫລ່ງທີ່ມາຂອງຂໍ້ຄວາມລະບຸສ່ວນບຸກຄົນວ່າ buffers ແຕກຕ່າງກັນແນວໃດ
ໂໝດຖືກຈັດການ. ແຕ່ລະຄໍາສັ່ງເປີດຫຼືຮູບແບບສາຍຕາທີ່ໃຊ້ buffers ສໍາລັບໃດໆ
ຈຸດ​ປະ​ສົງ​ລະ​ບຸ​ສ່ວນ​ບຸກ​ຄົນ​ຮູບ​ແບບ​ຂອງ​ຂໍ້​ຄວາມ​ທີ່​ເກັບ​ຮັກ​ສາ​ໄວ້​ໃນ buffer ແລະ​
ວິທີ buffers ຂອງໂຫມດທີ່ແຕກຕ່າງກັນຖືກຈັດການ.

ເອກະສານ ຂໍ້ຄວາມຄໍາສັ່ງທີ່ໃຊ້ເພື່ອເອົາຊື່ເສັ້ນທາງ. ຄ່າເລີ່ມຕົ້ນຈະເປັນປັດຈຸບັນ
ຊື່ເສັ້ນທາງ, ຕາມທີ່ໄດ້ກໍານົດໄວ້ກ່ອນຫນ້ານີ້, ໃນກໍລະນີໃດກໍ່ຕາມ, ຖ້າບໍ່ມີຊື່ເສັ້ນທາງໃນປະຈຸບັນ
ໄດ້​ຮັບ​ການ​ສ້າງ​ຕັ້ງ​ຂຶ້ນ​ມັນ​ຈະ​ເປັນ​ຄວາມ​ຜິດ​ພາດ​, ຍົກ​ເວັ້ນ​ແຕ່​ໄດ້​ບັນ​ທຶກ​ໄວ້​ໂດຍ​ສະ​ເພາະ​ໃນ​
ຄໍາອະທິບາຍຄໍາສັ່ງສ່ວນບຸກຄົນທີ່ປະຕິບັດຕາມ. ຖ້າຂໍ້ຄວາມຄໍາສັ່ງປະກອບດ້ວຍອັນໃດ
ຂອງລັກສະນະ '~', '{', '[', '*', '?', '$', '"', backquote, ວົງຢືມດຽວ,
ແລະ , ມັນ​ຈະ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ຂະ​ບວນ​ການ​ຂອງ "ການ​ຂະ​ຫຍາຍ​ແກະ​"​,
ດັ່ງທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້; ຖ້າຫຼາຍກວ່າຊື່ເສັ້ນທາງດຽວຜົນໄດ້ຮັບແລະຄໍາສັ່ງ
ຄາດຫວັງວ່າພຽງແຕ່ຫນຶ່ງ, ມັນຈະເປັນຄວາມຜິດພາດ.

ຂະບວນການຂະຫຍາຍແກະໃນບັນນາທິການຈະຕ້ອງເຮັດດັ່ງຕໍ່ໄປນີ້. ໄດ້ ex
utility ຈະຜ່ານສອງ argument ກັບໂຄງການທີ່ມີຊື່ໂດຍຕົວເລືອກການແກ້ໄຂ shell;
ທໍາອິດຈະເປັນ −ຄ, ແລະທີສອງຈະເປັນສາຍ "ສຽງດັງ" ແລະຄໍາສັ່ງ
ຂໍ້ຄວາມເປັນການໂຕ້ຖຽງດຽວ. ຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດມາດຕະຖານຂອງສິ່ງນັ້ນ
ຄໍາສັ່ງຈະປ່ຽນແທນຂໍ້ຄວາມຄໍາສັ່ງ.

! ລັກສະນະທີ່ສາມາດຖືກຕໍ່ທ້າຍກັບຊື່ຄໍາສັ່ງເພື່ອດັດແປງການດໍາເນີນການຂອງມັນ, ເປັນ
ລາຍລະອຽດໃນຄໍາອະທິບາຍຄໍາສັ່ງສ່ວນບຸກຄົນ. ມີຂໍ້ຍົກເວັ້ນຂອງ ex
ອ່ານ, ຂຽນ, ແລະ ! ຄໍາສັ່ງ, ໄດ້ '!' ລັກ​ສະ​ນະ​ພຽງ​ແຕ່​ຈະ​ເຮັດ​ຫນ້າ​ທີ່​ເປັນ​ການ​ດັດ​ແກ້​ຖ້າ​ຫາກ​ວ່າ​
ບໍ່​ມີ ຕົວອັກສອນລະຫວ່າງມັນແລະຊື່ຄໍາສັ່ງ.

ຈື່ໄດ້ ຄົ້ນຫາ ທິດທາງ
ໄດ້ vi ຄໍາສັ່ງ N ແລະ n ເລີ່ມຕົ້ນຄົ້ນຫາໃນທິດທາງຂ້າງຫນ້າຫຼືກັບຄືນໄປບ່ອນໃນ
ການແກ້ໄຂ buffer ໂດຍອີງໃສ່ທິດທາງການຊອກຫາທີ່ຈື່ໄວ້, ເຊິ່ງໃນເບື້ອງຕົ້ນ
unset, ແລະຖືກກໍານົດໂດຍ ex ທົ່ວໂລກ, v, s, ແລະ ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງ, ແລະ vi / ແລະ ?
ຄຳ ສັ່ງ.

ຕົວຫຍໍ້
Synopsis:
ab[ຫຍໍ້][lhs rhs]

If lhs ແລະ rhs ບໍ່ໄດ້ລະບຸ, ຂຽນບັນຊີລາຍຊື່ຫຍໍ້ໃນປະຈຸບັນແລະບໍ່ເຮັດຫຍັງເລີຍ
more

ການປະຕິບັດອາດຈະຈໍາກັດຊຸດຂອງຕົວອັກສອນທີ່ຍອມຮັບໃນ lhs or rhs, ຍົກເວັ້ນນັ້ນ
ຕົວອັກສອນທີ່ສາມາດພິມໄດ້ແລະ ຕົວອັກສອນຈະບໍ່ຖືກຈໍາກັດ. ເພີ່ມເຕີມ
ຂໍ້​ຈໍາ​ກັດ​ຈະ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​ກໍາ​ນົດ​.

ໃນທັງສອງ lhs ແລະ rhs, ລັກສະນະໃດອາດຈະຖືກຫລົບຫນີດ້ວຍ a -V, ໃນກໍລະນີດັ່ງກ່າວນີ້
ຕົວອັກສອນຈະບໍ່ຖືກໃຊ້ເພື່ອກໍານົດຂອບເຂດ lhs ຈາກ rhs, ແລະການຫລົບຫນີ -V ຈະ​ເປັນ​
ຍົກເລີກ.

ໃນ​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​ເປີດ​ແລະ​ພາບ​, ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ແມ່ນ​ຄໍາ​ສັບ​ຫຼື​ ລັກສະນະທີ່ບໍ່ໄດ້ຫລົບຫນີ
ໂດຍ ກ -V ແມ່ນ​ໃສ່​ຕົວ​ອັກ​ສອນ​ຫຼັງ​ຈາກ​ລັກ​ສະ​ນະ​ຄໍາ​ສັບ​ຕ່າງໆ​, ການ​ກວດ​ກາ​ຈະ​ໄດ້​ຮັບ​ການ​ເຮັດ​ໃຫ້ a​
ຊຸດຂອງຕົວອັກສອນທີ່ກົງກັນ lhs, ໃນການປ້ອນຂໍ້ຄວາມທີ່ໃສ່ໃນລະຫວ່າງຄໍາສັ່ງນີ້. ຖ້າມັນເປັນ
ພົບເຫັນ, ຜົນກະທົບຈະເປັນຖ້າຫາກວ່າ rhs ຖືກໃສ່ແທນ lhs.

ຊຸດຕົວອັກສອນທີ່ຖືກກວດສອບແມ່ນຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້:

1. ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ຕົວ​ອັກ​ສອນ​ໃສ່​ກ່ອນ​ຄໍາ​ສັບ​ແລະ​ບໍ່​ແມ່ນ​ຄໍາ​ຫຼື​ ຕົວລະຄອນ
ທີ່ກະຕຸ້ນການກວດສອບ, ຊຸດຂອງຕົວອັກສອນຈະຕ້ອງປະກອບດ້ວຍຕົວອັກສອນຄໍາ.

2. ຖ້າ​ຕົວ​ອັກ​ສອນ​ໃສ່​ກ່ອນ​ຄໍາ​ສັບ​ແລະ​ບໍ່​ແມ່ນ​ຄໍາ​ຫຼື​ ຕົວ​ອັກ​ສອນ​ທີ່​
triggered ການກວດສອບແມ່ນລັກສະນະຄໍາສັບ, ຊຸດຂອງຕົວອັກສອນຈະຕ້ອງປະກອບດ້ວຍ
ຕົວອັກສອນຖືກໃສ່ທັນທີກ່ອນທີ່ຈະສະແດງຕົວລະຄອນທີ່ເປັນຄໍາ
ຕົວອັກສອນ, ບວກກັບລັກສະນະຂອງຄໍາທີ່ກະຕຸ້ນ.

3. ຖ້າ​ຕົວ​ອັກ​ສອນ​ໃສ່​ກ່ອນ​ຄໍາ​ສັບ​ແລະ​ບໍ່​ແມ່ນ​ຄໍາ​ຫຼື​ ຕົວ​ອັກ​ສອນ​ທີ່​
triggered ການກວດສອບບໍ່ແມ່ນລັກສະນະຄໍາສັບ, ຊຸດຂອງຕົວອັກສອນຈະຕ້ອງປະກອບດ້ວຍ
ຕົວອັກສອນທີ່ຖືກແຊກໃສ່ກ່ອນຕົວລະຄອນທີ່ກະຕຸ້ນເຊິ່ງບໍ່ແມ່ນທັງສອງ
ຕົວອັກສອນຫຼືຕົວອັກສອນຂອງຄໍາສັບ, ບວກກັບລັກສະນະຄໍາທີ່ກະຕຸ້ນ.

ມັນບໍ່ໄດ້ຖືກລະບຸບໍ່ວ່າຈະເປັນ lhs ການໂຕ້ຖຽງທີ່ເຂົ້າມາສໍາລັບ ex ຕົວຫຍໍ້ ແລະ ບໍ່ຫຍໍ້
ຄໍາສັ່ງຖືກທົດແທນໃນຮູບແບບນີ້. ບໍ່ວ່າຈະເປັນການທົດແທນທີ່ເກີດຂື້ນຫຼືບໍ່,
ຜົນກະທົບຂອງຄໍາສັ່ງຈະຄືກັບວ່າການທົດແທນບໍ່ໄດ້ເກີດຂຶ້ນ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ເອກະສານຊ້ອນທ້າຍ
Synopsis:
[1 ຕື່ມ] a[ຄ້າງ][!]

ກະລຸນາໃສ່ ex ຮູບແບບການປ້ອນຂໍ້ຄວາມ; ຂໍ້ຄວາມທີ່ປ້ອນຈະຖືກວາງໄວ້ຫຼັງຈາກແຖວທີ່ລະບຸໄວ້. ຖ້າສາຍ
ສູນຖືກລະບຸ, ຂໍ້ຄວາມຈະຖືກວາງໄວ້ໃນຕອນຕົ້ນຂອງບັຟເຟີການແກ້ໄຂ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຈໍານວນ ແລະ autoindent ແກ້ໄຂທາງເລືອກ; ປະຕິບັດຕາມ
ຊື່ຄໍາສັ່ງກັບ '!' ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ການ​ autoindent ແກ້ໄຂການຕັ້ງຄ່າທາງເລືອກທີ່ຈະສະຫຼັບສໍາລັບ
ໄລຍະເວລາຂອງຄໍາສັ່ງນີ້ເທົ່ານັ້ນ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວປ້ອນຂໍ້ມູນສຸດທ້າຍ; ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ເສັ້ນ​ໄດ້​ຮັບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​, ຕັ້ງ​ເປັນ​ທີ່​ລະ​ບຸ​ໄວ້​
ແຖວ, ຫຼືແຖວທໍາອິດຂອງການແກ້ໄຂ buffer ຖ້າເສັ້ນສູນຖືກລະບຸ, ຫຼືສູນຖ້າ.
ບັຟເຟີການແກ້ໄຂຫວ່າງເປົ່າ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

Arguments
Synopsis:
ar[gs]

ຂຽນລາຍການ argument-list ໃນປັດຈຸບັນ, ຖ້າມີ, ລະຫວ່າງ '['
ແລະ ']' ລັກສະນະ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ການປ່ຽນແປງ
Synopsis:
[2 ຕື່ມ] c[hange][!][ນັບ]

ກະລຸນາໃສ່ ex ຮູບແບບການປ້ອນຂໍ້ຄວາມ; ຂໍ້​ຄວາມ​ທີ່​ປ້ອນ​ເຂົ້າ​ຈະ​ປ່ຽນ​ແທນ​ເສັ້ນ​ທີ່​ກໍາ​ນົດ​ໄວ້​. ທີ່ກໍານົດໄວ້
ເສັ້ນຈະຖືກຄັດລອກເຂົ້າໄປໃນ buffer ທີ່ບໍ່ມີຊື່, ເຊິ່ງຈະກາຍເປັນ buffer ຮູບແບບເສັ້ນ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຈໍານວນ ແລະ autoindent ແກ້ໄຂທາງເລືອກ; ປະຕິບັດຕາມ
ຊື່ຄໍາສັ່ງກັບ '!' ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ການ​ autoindent ແກ້ໄຂການຕັ້ງຄ່າທາງເລືອກທີ່ຈະສະຫຼັບສໍາລັບ
ໄລຍະເວລາຂອງຄໍາສັ່ງນີ້ເທົ່ານັ້ນ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວປ້ອນຂໍ້ມູນສຸດທ້າຍ; ຖ້າບໍ່ມີສາຍເຂົ້າ, ໃຫ້ຕັ້ງເປັນແຖວກ່ອນ
ທີ່ຢູ່ທໍາອິດ, ຫຼືແຖວທໍາອິດຂອງການແກ້ໄຂ buffer ຖ້າບໍ່ມີແຖວກ່ອນຫນ້າ
ທີ່ຢູ່ທໍາອິດ, ຫຼືສູນຖ້າການແກ້ໄຂບັຟເຟີຫວ່າງເປົ່າ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ການປ່ຽນແປງ Directory
Synopsis:
chd[ir][!][ລະບົບ]
cd[!][ລະບົບ]

ປ່ຽນໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນເປັນ ລະບົບ.

ຖ້າບໍ່ ລະບົບ ການໂຕ້ຖຽງແມ່ນຖືກກໍານົດ, ແລະ ຫນ້າທໍາອິດ ຕົວແປສະພາບແວດລ້ອມຖືກຕັ້ງເປັນທີ່ບໍ່ແມ່ນ.
ຄ່າ null ແລະ​ບໍ່​ແມ່ນ​ຫວ່າງ​ເປົ່າ​, ລະບົບ ຈະ​ເປັນ​ຄ່າ​ເລີ່ມ​ຕົ້ນ​ທີ່​ມີ​ຊື່​ໃນ​ ຫນ້າທໍາອິດ
ສະພາບແວດລ້ອມປ່ຽນແປງ. ຖ້າ ຫນ້າທໍາອິດ ຕົວແປສະພາບແວດລ້ອມແມ່ນຫວ່າງເປົ່າຫຼືບໍ່ໄດ້ກໍານົດ, the
ຄ່າເລີ່ມຕົ້ນຂອງ ລະບົບ ແມ່ນ​ການ​ປະ​ຕິ​ບັດ​ກໍາ​ນົດ​.

ຖ້າບໍ່ '!' ຖືກ​ຕໍ່​ທ້າຍ​ກັບ​ຊື່​ຄໍາ​ສັ່ງ​, ແລະ​ການ​ແກ້​ໄຂ buffer ໄດ້​ຖືກ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​
ການຂຽນທີ່ສົມບູນສຸດທ້າຍ, ແລະຊື່ເສັ້ນທາງປະຈຸບັນບໍ່ໄດ້ເລີ່ມຕົ້ນດ້ວຍ a '/', ມັນຈະເປັນ
ຄວາມ​ຜິດ​ພາດ​.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ສໍາເນົາ
Synopsis:
[2 ຕື່ມ] co[py] 1 ຕື່ມ [ທົງ]
[2 ຕື່ມ] t 1 ຕື່ມ [ທົງ]

ຄັດລອກເສັ້ນທີ່ກໍານົດຫຼັງຈາກເສັ້ນປາຍທາງທີ່ກໍານົດໄວ້; ເສັ້ນສູນລະບຸວ່າ
ເສັ້ນຈະຖືກວາງໄວ້ໃນຕອນຕົ້ນຂອງການແກ້ໄຂ buffer.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍທີ່ສຳເນົາ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ລົບ
Synopsis:
[2 ຕື່ມ] d[elete][buffer][ນັບ][ທົງ]

ລົບສາຍທີ່ລະບຸໄວ້ໃນ buffer (ເລີ່ມຕົ້ນເປັນ buffer ທີ່ບໍ່ມີຊື່), ເຊິ່ງຈະ
ກາຍເປັນ buffer ຮູບແບບເສັ້ນ.

ທຸງສາມາດປະຕິບັດຕາມຊື່ຄໍາສັ່ງທັນທີ; ເບິ່ງ ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງ​ເປັນ​ແຖວ​ຕາມ​ເສັ້ນ​ທີ່​ຖືກ​ລົບ, ຫຼື​ເປັນ​ແຖວ​ສຸດ​ທ້າຍ​ໃນ​ການ​ແກ້​ໄຂ
buffer ຖ້າເສັ້ນນັ້ນຜ່ານຈຸດສິ້ນສຸດຂອງການແກ້ໄຂບັຟເຟີ, ຫຼືເປັນສູນຖ້າບັຟເຟີການແກ້ໄຂແມ່ນ
ຫວ່າງເປົ່າ

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ດັດແກ້
Synopsis:
e[dit][!][+ຄໍາສັ່ງ][ເອກະສານ]
ex[!][+ຄໍາສັ່ງ][ເອກະສານ]

ຖ້າບໍ່ '!' ຖືກ​ຕໍ່​ທ້າຍ​ກັບ​ຊື່​ຄໍາ​ສັ່ງ​, ແລະ​ການ​ແກ້​ໄຂ buffer ໄດ້​ຖືກ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​
ການຂຽນສະບັບສຸດທ້າຍ, ມັນຈະເປັນຄວາມຜິດພາດ.

If ເອກະສານ ຖືກລະບຸໄວ້, ແທນທີ່ເນື້ອຫາປັດຈຸບັນຂອງການແກ້ໄຂບັຟເຟີດ້ວຍປັດຈຸບັນ
ເນື້ອໃນຂອງ ເອກະສານ, ແລະຕັ້ງຊື່ເສັ້ນທາງປະຈຸບັນເປັນ ເອກະສານທີ່ຢູ່ ຖ້າຫາກວ່າ ເອກະສານ ບໍ່ໄດ້ລະບຸ, ທົດແທນ
ເນື້ອໃນປະຈຸບັນຂອງການແກ້ໄຂ buffer ກັບເນື້ອໃນປະຈຸບັນຂອງໄຟລ໌ທີ່ມີຊື່ໂດຍ
ຊື່ເສັ້ນທາງປະຈຸບັນ. ຖ້າ​ຫາກ​ວ່າ​ດ້ວຍ​ເຫດ​ຜົນ​ໃດ​ຫນຶ່ງ​ໃນ​ປັດ​ຈຸ​ບັນ​ຂອງ​ໄຟລ​໌​ບໍ່​ສາ​ມາດ​ເຂົ້າ​ເຖິງ​,
ບັຟເຟີການແກ້ໄຂຈະຕ້ອງຫວ່າງເປົ່າ.

ໄດ້ +ຄໍາສັ່ງ ທາງ​ເລືອກ​ຈະ​ເປັນ​ -delimited; ລັກສະນະພາຍໃນ +ຄໍາສັ່ງ ສາມາດເຮັດໄດ້
ຖືກຫລົບຫນີໂດຍການນໍາຫນ້າພວກເຂົາດ້ວຍ a ລັກສະນະ. ໄດ້ +ຄໍາສັ່ງ ຈະເປັນ
ແປເປັນ ex ຄໍາສັ່ງທັນທີຫຼັງຈາກເນື້ອໃນຂອງການແກ້ໄຂ buffer ໄດ້
ແທນທີ່ແລະເສັ້ນປະຈຸບັນແລະຖັນໄດ້ຖືກຕັ້ງ.

ຖ້າການແກ້ໄຂ buffer ຫວ່າງເປົ່າ:

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນ 0.

ປັດຈຸບັນ ຖັນ: ຕັ້ງເປັນ 1.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຖືກປະຕິບັດໃນຂະນະທີ່ຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງຫຼືຖ້າຫາກວ່າ +ຄໍາສັ່ງ argument ແມ່ນ​ລະ​ບຸ​ໄວ້​:

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍຂອງການແກ້ໄຂບັຟເຟີ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າ ເອກະສານ ຖືກລະເວັ້ນ ຫຼືສົ່ງຜົນໃຫ້ຢູ່ໃນຊື່ເສັ້ນທາງປັດຈຸບັນ:

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວທຳອິດຂອງ buffer ແກ້ໄຂ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າ ເອກະສານ ແມ່ນຄືກັນກັບໄຟລ໌ທີ່ດັດແກ້ຫຼ້າສຸດ, ແຖວ ແລະຖັນຈະຖືກຕັ້ງ
ດັ່ງນີ້; ຖ້າໄຟລ໌ໄດ້ຖືກດັດແກ້ກ່ອນຫນ້ານີ້, ແຖວແລະຖັນອາດຈະຖືກຕັ້ງດັ່ງຕໍ່ໄປນີ້:

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນຄ່າສຸດທ້າຍທີ່ຖືໄວ້ເມື່ອໄຟລ໌ນັ້ນຖືກດັດແກ້ຫຼ້າສຸດ. ຖ້າຄ່ານີ້ແມ່ນ
ບໍ່ແມ່ນເສັ້ນທີ່ຖືກຕ້ອງໃນ buffer ການແກ້ໄຂໃຫມ່, ຕັ້ງເປັນແຖວທໍາອິດຂອງການແກ້ໄຂ buffer.

ປັດຈຸບັນ ຖັນ: ຖ້າເສັ້ນປະຈຸບັນຖືກຕັ້ງເປັນຄ່າສຸດທ້າຍທີ່ຖືໄວ້ເມື່ອໄຟລ໌ສຸດທ້າຍ
ແກ້ໄຂແລ້ວ, ຕັ້ງເປັນຄ່າສຸດທ້າຍທີ່ຖືໄວ້ເມື່ອໄຟລ໌ຖືກດັດແກ້ຫຼ້າສຸດ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຫຼືຖ້າຫາກວ່າ
ຄ່າສຸດທ້າຍບໍ່ແມ່ນຖັນທີ່ຖືກຕ້ອງໃນ buffer ການແກ້ໄຂໃຫມ່, ຕັ້ງເປັນ non- .

ຖ້າບໍ່ດັ່ງນັ້ນ:

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວທຳອິດຂອງ buffer ແກ້ໄຂ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ເອກະສານ
Synopsis:
f[ile][ເອກະສານ]

ຖ້າຫາກວ່າເປັນ ເອກະສານ argument ແມ່ນໄດ້ລະບຸໄວ້, ຊື່ເສັ້ນທາງສຳຮອງຈະຖືກຕັ້ງເປັນປັດຈຸບັນ
ຊື່ເສັ້ນທາງ, ແລະຊື່ເສັ້ນທາງປະຈຸບັນຈະຖືກຕັ້ງເປັນ ເອກະສານ.

ຂຽນຂໍ້ຄວາມໃຫ້ຂໍ້ມູນ. ຖ້າໄຟລ໌ມີຊື່ເສັ້ນທາງປະຈຸບັນ, ມັນຈະຖືກລວມເຂົ້າ
ໃນຂໍ້ຄວາມນີ້; ຖ້າບໍ່ດັ່ງນັ້ນ, ຂໍ້ຄວາມຈະຊີ້ບອກວ່າບໍ່ມີຊື່ເສັ້ນທາງປະຈຸບັນ.
ຖ້າ​ບັນ​ເຟີ​ດັດ​ແກ້​ປະ​ກອບ​ດ້ວຍ​ເສັ້ນ​, ຈ​ໍ​າ​ນວນ​ແຖວ​ປັດ​ຈຸ​ບັນ​ແລະ​ຈໍາ​ນວນ​ຂອງ​ແຖວ​ໃນ​
ແກ້ໄຂ buffer ຈະຖືກລວມຢູ່ໃນຂໍ້ຄວາມນີ້; ຖ້າບໍ່ດັ່ງນັ້ນ, ຂໍ້ຄວາມຈະຊີ້ບອກວ່າ
ບັຟເຟີການແກ້ໄຂຫວ່າງເປົ່າ. ຖ້າ​ຫາກ​ວ່າ​ການ​ແກ້​ໄຂ buffer ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​ສໍາ​ເລັດ​ສຸດ​ທ້າຍ​
ຂຽນ, ຄວາມຈິງນີ້ຈະຖືກລວມເຂົ້າໃນຂໍ້ຄວາມນີ້. ຖ້າ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​,
ຄວາມຈິງນີ້ຈະຖືກລວມເຂົ້າໃນຂໍ້ຄວາມນີ້. ຂໍ້ຄວາມອາດມີອັນອື່ນທີ່ບໍ່ລະບຸ
ຂໍ້ມູນຂ່າວສານ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

Global
Synopsis:
[2 ຕື່ມ] g[ໂລກ] /ຮູບແບບ/ [ຄໍາສັ່ງ]
[2 ຕື່ມ] v /ຮູບແບບ/ [ຄໍາສັ່ງ]

ທາງເລືອກ '!' ລັກສະນະຫຼັງຈາກ ທົ່ວໂລກ ຄໍາສັ່ງຈະຄືກັນກັບການປະຕິບັດ v
ຄໍາສັ່ງ.

If ຮູບແບບ ຫວ່າງເປົ່າ (ຕົວຢ່າງ, "//") ຫຼືບໍ່ໄດ້ລະບຸໄວ້, ການສະແດງອອກປົກກະຕິສຸດທ້າຍທີ່ໃຊ້
ໃນຄໍາສັ່ງບັນນາທິການຈະຖືກນໍາໃຊ້ເປັນ ຮູບແບບ. ໄດ້ ຮູບແບບ ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ຈໍາ​ກັດ​ໂດຍ​
ຕົວອັກສອນ (ສະແດງຢູ່ໃນ Synopsis), ເຊັ່ນດຽວກັນກັບຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວເລກ ຫຼືບໍ່ແມ່ນຕົວເລກ.
ນອກ​ຈາກ , , , ຫຼື double-quote.

ຖ້າບໍ່ມີເສັ້ນໃດຖືກລະບຸໄວ້, ເສັ້ນຈະເລີ່ມຕົ້ນເປັນໄຟລ໌ທັງໝົດ.

ໄດ້ ທົ່ວໂລກ ແລະ v ຄໍາສັ່ງແມ່ນການປະຕິບັດສອງຜ່ານຢ່າງມີເຫດຜົນ. ກ່ອນອື່ນ ໝົດ, ໝາຍ ເສັ້ນພາຍໃນ
ເສັ້ນທີ່ລະບຸໄວ້ສໍາລັບເສັ້ນທີ່ບໍ່ລວມເອົາການສິ້ນສຸດ ການແຂ່ງຂັນ
(ທົ່ວໂລກ) ຫຼື​ບໍ່​ກົງ​ກັນ (v or ທົ່ວໂລກ!) ຮູບແບບທີ່ກໍານົດໄວ້. ອັນທີສອງ, ປະຕິບັດ ex
ຄໍາສັ່ງໃຫ້ໂດຍ ຄໍາສັ່ງ, ກັບເສັ້ນປະຈຸບັນ ('.') ກໍານົດໃຫ້ແຕ່ລະເສັ້ນຫມາຍ. ຖ້າເປັນ
ຄວາມ​ຜິດ​ພາດ​ເກີດ​ຂຶ້ນ​ໃນ​ລະ​ຫວ່າງ​ການ​ຂະ​ບວນ​ການ​ນີ້​, ຫຼື​ເນື້ອ​ໃນ​ຂອງ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ທົດ​ແທນ (ສໍາ​ລັບ​ການ​
ຕົວຢ່າງ, ໂດຍ ex :ດັດແກ້ command) ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະຖືກຂຽນແລະບໍ່ມີຄໍາສັ່ງເພີ່ມເຕີມ
ຜົນມາຈາກການປະຕິບັດຄໍາສັ່ງນີ້ຈະຖືກປຸງແຕ່ງ.

ຫຼາຍ ex ຄໍາສັ່ງສາມາດຖືກກໍານົດໂດຍການໃສ່ຫຼາຍຄໍາສັ່ງໃນແຖວດຽວໂດຍໃຊ້
ກ ເພື່ອກໍານົດພວກມັນ, ຫຼືຫນຶ່ງຕໍ່ແຖວ, ໂດຍການຫລົບຫນີແຕ່ລະຄົນ ກັບ ກ
.

ຖ້າບໍ່ມີການລະບຸຄໍາສັ່ງ:

1. ຖ້າຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງ, ມັນຈະເປັນຖ້າຫາກວ່າ ພິມ ຄໍາສັ່ງຖືກລະບຸ.

2. ຖ້າບໍ່ດັ່ງນັ້ນ, ບໍ່ມີຄໍາສັ່ງຈະຖືກປະຕິບັດ.

ສໍາ​ລັບ ເພີ່ມເຕີມ, ການປ່ຽນແປງ, ແລະ ໃສ່ ຄໍາສັ່ງ, ຂໍ້ຄວາມທີ່ປ້ອນຈະຖືກລວມເຂົ້າເປັນສ່ວນຫນຶ່ງຂອງ
ຄໍາສັ່ງ, ແລະການຢຸດເຊົາ ສາມາດຖືກຍົກເວັ້ນຖ້າຄໍາສັ່ງສິ້ນສຸດບັນຊີລາຍຊື່ຂອງ
ຄໍາສັ່ງ. ໄດ້ ເປີດ ແລະ ສາຍຕາ ຄໍາສັ່ງສາມາດຖືກກໍານົດເປັນຫນຶ່ງໃນຄໍາສັ່ງ, ໃນນັ້ນ
ກໍ​ລະ​ນີ​ແຕ່​ລະ​ເສັ້ນ​ທີ່​ຫມາຍ​ຈະ​ເຮັດ​ໃຫ້​ບັນ​ນາ​ທິ​ການ​ເຂົ້າ​ໄປ​ໃນ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ຮູບ​ພາບ​. ຖ້າເປີດຫຼື
ຮູບ​ແບບ​ການ​ສາຍ​ຕາ​ແມ່ນ​ອອກ​ຈາກ​ການ​ນໍາ​ໃຊ້​ vi Q ຄໍາສັ່ງ, ເສັ້ນປະຈຸບັນຈະຖືກຕັ້ງເປັນຕໍ່ໄປ
ເສັ້ນ​ທີ່​ຖືກ​ໝາຍ​ໄວ້, ແລະ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ພາບ​ໄດ້​ເຂົ້າ​ມາ​ໃໝ່, ຈົນ​ກ​່​ວາ​ບັນ​ຊີ​ລາຍ​ຊື່​ເສັ້ນ​ທີ່​ໝາຍ​ໄວ້
ໝົດ ແຮງ.

ໄດ້ ທົ່ວໂລກ, v, ແລະ ຍົກເລີກ ຄໍາສັ່ງບໍ່ສາມາດຖືກນໍາໃຊ້ໃນ ຄໍາສັ່ງ. ເສັ້ນທີ່ໝາຍໄວ້ອາດຈະຖືກລຶບ
ໂດຍຄໍາສັ່ງປະຕິບັດສໍາລັບສາຍທີ່ເກີດຂຶ້ນກ່ອນຫນ້າໃນໄຟລ໌ກ່ວາເສັ້ນຫມາຍ. ໃນ
ໃນ​ກໍ​ລະ​ນີ​ນີ້​, ບໍ່​ມີ​ຄໍາ​ສັ່ງ​ທີ່​ຈະ​ຖືກ​ປະ​ຕິ​ບັດ​ສໍາ​ລັບ​ເສັ້ນ​ທີ່​ຖືກ​ລົບ​.

ຖ້າທິດທາງການຄົ້ນຫາທີ່ຈື່ບໍ່ໄດ້ຖືກກໍານົດ, the ທົ່ວໂລກ ແລະ v ຄໍາສັ່ງຈະກໍານົດມັນ
ໄປຂ້າງຫນ້າ.

ໄດ້ ພິມອັດຕະໂນມັດ ແລະ autoindent ທາງ​ເລືອກ​ໃນ​ການ​ແກ້​ໄຂ​ຈະ​ໄດ້​ຮັບ​ການ inhibited ສໍາ​ລັບ​ໄລ​ຍະ​ເວ​ລາ​ຂອງ​ການ g or
v ຄໍາສັ່ງ.

ປັດຈຸບັນ ອອນໄລນ໌: ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ຄໍາ​ສັ່ງ​ປະ​ຕິ​ບັດ​, ກໍາ​ນົດ​ເປັນ​ເສັ້ນ​ທີ່​ຫມາຍ​ສຸດ​ທ້າຍ​. ຖ້າບໍ່ດັ່ງນັ້ນ, ເປັນ
ທີ່​ລະ​ບຸ​ໄວ້​ສໍາ​ລັບ​ການ​ປະ​ຕິ​ບັດ​ ex ຄຳ ສັ່ງ.

ປັດຈຸບັນ ຖັນ: ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ຄໍາ​ສັ່ງ​ທີ່​ຖືກ​ປະ​ຕິ​ບັດ​, ຕັ້ງ​ເປັນ non- ; ຖ້າບໍ່ດັ່ງນັ້ນ, ຕາມທີ່ລະບຸໄວ້
ສໍາລັບບຸກຄົນ ex ຄຳ ສັ່ງ.

Insert
Synopsis:
[1 ຕື່ມ] i[ເນັ້ນ][!]

ກະລຸນາໃສ່ ex ຮູບແບບການປ້ອນຂໍ້ຄວາມ; ຂໍ້ຄວາມທີ່ປ້ອນຈະຖືກວາງໄວ້ກ່ອນແຖວທີ່ກຳນົດໄວ້. ຖ້າ
ແຖວແມ່ນສູນ ຫຼື 1, ຂໍ້ຄວາມຈະຖືກວາງໄວ້ໃນຕອນຕົ້ນຂອງບັຟເຟີການແກ້ໄຂ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຈໍານວນ ແລະ autoindent ແກ້ໄຂທາງເລືອກ; ປະຕິບັດຕາມ
ຊື່ຄໍາສັ່ງກັບ '!' ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ການ​ autoindent ແກ້ໄຂການຕັ້ງຄ່າທາງເລືອກທີ່ຈະສະຫຼັບສໍາລັບ
ໄລຍະເວລາຂອງຄໍາສັ່ງນີ້ເທົ່ານັ້ນ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວປ້ອນຂໍ້ມູນສຸດທ້າຍ; ຖ້າບໍ່ມີສາຍເຂົ້າ, ໃຫ້ຕັ້ງເປັນແຖວກ່ອນ
ເສັ້ນ​ທີ່​ລະ​ບຸ​ໄວ້​, ຫຼື​ກັບ​ແຖວ​ທໍາ​ອິດ​ຂອງ​ການ​ແກ້​ໄຂ​ການ​ແກ້​ໄຂ​ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ເສັ້ນ​
ກ່ອນໜ້າແຖວທີ່ກຳນົດໄວ້, ຫຼືສູນ ຖ້າການແກ້ໄຂບັຟເຟີຫວ່າງເປົ່າ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ເຂົ້າຮ່ວມ
Synopsis:
[2 ຕື່ມ] j[ອໍ][!][ນັບ][ທົງ]

If ນັບ ແມ່ນ​ລະ​ບຸ​ໄວ້​:

ຖ້າບໍ່ໄດ້ລະບຸທີ່ຢູ່, the ເຂົ້າຮ່ວມ ຄໍາສັ່ງຈະປະຕິບັດຄືກັບວ່າ 2 ຕື່ມ ໄດ້
ເສັ້ນປະຈຸບັນ ແລະເສັ້ນປະຈຸບັນບວກ ນັບ (.,. + ນັບ).

ຖ້າທີ່ຢູ່ຫນຶ່ງຖືກກໍານົດ, the ເຂົ້າຮ່ວມ ຄໍາສັ່ງຈະປະຕິບັດຄືກັບວ່າ 2 ຕື່ມ ໄດ້
ທີ່ຢູ່ທີ່ລະບຸໄວ້ ແລະທີ່ຢູ່ທີ່ລະບຸບວກ ນັບ (ສິ່ງເສບຕິດ,ສິ່ງເສບຕິດ + ນັບ).

ຖ້າສອງທີ່ຢູ່ຖືກລະບຸ, the ເຂົ້າຮ່ວມ ຄໍາສັ່ງຈະຕ້ອງປະຕິບັດຄືກັບວ່າເພີ່ມເຕີມ
ທີ່ຢູ່, ເທົ່າກັບທີ່ຢູ່ສຸດທ້າຍບວກ ນັບ −1 (addr1,addr2,addr2 + ນັບ −1), ທ.
ໄດ້​ລະ​ບຸ​ໄວ້​.

ຖ້າອັນນີ້ຈະສົ່ງຜົນໃຫ້ທີ່ຢູ່ທີສອງໃຫຍ່ກວ່າແຖວສຸດທ້າຍຂອງການແກ້ໄຂ
buffer, ມັນຈະຖືກແກ້ໄຂໃຫ້ເທົ່າກັບແຖວສຸດທ້າຍຂອງ buffer ແກ້ໄຂ.

ຖ້າບໍ່ ນັບ ແມ່ນ​ລະ​ບຸ​ໄວ້​:

ຖ້າບໍ່ໄດ້ລະບຸທີ່ຢູ່, the ເຂົ້າຮ່ວມ ຄໍາສັ່ງຈະປະຕິບັດຄືກັບວ່າ 2 ຕື່ມ ໄດ້
ເສັ້ນປະຈຸບັນແລະແຖວຕໍ່ໄປ (.,. +1).

ຖ້າທີ່ຢູ່ຫນຶ່ງຖືກກໍານົດ, the ເຂົ້າຮ່ວມ ຄໍາສັ່ງຈະປະຕິບັດຄືກັບວ່າ 2 ຕື່ມ ໄດ້
ທີ່ຢູ່ທີ່ລະບຸໄວ້ ແລະແຖວຕໍ່ໄປ (ສິ່ງເສບຕິດ,ສິ່ງເສບຕິດ + 1).

ເຂົ້າຮ່ວມຂໍ້ຄວາມຈາກເສັ້ນທີ່ລະບຸໄວ້ຮ່ວມກັນເປັນແຖວດຽວ, ເຊິ່ງຈະປ່ຽນແທນ
ສາຍທີ່ລະບຸໄວ້.

ຖ້າຫາກວ່າເປັນ '!' ລັກ​ສະ​ນະ​ແມ່ນ​ຕໍ່​ທ້າຍ​ຊື່​ຄໍາ​ສັ່ງ​, ໄດ້​ ເຂົ້າຮ່ວມ ຈະບໍ່ມີ
ການ​ດັດ​ແກ້​ຂອງ​ສາຍ​ໃດ​ຫນຶ່ງ​, ເປັນ​ເອ​ກະ​ລາດ​ຂອງ​ທ້ອງ​ຖິ່ນ​ໃນ​ປັດ​ຈຸ​ບັນ​.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຢູ່ໃນ POSIX locale, ກໍານົດເສັ້ນປະຈຸບັນເປັນແຖວທໍາອິດທີ່ລະບຸໄວ້,
ແລະຫຼັງຈາກນັ້ນ, ສໍາລັບແຕ່ລະແຖວຕໍ່ໄປ, ດໍາເນີນການດັ່ງຕໍ່ໄປນີ້:

1. ຍົກເລີກການນຳ ຕົວອັກສອນຈາກແຖວທີ່ຈະເຂົ້າຮ່ວມ.

2. ຖ້າເສັ້ນທີ່ຈະເຂົ້າຮ່ວມຕອນນີ້ຫວ່າງເປົ່າ, ລຶບມັນອອກ, ແລະຂ້າມຂັ້ນຕອນທີ 3 ຫາ 5.

3. ຖ້າເສັ້ນປະຈຸບັນສິ້ນສຸດລົງໃນ a , ຫຼືລັກສະນະທໍາອິດຂອງສາຍທີ່ຈະເຂົ້າຮ່ວມ
ເປັນ ')' ລັກສະນະ, ເຂົ້າຮ່ວມສາຍໂດຍບໍ່ມີການດັດແກ້ເພີ່ມເຕີມ.

4. ຖ້າຕົວອັກສອນສຸດທ້າຍຂອງເສັ້ນປະຈຸບັນແມ່ນ a '.', ເຂົ້າຮ່ວມສາຍທີ່ມີສອງ
ລັກສະນະລະຫວ່າງເຂົາເຈົ້າ.

5. ຖ້າບໍ່ດັ່ງນັ້ນ, ເຂົ້າຮ່ວມສາຍດ້ວຍອັນດຽວ ລະຫວ່າງເຂົາເຈົ້າ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວທຳອິດທີ່ລະບຸ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ບັນ​ຊີ​ລາຍ​ຊື່
Synopsis:
[2 ຕື່ມ] l[ແມ່ນ][ນັບ][ທົງ]

ຄໍາສັ່ງນີ້ຈະທຽບເທົ່າກັບ ex ຄໍາສັ່ງ:

[2 ຕື່ມ] p[ຂີ້ແຮ້][ນັບ] l[ທົງ]

ເບິ່ງ ພິມ.

ແຜນທີ່
Synopsis:
ແຜນທີ່[!][lhs rhs]

If lhs ແລະ rhs ບໍ່ໄດ້ລະບຸ:

1 If '!' ຖືກກໍານົດ, ຂຽນບັນຊີລາຍຊື່ປະຈຸບັນຂອງແຜນທີ່ຮູບແບບການປ້ອນຂໍ້ຄວາມ.

2. ຖ້າບໍ່ດັ່ງນັ້ນ, ຂຽນບັນຊີລາຍຊື່ປະຈຸບັນຂອງແຜນທີ່ຮູບແບບຄໍາສັ່ງ.

3. ບໍ່ເຮັດຫຍັງອີກ.

ການປະຕິບັດອາດຈະຈໍາກັດຊຸດຂອງຕົວອັກສອນທີ່ຍອມຮັບໃນ lhs or rhs, ຍົກເວັ້ນນັ້ນ
ຕົວອັກສອນທີ່ສາມາດພິມໄດ້ແລະ ຕົວອັກສອນຈະບໍ່ຖືກຈໍາກັດ. ເພີ່ມເຕີມ
ຂໍ້​ຈໍາ​ກັດ​ຈະ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​ກໍາ​ນົດ​. ໃນທັງສອງ lhs ແລະ rhs, ລັກສະນະໃດສາມາດເປັນ
ໜີໄປພ້ອມ ກ -V, ໃນກໍລະນີດັ່ງກ່າວນີ້, ຕົວອັກສອນຈະບໍ່ຖືກນໍາໃຊ້ເພື່ອ delimit lhs
ຈາກ rhs, ແລະການຫລົບຫນີ -V ຈະ​ຖືກ​ຍົກ​ເລີກ​.

ຖ້າຫາກວ່າລັກສະນະ '!' ຖືກຕໍ່ທ້າຍກັບ ແຜນທີ່ ຊື່ຄໍາສັ່ງ, ການສ້າງແຜນທີ່ຈະມີປະສິດທິພາບ
ໃນ​ລະ​ຫວ່າງ​ການ​ເປີດ​ຫຼື​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​ເປັນ​ພາບ​ແທນ​ທີ່​ຈະ​ເປັນ​ ເປີດ or ສາຍຕາ ຮູບແບບຄໍາສັ່ງ. ນີ້ອະນຸຍາດໃຫ້
lhs ທີ່​ຈະ​ມີ​ສອງ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ ແຜນທີ່ ຄໍານິຍາມໃນເວລາດຽວກັນ: ຫນຶ່ງສໍາລັບຮູບແບບຄໍາສັ່ງແລະຫນຶ່ງ
ສໍາລັບຮູບແບບການປ້ອນຂໍ້ຄວາມ.

ສໍາລັບແຜນທີ່ຮູບແບບຄໍາສັ່ງ:

ໃນ​ເວ​ລາ​ທີ່ lhs ຖືກໃສ່ເປັນສ່ວນໃດນຶ່ງຂອງ a vi ຄໍາສັ່ງໃນຮູບແບບເປີດຫຼືເບິ່ງເຫັນ (ແຕ່ບໍ່ແມ່ນ
ເປັນສ່ວນຫນຶ່ງຂອງການໂຕ້ຖຽງກັບຄໍາສັ່ງ), ການປະຕິບັດຈະຄືກັບວ່າ
ທີ່ສອດຄ້ອງກັນ rhs ໄດ້​ເຂົ້າ​ໄປ.

ຖ້າຕົວອັກສອນໃດນຶ່ງໃນຄໍາສັ່ງ, ນອກເຫນືອຈາກຕົວທໍາອິດ, ຖືກຫລົບຫນີໂດຍໃຊ້ a
-V, ລັກສະນະນັ້ນຈະບໍ່ເປັນສ່ວນຫນຶ່ງຂອງການຈັບຄູ່ກັບ an lhs.

ມັນບໍ່ໄດ້ຖືກລະບຸວ່າການປະຕິບັດຈະສະຫນັບສະຫນູນ ແຜນທີ່ ຄໍາສັ່ງບ່ອນທີ່ lhs
ແມ່ນຫຼາຍກ່ວາຕົວອັກສອນດຽວໃນຄວາມຍາວ, ບ່ອນທີ່ລັກສະນະທໍາອິດຂອງ lhs is
ສາມາດພິມໄດ້.

If lhs ມີຫຼາຍກວ່າຫນຶ່ງຕົວອັກສອນແລະລັກສະນະທໍາອິດແມ່ນ '#', ຕາມດ້ວຍ
ລໍາດັບຂອງຕົວເລກທີ່ສອດຄ້ອງກັບປຸ່ມຟັງຊັນທີ່ມີຕົວເລກ, ຫຼັງຈາກນັ້ນເມື່ອນີ້
ປຸ່ມຟັງຊັນຖືກພິມມັນຈະຖືກສ້າງແຜນທີ່ rhs. ຕົວອັກສອນນອກເໜືອໄປຈາກຕົວເລກ
ປະຕິບັດຕາມ a '#' ຕົວອັກສອນຍັງເປັນຕົວແທນຂອງປຸ່ມຟັງຊັນທີ່ມີຊື່ໂດຍຕົວອັກສອນ
ໃນ lhs ດັ່ງຕໍ່ໄປນີ້ '#' ແລະອາດຈະຖືກສ້າງແຜນທີ່ rhs. ມັນບໍ່ໄດ້ຖືກ ກຳ ນົດແນວໃດ
ປຸ່ມຟັງຊັນມີຊື່ ຫຼືປຸ່ມຟັງຊັນໃດຖືກຮອງຮັບ.

ສໍາລັບແຜນທີ່ຮູບແບບການປ້ອນຂໍ້ຄວາມ:

ໃນ​ເວ​ລາ​ທີ່ lhs ຖືກປ້ອນເປັນສ່ວນໃດນຶ່ງຂອງຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າໃນການປ້ອນຂໍ້ຄວາມເປີດ ຫຼືເປັນພາບ
ຮູບ​ແບບ​ການ​, ການ​ປະ​ຕິ​ບັດ​ຈະ​ເປັນ​ຖ້າ​ຫາກ​ວ່າ​ທີ່​ສອດ​ຄ້ອງ​ກັນ​ rhs ໄດ້​ເຂົ້າ​ໄປ.

ຖ້າຕົວອັກສອນໃດນຶ່ງໃນຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າຖືກຫລົບຫນີໂດຍໃຊ້ a -V ລັກ​ສະ​ນະ​, ວ່າ​
ລັກສະນະຈະບໍ່ເປັນສ່ວນຫນຶ່ງຂອງການຈັບຄູ່ກັບ lhs.

ມັນບໍ່ໄດ້ຖືກລະບຸບໍ່ວ່າຈະເປັນ lhs ຂໍ້​ຄວາມ​ທີ່​ໃສ່​ສໍາ​ລັບ​ການ​ຕໍ່​ມາ​ ແຜນທີ່ or ຍົກເລີກແຜນທີ່ ຄໍາສັ່ງ
ຖືກແທນທີ່ດ້ວຍ rhs ຂໍ້ຄວາມສໍາລັບຈຸດປະສົງຂອງການສະແດງຫນ້າຈໍ; ທັງໆ​ທີ່
ບໍ່ວ່າຈໍສະແດງຜົນຈະປາກົດຄືກັບທີ່ສອດຄ້ອງກັນຫຼືບໍ່ rhs ຂໍ້ຄວາມຖືກໃສ່,
ຜົນກະທົບຂອງຄໍາສັ່ງຈະຄືກັບວ່າ lhs ຂໍ້ຄວາມຖືກໃສ່.

ຖ້າຫາກວ່າພຽງແຕ່ສ່ວນຫນຶ່ງຂອງ lhs ເຂົ້າໄປ, ມັນບໍ່ໄດ້ຖືກລະບຸວ່າບັນນາທິການຈະລໍຖ້າດົນປານໃດ
ເພີ່ມ​ເຕີມ​, ອາດ​ຈະ​ກົງ​ກັນ​ກັບ​ຕົວ​ອັກ​ສອນ​ກ່ອນ​ທີ່​ຈະ​ປິ່ນ​ປົວ​ຕົວ​ອັກ​ສອນ​ທີ່​ໄດ້​ເຂົ້າ​ໄປ​ແລ້ວ​ເປັນ​
ບໍ່ກົງກັບ lhs.

ໄດ້ rhs ຕົວອັກສອນຕົວຂອງມັນເອງຈະຕ້ອງຖືກ remapping, ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນໂດຍ
ໄດ້ remap ແກ້ໄຂທາງເລືອກ, ຍົກເວັ້ນວ່າຖ້າຕົວອັກສອນໃນ lhs ເກີດຂຶ້ນເປັນຕົວໜັງສືນຳໜ້າໃນ
rhs, ລັກສະນະເຫຼົ່ານັ້ນຈະບໍ່ຖືກ remapped.

ໃນ terminals ຮູບແບບຕັນ, ແຜນທີ່ບໍ່ຈໍາເປັນຕ້ອງເກີດຂຶ້ນທັນທີ (ຕົວຢ່າງ, ມັນອາດຈະເກີດຂຶ້ນ
ຫຼັງ​ຈາກ​ທີ່​ຢູ່​ປາຍ​ຍອດ​ສົ່ງ​ກຸ່ມ​ຂອງ​ລັກ​ສະ​ນະ​ຂອງ​ລະ​ບົບ​)​, ແຕ່​ວ່າ​ມັນ​ຈະ​ບັນ​ລຸ​ໄດ້​
ຜົນໄດ້ຮັບຄືກັນກັບວ່າມັນເກີດຂຶ້ນທັນທີ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ເຄື່ອງຫມາຍ
Synopsis:
[1 ຕື່ມ] ma[rk] ລັກສະນະ
[1 ຕື່ມ] k ລັກສະນະ

ການ​ປະ​ຕິ​ບັດ​ຈະ​ສະ​ຫນັບ​ສະ​ຫນູນ​ ລັກສະນະ ຄ່າຂອງຕົວພິມນ້ອຍດຽວຂອງ POSIX
locale ແລະ backquote ແລະຕົວອັກສອນດຽວ quote; ສະຫນັບສະຫນູນລັກສະນະອື່ນໆແມ່ນ
ການ​ປະ​ຕິ​ບັດ​ກໍາ​ນົດ​.

ຖ້າ​ຫາກ​ວ່າ​ການ​ປະ​ຕິ​ບັດ​ vi m ຄໍາສັ່ງ, ກໍານົດເຄື່ອງຫມາຍທີ່ກໍານົດໄວ້ກັບເສັ້ນປະຈຸບັນແລະ 1-based
ຕົວເລກທີ່ອ້າງອີງໂດຍຖັນປະຈຸບັນ, ຖ້າມີ; ຖ້າບໍ່ດັ່ງນັ້ນ, ຕໍາແຫນ່ງຖັນ 1.

ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ກໍານົດເຄື່ອງຫມາຍທີ່ລະບຸໄວ້ເປັນເສັ້ນທີ່ກໍານົດແລະ 1-based ຕົວເລກທໍາອິດ
ບໍ່ແມ່ນ ບໍ່ແມ່ນ ໃນສາຍ, ຖ້າມີ; ຖ້າບໍ່ດັ່ງນັ້ນ, ສຸດທ້າຍທີ່ບໍ່ແມ່ນ ໃນ
ເສັ້ນ, ຖ້າມີ; ຖ້າບໍ່ດັ່ງນັ້ນ, ຕໍາແຫນ່ງຖັນ 1.

ເຄື່ອງຫມາຍຈະຍັງຄົງກ່ຽວຂ້ອງກັບເສັ້ນຈົນກ່ວາເຄື່ອງຫມາຍຖືກປັບຫຼືເສັ້ນແມ່ນ
ລຶບແລ້ວ. ຖ້າເສັ້ນທີ່ຖືກລົບຈະຖືກຟື້ນຟູໂດຍສາຍຕໍ່ມາ ຍົກເລີກ ຄໍາສັ່ງ, ເຄື່ອງຫມາຍໃດໆກ່ອນຫນ້ານີ້
ທີ່​ກ່ຽວ​ຂ້ອງ​ກັບ​ເສັ້ນ​, ທີ່​ຍັງ​ບໍ່​ທັນ​ໄດ້​ຮັບ​ການ​ປັບ​, ຈະ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ​ເຊັ່ນ​ດຽວ​ກັນ​. ການນໍາໃຊ້ໃດໆຂອງ
ເຄື່ອງຫມາຍທີ່ບໍ່ກ່ຽວຂ້ອງກັບເສັ້ນປະຈຸບັນໃນການແກ້ໄຂ buffer ຈະເປັນຂໍ້ຜິດພາດ.

ເຄື່ອງຫມາຍ ` ແລະ ' ຈະຖືກຕັ້ງຕາມທີ່ໄດ້ອະທິບາຍໄວ້ກ່ອນຫນ້ານີ້, ທັນທີກ່ອນທີ່ຈະດັ່ງຕໍ່ໄປນີ້
ເຫດການເກີດຂື້ນໃນບັນນາທິການ:

1. ການ​ນໍາ​ໃຊ້​ຂອງ​ '$' ເປັນ ex ທີ່ຢູ່

2. ການໃຊ້ເລກທົດສະນິຍົມບວກເປັນ ex ທີ່ຢູ່

3. ການນໍາໃຊ້ຄໍາສັ່ງຄົ້ນຫາເປັນ ex ທີ່ຢູ່

4. ການນໍາໃຊ້ເຄື່ອງຫມາຍການອ້າງອິງເປັນ ex ທີ່ຢູ່

5. ການໃຊ້ຄຳສັ່ງເປີດ ແລະ ໂໝດສາຍຕາຕໍ່ໄປນີ້: -], %, (, ), [, ], {,
}

6. ການໃຊ້ຄຳສັ່ງເປີດ ແລະ ໂໝດສາຍຕາຕໍ່ໄປນີ້: ', G, H, L, M, z ຖ້າຫາກວ່າ
ເສັ້ນປະຈຸບັນຈະປ່ຽນເປັນຜົນມາຈາກຄໍາສັ່ງ

7. ການໃຊ້ຄຳສັ່ງເປີດ ແລະ ໂໝດສາຍຕາ: /, ?, N, `, n ຖ້າເສັ້ນປະຈຸບັນຫຼື
ຖັນຈະປ່ຽນແປງເປັນຜົນມາຈາກຄໍາສັ່ງ

8. ການ​ນໍາ​ໃຊ້​ຂອງ​ ex ຄໍາ​ສັ່ງ​ຮູບ​ແບບ​: z, ຍົກເລີກ, ທົ່ວໂລກ, v

ສໍາລັບກົດລະບຽບ 1., 2., 3., ແລະ 4., the ` ແລະ ' ເຄື່ອງ​ຫມາຍ​ຈະ​ບໍ່​ໄດ້​ຖືກ​ກໍາ​ນົດ​ຖ້າ​ຫາກ​ວ່າ​ ex ຄໍາສັ່ງແມ່ນ
parated ຕາມທີ່ລະບຸໄວ້ໃນກົດລະບຽບ 6.a. ໃນ ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex.

ສໍາລັບກົດລະບຽບ 5., 6., ແລະ 7., the ` ແລະ ' ເຄື່ອງ ໝາຍ ຈະບໍ່ຖືກຕັ້ງຖ້າ ຄຳ ສັ່ງຖືກ ນຳ ໃຊ້ເປັນ
ຄໍາສັ່ງການເຄື່ອນໄຫວໃນຮູບແບບເປີດແລະສາຍຕາ.

ສຳລັບກົດລະບຽບ 1., 2., 3., 4., 5., 6., 7., ແລະ 8., the ` ແລະ ' ເຄື່ອງ​ຫມາຍ​ຈະ​ບໍ່​ໄດ້​ຖືກ​ກໍາ​ນົດ​ຖ້າ​ຫາກ​ວ່າ​
ຄໍາສັ່ງລົ້ມເຫລວ.

ໄດ້ ` ແລະ ' ເຄື່ອງໝາຍຈະຖືກກຳນົດຕາມທີ່ໄດ້ອະທິບາຍໄວ້ກ່ອນໜ້ານີ້, ແຕ່ລະຄັ້ງທີ່ເນື້ອໃນຂອງການແກ້ໄຂ
buffer ໄດ້ຖືກທົດແທນ (ລວມທັງການແກ້ໄຂຂອງ buffer ເບື້ອງຕົ້ນ), ຖ້າຢູ່ໃນເປີດຫຼືເບິ່ງເຫັນ
ໂຫມດ, ຫຼືຖ້າຢູ່ໃນ ex ໂໝດ ແລະ ບັຟເຟີການແກ້ໄຂບໍ່ຫວ່າງເປົ່າ, ກ່ອນຄຳສັ່ງ ຫຼືການເຄື່ອນໄຫວໃດໆ
(ລວມທັງຄໍາສັ່ງຫຼືການເຄື່ອນໄຫວທີ່ລະບຸໄວ້ໂດຍ −ຄ or -t ທາງ​ເລືອກ​ຫຼື​ +ຄໍາສັ່ງ
argument) ຖືກປະຕິບັດຢູ່ໃນ buffer ແກ້ໄຂ. ຖ້າຢູ່ໃນໂຫມດເປີດຫຼືເບິ່ງເຫັນ, ເຄື່ອງຫມາຍຈະເປັນ
ຕັ້ງ​ເປັນ​ຖ້າ​ຫາກ​ວ່າ​ການ​ປະ​ຕິ​ບັດ​ vi m ຄໍາສັ່ງ; ຖ້າບໍ່ດັ່ງນັ້ນ, ຄືກັບການປະຕິບັດ ex ເຄື່ອງຫມາຍ ຄໍາສັ່ງ.

ເມື່ອປ່ຽນຈາກ ex ໂໝດເປີດ ຫຼື ໂໝດສາຍຕາ, ຖ້າ ` ແລະ ' ເຄື່ອງຫມາຍບໍ່ແມ່ນແລ້ວ
ທີ່ກໍານົດໄວ້, ໄດ້ ` ແລະ ' ເຄື່ອງໝາຍຕ້ອງຖືກກຳນົດຕາມທີ່ໄດ້ອະທິບາຍໄວ້ກ່ອນໜ້ານີ້.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ຍ້າຍ
Synopsis:
[2 ຕື່ມ] m[ove] 1 ຕື່ມ [ທົງ]

ຍ້າຍສາຍທີ່ລະບຸໄວ້ຫຼັງຈາກເສັ້ນປາຍທາງທີ່ລະບຸໄວ້. ຈຸດໝາຍປາຍທາງຂອງເສັ້ນສູນ
ລະບຸວ່າເສັ້ນຈະຖືກວາງໄວ້ໃນຕອນຕົ້ນຂອງບັຟເຟີການແກ້ໄຂ. ມັນຈະເປັນ
ຂໍ້ຜິດພາດຖ້າເສັ້ນປາຍທາງຢູ່ໃນຂອບເຂດຂອງເສັ້ນທີ່ຈະຍ້າຍອອກ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍຂອງເສັ້ນທີ່ຍ້າຍ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຖັດໄປ
Synopsis:
n[ext][!][+ຄໍາສັ່ງ][ເອກະສານ ...]

ຖ້າບໍ່ '!' ຖືກ​ຕໍ່​ທ້າຍ​ກັບ​ຊື່​ຄໍາ​ສັ່ງ​, ແລະ​ການ​ແກ້​ໄຂ buffer ໄດ້​ຖືກ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​
ການຂຽນທີ່ສົມບູນຄັ້ງສຸດທ້າຍ, ມັນຈະເປັນຂໍ້ຜິດພາດ, ເວັ້ນເສຍແຕ່ວ່າໄຟລ໌ຈະຖືກຂຽນຢ່າງສໍາເລັດຜົນ
ລະບຸໄວ້ໂດຍ ຂຽນອັດຕະໂນມັດ ທາງເລືອກ.

ຖ້າມີໜຶ່ງ ຫຼືຫຼາຍໄຟລ໌ຖືກລະບຸ:

1. ກໍານົດບັນຊີລາຍຊື່ການໂຕ້ຖຽງກັບຊື່ໄຟລ໌ທີ່ກໍານົດໄວ້.

2. ກໍານົດການອ້າງອິງບັນຊີລາຍຊື່ argument ປະຈຸບັນເປັນລາຍການທໍາອິດໃນບັນຊີລາຍຊື່ argument.

3. ຕັ້ງຊື່ເສັ້ນທາງປະຈຸບັນໃຫ້ກັບຊື່ໄຟລ໌ທໍາອິດທີ່ລະບຸໄວ້.

ຖ້າບໍ່ດັ່ງນັ້ນ:

1. ມັນຈະເປັນຄວາມຜິດພາດຖ້າຫາກວ່າບໍ່ມີຊື່ໄຟລ໌ເພີ່ມເຕີມໃນບັນຊີລາຍຊື່ການໂຕ້ຖຽງຫຼັງຈາກ.
ຊື່ໄຟລ໌ທີ່ອ້າງອີງໃນປັດຈຸບັນ.

2. ກໍານົດຊື່ເສັ້ນທາງປະຈຸບັນແລະບັນຊີລາຍຊື່ການໂຕ້ຖຽງປະຈຸບັນອ້າງອີງໃສ່ຊື່ໄຟລ໌ຫຼັງຈາກ
ຊື່ໄຟລ໌ທີ່ອ້າງອີງໃນປັດຈຸບັນຢູ່ໃນບັນຊີລາຍຊື່ການໂຕ້ຖຽງ.

ແທນທີ່ເນື້ອໃນຂອງການແກ້ໄຂ buffer ກັບເນື້ອໃນຂອງໄຟລ໌ທີ່ມີຊື່ໃນປັດຈຸບັນ
ຊື່ເສັ້ນທາງ. ຖ້າ​ຫາກ​ວ່າ​ສໍາ​ລັບ​ເຫດ​ຜົນ​ໃດ​ຫນຶ່ງ​ເນື້ອ​ໃນ​ຂອງ​ໄຟລ​໌​ບໍ່​ສາ​ມາດ​ເຂົ້າ​ເຖິງ​, buffer ການ​ແກ້​ໄຂ​
ຈະຫວ່າງເປົ່າ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຂຽນອັດຕະໂນມັດ ແລະ ຂຽນໄດ້ ແກ້ໄຂທາງເລືອກ.

ໄດ້ +ຄໍາສັ່ງ ທາງ​ເລືອກ​ຈະ​ເປັນ​ -delimited; ລັກສະນະສາມາດຫລົບຫນີໄດ້
ກ່ອນໜ້າເຂົາເຈົ້າດ້ວຍ ກ ລັກສະນະ. ໄດ້ +ຄໍາສັ່ງ ຈະຖືກຕີຄວາມໝາຍວ່າເປັນ ex
ຄໍາສັ່ງທັນທີຫຼັງຈາກເນື້ອໃນຂອງການແກ້ໄຂ buffer ໄດ້ຖືກທົດແທນແລະ
ເສັ້ນແລະຖັນປະຈຸບັນໄດ້ຖືກຕັ້ງ.

ປັດຈຸບັນ ອອນໄລນ໌: ກໍານົດເປັນອະທິບາຍສໍາລັບການ ດັດແກ້ ຄໍາສັ່ງ.

ປັດຈຸບັນ ຖັນ: ກໍານົດເປັນອະທິບາຍສໍາລັບການ ດັດແກ້ ຄໍາສັ່ງ.

ຈໍານວນ
Synopsis:
[2 ຕື່ມ] nu[ຕົ້ນໄມ້][ນັບ][ທົງ]
[2 ຕື່ມ] #[ນັບ][ທົງ]

ຄໍາສັ່ງເຫຼົ່ານີ້ຈະທຽບເທົ່າກັບ ex ຄໍາສັ່ງ:

[2 ຕື່ມ] p[ຂີ້ແຮ້][ນັບ] #[ທົງ]

ເບິ່ງ ພິມ.

ເປີດ
Synopsis:
[1 ຕື່ມ] o[pen] /ຮູບແບບ/ [ທົງ]

ຄໍາສັ່ງນີ້ບໍ່ຈໍາເປັນຕ້ອງໄດ້ຮັບການສະຫນັບສະຫນູນໃນສະຖານີ block-mode ຫຼື terminals ທີ່ບໍ່ພຽງພໍ
ຄວາມສາມາດ. ຖ້າການປ້ອນຂໍ້ມູນມາດຕະຖານ, ຜົນຜະລິດມາດຕະຖານ, ຫຼືຄວາມຜິດພາດມາດຕະຖານບໍ່ແມ່ນຈຸດ
ອຸປະກອນ, ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ລະບຸ.

ເຂົ້າສູ່ໂໝດເປີດ.

ຕົວຂັ້ນຕໍ່ທ້າຍສາມາດຖືກລະເວັ້ນຈາກ ຮູບແບບ ໃນຕອນທ້າຍຂອງເສັ້ນຄໍາສັ່ງ. ຖ້າ
ຮູບແບບ ຫວ່າງເປົ່າ (ຕົວຢ່າງ, "//") ຫຼື​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, ການ​ສະ​ແດງ​ອອກ​ປົກ​ກະ​ຕິ​ສຸດ​ທ້າຍ​ທີ່​ໃຊ້​ໃນ​
ບັນນາທິການຈະຖືກນໍາໃຊ້ເປັນຮູບແບບ. ຮູບແບບສາມາດ delimited ໂດຍ
ຕົວ​ອັກ​ສອນ (ສະ​ແດງ​ໃຫ້​ເຫັນ​ໃນ Synopsis​)​, ເຊັ່ນ​ດຽວ​ກັນ​ກັບ​ຕົວ​ອັກ​ສອນ​ແລະ​ຕົວ​ອັກ​ສອນ​ຫຼື​ບໍ່​ແມ່ນ​. ນອກ​ຈາກ
, , , ຫຼື double-quote.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນເສັ້ນທີ່ລະບຸ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຮັກສາໄວ້
Synopsis:
ກ່ອນ[ບໍລິການ]

ບັນທຶກການແກ້ໄຂ buffer ໃນຮູບແບບທີ່ສາມາດຟື້ນຕົວຄືນໄດ້ໂດຍການນໍາໃຊ້ -r ທາງ​ເລືອກ​ຫຼື​ໂດຍ​
ການນໍາໃຊ້ ex ກູ້ຄືນ ຄໍາສັ່ງ. ຫຼັງ​ຈາກ​ທີ່​ໄຟລ​໌​ໄດ້​ຮັບ​ການ​ຮັກ​ສາ​ໄວ້​, ຂໍ້​ຄວາມ​ເມລ​ຈະ​ເປັນ​
ສົ່ງໃຫ້ຜູ້ໃຊ້. ຂໍ້ຄວາມນີ້ຈະສາມາດອ່ານໄດ້ໂດຍການຮຽກຮ້ອງ ເມລ x ປະໂຫຍດ. ໄດ້
ຂໍ້​ຄວາມ​ຈະ​ມີ​ຊື່​ຂອງ​ໄຟລ​໌​, ທີ່​ໃຊ້​ເວ​ລາ​ຂອງ​ການ​ປົກ​ປັກ​ຮັກ​ສາ​, ແລະ​ ex ຄໍາສັ່ງ
ທີ່ສາມາດໃຊ້ເພື່ອກູ້ໄຟລ໌ໄດ້. ຂໍ້ມູນເພີ່ມເຕີມອາດຈະຖືກລວມຢູ່ໃນຈົດໝາຍ
ຂໍ້ຄວາມ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ພິມ
Synopsis:
[2 ຕື່ມ] p[ຂີ້ແຮ້][ນັບ][ທົງ]

ຂຽນແຖວທີ່ຢູ່. ພຶດຕິກໍາແມ່ນບໍ່ໄດ້ກໍານົດຖ້າຫາກວ່າຈໍານວນຂອງຖັນຢູ່ໃນ
ຈໍສະແດງຜົນແມ່ນຫນ້ອຍກວ່າຈໍານວນຄໍລໍາທີ່ຕ້ອງການເພື່ອຂຽນຕົວອັກສອນດຽວໃນ
ເສັ້ນ​ທີ່​ກໍາ​ລັງ​ຂຽນ​.

ຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້, ຍົກເວັ້ນ , ຈະຖືກຂຽນເປັນການປະຕິບັດທີ່ໄດ້ກໍານົດ
ລຳດັບຫຼາຍຕົວອັກສອນ.

ຖ້າ # ທຸງແມ່ນລະບຸໄວ້ຫຼື ຈໍານວນ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ກໍາ​ນົດ​, ແຕ່​ລະ​ແຖວ​ຈະ​ຖືກ​ນໍາ​ຫນ້າ​
ໂດຍຕົວເລກແຖວໃນຮູບແບບຕໍ່ໄປນີ້:

"%6d ", <ອອນໄລນ໌ ຈໍານວນ>

ຖ້າ l ທຸງແມ່ນລະບຸໄວ້ຫຼື ບັນຊີລາຍຊື່ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​:

1. ຕົວອັກສອນທີ່ລະບຸໄວ້ໃນປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ຕາຕະລາງ 5​-1,
Escape ລໍາດັບ ແລະ Associated ການກະທໍາ ຈະຖືກຂຽນວ່າເປັນການຫລົບຫນີທີ່ສອດຄ້ອງກັນ
ລໍາດັບ.

2. ຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້ ບໍ່ໄດ້ຢູ່ໃນປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ຕາຕະລາງ
5​-1, Escape ລໍາດັບ ແລະ Associated ການກະທໍາ ຈະຖືກຂຽນເປັນໂຕເລກແປດແປດ
ຕົວເລກ (ດ້ວຍຕົວເລກກ່ອນໜ້າ ) ສໍາລັບແຕ່ລະ byte ໃນລັກສະນະ (ສໍາຄັນທີ່ສຸດ
byte ກ່ອນ).

3. ປາຍຂອງແຕ່ລະແຖວຈະຖືກໝາຍດ້ວຍ ກ '$', ແລະຕົວຫນັງສື '$' ລັກສະນະພາຍໃນ
ເສັ້ນຈະຖືກຂຽນດ້ວຍຕົວຫຍໍ້ກ່ອນ .

ສາຍຍາວຈະຖືກພັບ; ຄວາມ​ຍາວ​ຂອງ​ການ​ພັບ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, ແຕ່​ຄວນ​
ເຫມາະສໍາລັບ terminal ຜົນຜະລິດ, ພິຈາລະນາຈໍານວນຂອງຖັນຂອງ terminal ໄດ້.

ຖ້າເສັ້ນຖືກພັບ, ແລະ l ທຸງບໍ່ໄດ້ລະບຸໄວ້ ແລະ ບັນຊີລາຍຊື່ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ບໍ່​ໄດ້​ຖືກ​ຕັ້ງ​,
ມັນບໍ່ໄດ້ຖືກລະບຸວ່າຕົວລະຄອນຫຼາຍຖັນຢູ່ຕຳແໜ່ງພັບຖືກແຍກອອກຫຼືບໍ່;
ມັນຈະບໍ່ຖືກຍົກເລີກ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວທີ່ຂຽນສຸດທ້າຍ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງຖ້າເສັ້ນປະຈຸບັນບໍ່ປ່ຽນແປງ; ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັ້ງເປັນບໍ່ແມ່ນ .

ເອົາໃຈໃສ່
Synopsis:
[1 ຕື່ມ] pu[t][buffer]

ຕື່ມຂໍ້ຄວາມຈາກ buffer ທີ່ລະບຸ (ຕາມຄ່າເລີ່ມຕົ້ນ, buffer ທີ່ບໍ່ມີຊື່) ໄປຫາທີ່ລະບຸ
ເສັ້ນ; ເສັ້ນສູນລະບຸວ່າຂໍ້ຄວາມຈະຖືກວາງໄວ້ໃນຕອນຕົ້ນຂອງການແກ້ໄຂ
ບັຟເຟີ. ແຕ່ລະພາກສ່ວນຂອງແຖວໃນ buffer ຈະກາຍເປັນແຖວໃຫມ່ໃນ buffer ການແກ້ໄຂ,
ໂດຍບໍ່ຄໍານຶງເຖິງຮູບແບບຂອງ buffer ໄດ້.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍທີ່ເຂົ້າມາໃນ buffer ແກ້ໄຂ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ເຊົາ
Synopsis:
q[uit][!]

ຖ້າບໍ່ '!' ຖືກຕໍ່ທ້າຍກັບຊື່ຄໍາສັ່ງ:

1. ຖ້າການແກ້ໄຂ buffer ໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ການຂຽນທີ່ສົມບູນຄັ້ງສຸດທ້າຍ, ມັນຈະເປັນ
ຜິດພາດ.

2. ຖ້າມີຊື່ໄຟລ໌ຢູ່ໃນລາຍການໂຕ້ແຍ້ງຫຼັງຈາກຊື່ໄຟລ໌ທີ່ອ້າງອີງໃນປັດຈຸບັນ,
ແລະຄໍາສັ່ງສຸດທ້າຍບໍ່ແມ່ນ a ເຊົາ, wq, xit, ຫຼື ZZ (ເບິ່ງ ການທ່ອງທ່ຽວ) ຄໍາສັ່ງ, ມັນຈະເປັນ
ຜິດພາດ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ຢຸດເຊດຊັນການແກ້ໄຂ.

ອ່ານ
Synopsis:
[1 ຕື່ມ] r[ead][!][ເອກະສານ]

If '!' ບໍ່​ແມ່ນ​ການ​ທໍາ​ອິດ​ທີ່​ບໍ່​ແມ່ນ ເພື່ອປະຕິບັດຕາມຊື່ຄໍາສັ່ງ, ສໍາເນົາຂອງທີ່ກໍານົດໄວ້
ໄຟລ​໌​ຈະ​ໄດ້​ຮັບ​ການ​ຕໍ່​ທ້າຍ​ເຂົ້າ​ໄປ​ໃນ buffer ການ​ແກ້​ໄຂ​ຫຼັງ​ຈາກ​ເສັ້ນ​ທີ່​ກໍາ​ນົດ​ໄວ້​; ເສັ້ນສູນກໍານົດ
ສໍາເນົາຈະຖືກວາງໄວ້ໃນຕອນຕົ້ນຂອງການແກ້ໄຂ buffer. ຈໍານວນຂອງສາຍແລະ
bytes ອ່ານຈະຖືກຂຽນ. ຖ້າບໍ່ມີ ເອກະສານ ມີຊື່, ຊື່ເສັ້ນທາງປະຈຸບັນຈະເປັນ
ຄ່າເລີ່ມຕົ້ນ. ຖ້າບໍ່ມີຊື່ເສັ້ນທາງປະຈຸບັນ, ຫຼັງຈາກນັ້ນ ເອກະສານ ຈະກາຍເປັນຊື່ເສັ້ນທາງໃນປະຈຸບັນ. ຖ້າ
ບໍ່ມີຊື່ເສັ້ນທາງປະຈຸບັນຫຼື ເອກະສານ operand, ມັນຈະເປັນຄວາມຜິດພາດ. ກໍານົດ ກ ເອກະສານ ທີ່
ບໍ່ແມ່ນປະເພດປົກກະຕິຈະມີຜົນໄດ້ຮັບທີ່ບໍ່ລະບຸ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າ ເອກະສານ ແມ່ນນຳໜ້າໂດຍ '!', ສ່ວນທີ່ເຫຼືອຂອງເສັ້ນຫຼັງຈາກ '!' ຈະຕ້ອງມີ '%',
'#', ແລະ '!' ຕົວອັກສອນທີ່ຂະຫຍາຍອອກຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex.

ໄດ້ ex utility ຫຼັງຈາກນັ້ນຈະຜ່ານສອງ argument ກັບໂຄງການທີ່ມີຊື່ໂດຍການແກ້ໄຂ shell
ທາງເລືອກ; ທໍາອິດຈະເປັນ −ຄ ແລະອັນທີສອງຈະເປັນການໂຕ້ຖຽງທີ່ຂະຫຍາຍອອກໄປ ອ່ານ
ຄໍາສັ່ງເປັນການໂຕ້ຖຽງດຽວ. ການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງໂຄງການຈະຕ້ອງຖືກຕັ້ງເປັນ
ການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງ ex ໂຄງ​ການ​ໃນ​ເວ​ລາ​ທີ່​ມັນ​ໄດ້​ຖືກ​ຮຽກ​ຮ້ອງ​. ຄວາມຜິດພາດມາດຕະຖານແລະມາດຕະຖານ
ຜົນຜະລິດຂອງໂປລແກລມຈະຖືກຕື່ມໃສ່ໃນ buffer ດັດແກ້ຫຼັງຈາກເສັ້ນທີ່ກໍານົດ.

ແຕ່​ລະ​ແຖວ​ໃນ​ໄຟລ​໌​ທີ່​ຄັດ​ລອກ​ຫຼື​ຜົນ​ຜະ​ລິດ​ຂອງ​ໂຄງ​ການ (ເປັນ delimited ໂດຍ ຕົວອັກສອນຫຼື
ໃນຕອນທ້າຍຂອງໄຟລ໌ຫຼືຜົນຜະລິດຖ້າຫາກວ່າມັນບໍ່ໄດ້ນໍາຫນ້າທັນທີໂດຍ a ), ຈະເປັນ
ເສັ້ນແຍກຕ່າງຫາກໃນ buffer ແກ້ໄຂ. ປະກົດການໃດໆຂອງ ແລະ
ຄູ່ໃນຜົນຜະລິດຕ້ອງໄດ້ຮັບການປະຕິບັດເປັນດຽວ ຕົວລະຄອນ.

ຄວາມ​ຫມາຍ​ພິ​ເສດ​ຂອງ​ '!' ດັ່ງຕໍ່ໄປນີ້ ອ່ານ ຄໍາສັ່ງສາມາດ overridden ໂດຍການຫລົບຫນີ
ມັນກັບ a ລັກສະນະ.

ປັດຈຸບັນ ອອນໄລນ໌: ຖ້າບໍ່ມີແຖວໃດຖືກເພີ່ມໃສ່ buffer ແກ້ໄຂ, ຈະບໍ່ປ່ຽນແປງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າເປີດ
ຫຼື​ຮູບ​ແບບ​ການ​ສາຍ​ຕາ​, ກໍາ​ນົດ​ເປັນ​ແຖວ​ທໍາ​ອິດ​ເຂົ້າ​ໄປ​ໃນ​ການ​ແກ້​ໄຂ​ບັບ​ຕິ​ສະ​. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັ້ງເປັນ
ແຖວສຸດທ້າຍໄດ້ເຂົ້າໄປໃນ buffer ແກ້ໄຂ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຟື້ນຕົວ
Synopsis:
rec[ໃນໄລຍະ][!] ເອກະສານ

ຖ້າບໍ່ '!' ຖືກ​ຕໍ່​ທ້າຍ​ກັບ​ຊື່​ຄໍາ​ສັ່ງ​, ແລະ​ການ​ແກ້​ໄຂ buffer ໄດ້​ຖືກ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​
ການຂຽນສະບັບສຸດທ້າຍ, ມັນຈະເປັນຄວາມຜິດພາດ.

ຖ້າບໍ່ ເອກະສານ operand ຖືກລະບຸ, ຫຼັງຈາກນັ້ນຊື່ເສັ້ນທາງປະຈຸບັນຈະຖືກໃຊ້. ຖ້າບໍ່ມີ
ຊື່ເສັ້ນທາງປະຈຸບັນຫຼື ເອກະສານ operand, ມັນຈະເປັນຄວາມຜິດພາດ.

ຖ້າບໍ່ມີຂໍ້ມູນການຟື້ນຕົວໄດ້ຖືກບັນທຶກໄວ້ໃນເມື່ອກ່ອນກ່ຽວກັບ ເອກະສານ, ການ ກູ້ຄືນ ຄໍາສັ່ງຈະ
ປະຕິບັດຕົວດຽວກັນກັບ ດັດແກ້ ຄໍາສັ່ງ, ແລະຂໍ້ຄວາມຂໍ້ມູນຂ່າວສານທີ່ຈະມີຜົນກະທົບນີ້
ຂຽນ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັ້ງຊື່ເສັ້ນທາງປັດຈຸບັນເປັນ ເອກະສານ, ແລະປ່ຽນແທນເນື້ອໃນປະຈຸບັນຂອງການແກ້ໄຂ
buffer ກັບເນື້ອໃນການຟື້ນຕົວຂອງ ເອກະສານ. ຖ້າມີຫຼາຍຕົວຢ່າງຂອງໄຟລ໌
ເພື່ອ​ຈະ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ​, ຫນຶ່ງ​ທີ່​ບັນ​ທຶກ​ໄວ້​ໃນ​ໄວໆ​ນີ້​ຈະ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ​, ແລະ​ຂໍ້​ມູນ​ຂ່າວ​ສານ​
ຂໍ້​ຄວາມ​ວ່າ​ມີ​ສະ​ບັບ​ຜ່ານ​ມາ​ຂອງ​ໄຟລ​໌​ທີ່​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ​ຈະ​ເປັນ​
ຂຽນ. ບັນນາທິການຈະປະຕິບັດຕົວຄືກັບວ່າເນື້ອໃນຂອງການແກ້ໄຂໄດ້ມີຢູ່ແລ້ວ
ດັດແກ້

ປັດຈຸບັນ ເອກະສານ: ກໍານົດເປັນອະທິບາຍສໍາລັບການ ດັດແກ້ ຄໍາສັ່ງ.

ປັດຈຸບັນ ຖັນ: ກໍານົດເປັນອະທິບາຍສໍາລັບການ ດັດແກ້ ຄໍາສັ່ງ.

Rewind
Synopsis:
ໃໝ່[ind][!]

ຖ້າບໍ່ '!' ຖືກ​ຕໍ່​ທ້າຍ​ກັບ​ຊື່​ຄໍາ​ສັ່ງ​, ແລະ​ການ​ແກ້​ໄຂ buffer ໄດ້​ຖືກ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​
ການຂຽນທີ່ສົມບູນຄັ້ງສຸດທ້າຍ, ມັນຈະເປັນຂໍ້ຜິດພາດ, ເວັ້ນເສຍແຕ່ວ່າໄຟລ໌ຈະຖືກຂຽນຢ່າງສໍາເລັດຜົນ
ລະບຸໄວ້ໂດຍ ຂຽນອັດຕະໂນມັດ ທາງເລືອກ.

ຖ້າລາຍການໂຕ້ແຍ້ງຫວ່າງເປົ່າ, ມັນຈະເປັນຂໍ້ຜິດພາດ.

ການອ້າງອິງລາຍຊື່ການໂຕ້ຖຽງປັດຈຸບັນ ແລະຊື່ເສັ້ນທາງປັດຈຸບັນຈະຖືກຕັ້ງເປັນອັນທຳອິດ
ຊື່ໄຟລ໌ໃນລາຍການໂຕ້ແຍ້ງ.

ແທນທີ່ເນື້ອໃນຂອງການແກ້ໄຂ buffer ກັບເນື້ອໃນຂອງໄຟລ໌ທີ່ມີຊື່ໃນປັດຈຸບັນ
ຊື່ເສັ້ນທາງ. ຖ້າ​ຫາກ​ວ່າ​ສໍາ​ລັບ​ເຫດ​ຜົນ​ໃດ​ຫນຶ່ງ​ເນື້ອ​ໃນ​ຂອງ​ໄຟລ​໌​ບໍ່​ສາ​ມາດ​ເຂົ້າ​ເຖິງ​, buffer ການ​ແກ້​ໄຂ​
ຈະຫວ່າງເປົ່າ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຂຽນອັດຕະໂນມັດ ແລະ ຂຽນໄດ້ ແກ້ໄຂທາງເລືອກ.

ປັດຈຸບັນ ອອນໄລນ໌: ກໍານົດເປັນອະທິບາຍສໍາລັບການ ດັດແກ້ ຄໍາສັ່ງ.

ປັດຈຸບັນ ຖັນ: ກໍານົດເປັນອະທິບາຍສໍາລັບການ ດັດແກ້ ຄໍາສັ່ງ.

ທີ່ກໍານົດໄວ້
Synopsis:
se[t][ທາງເລືອກ[=[ມູນຄ່າ]] ...][noທາງເລືອກ ...][ທາງເລືອກ? ...][ທັງຫມົດ]

ເມື່ອບໍ່ມີຂໍ້ໂຕ້ແຍ້ງຖືກລະບຸ, ຂຽນຄ່າຂອງ ໄລຍະ ການແກ້ໄຂທາງເລືອກແລະທາງເລືອກເຫຼົ່ານັ້ນ
ຄ່າຂອງພວກມັນໄດ້ຖືກປ່ຽນຈາກການຕັ້ງຄ່າເລີ່ມຕົ້ນ; ໃນເວລາທີ່ການໂຕ້ຖຽງ ທັງຫມົດ is
ລະບຸໄວ້, ຂຽນຄ່າທາງເລືອກທັງໝົດ.

ການໃຫ້ຊື່ທາງເລືອກຕາມດ້ວຍຕົວອັກສອນ '?' ຈະເຮັດໃຫ້ມູນຄ່າປັດຈຸບັນຂອງສິ່ງນັ້ນ
ທາງເລືອກທີ່ຈະຂຽນ. ໄດ້ '?' ສາມາດແຍກອອກຈາກຊື່ທາງເລືອກໂດຍສູນຫຼືຫຼາຍກວ່ານັ້ນ
ຕົວລະຄອນ. ໄດ້ '?' ຈະເປັນສິ່ງຈໍາເປັນສໍາລັບທາງເລືອກທີ່ມີຄ່າ Boolean ເທົ່ານັ້ນ. ບູລີນ
ທາງເລືອກສາມາດໄດ້ຮັບຄ່າໂດຍແບບຟອມ ທີ່ກໍານົດໄວ້ ທາງເລືອກ ເພື່ອເປີດໃຫ້ເຂົາເຈົ້າຫຼື ທີ່ກໍານົດໄວ້ noທາງເລືອກ ເພື່ອເຮັດໃຫ້
ເຂົາເຈົ້າໄປ; ຕົວເລືອກສະຕຣິງແລະຕົວເລກສາມາດຖືກມອບຫມາຍໂດຍແບບຟອມ ທີ່ກໍານົດໄວ້ ທາງເລືອກ=ມູນຄ່າທີ່ຢູ່ ທຸກໆຢ່າງ
ຕົວອັກສອນໃນສະຕຣິງສາມາດຖືກລວມເຂົ້າກັນໄດ້ຕາມແຕ່ລະອັນກ່ອນ ກັບ
ໜີ . ຫຼາຍກວ່າຫນຶ່ງທາງເລືອກສາມາດຖືກຕັ້ງຫຼືລາຍຊື່ໂດຍຄໍາສັ່ງຊຸດດຽວ
ໂດຍການລະບຸການໂຕ້ຖຽງຫຼາຍອັນ, ແຕ່ລະອັນແຍກອອກຈາກອັນຕໍ່ໄປໂດຍໜຶ່ງ ຫຼືຫຼາຍກວ່ານັ້ນ
ລັກສະນະ.

ເບິ່ງ ດັດແກ້ ທາງເລືອກໃນການ in ex ສໍາລັບລາຍລະອຽດກ່ຽວກັບທາງເລືອກສະເພາະ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

Shell
Synopsis:
sh[ລາວ]

ຮຽກ​ຮ້ອງ​ໃຫ້​ໂຄງ​ການ​ທີ່​ມີ​ຊື່​ໃນ​ ຫອຍ ແກ້ໄຂທາງເລືອກທີ່ມີການໂຕ້ຖຽງດຽວ -i (ໂຕ້ຕອບ
ຮູບແບບ). ການແກ້ໄຂຈະຖືກສືບຕໍ່ເມື່ອໂຄງການອອກ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ແຫຼ່ງຂໍ້ມູນ
Synopsis:
ດັ່ງນັ້ນ[ຍ່ຽວ] ເອກະສານ

ອ່ານ​ແລະ​ປະ​ຕິ​ບັດ​ ex ຄໍາສັ່ງຈາກ ເອກະສານ. ແຖວໃນໄຟລ໌ທີ່ເປັນເສັ້ນເປົ່າຈະຕ້ອງເປັນ
ບໍ່ສົນໃຈ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕາມທີ່ລະບຸໄວ້ສໍາລັບບຸກຄົນ ex ຄຳ ສັ່ງ.

ປັດຈຸບັນ ຖັນ: ຕາມທີ່ລະບຸໄວ້ສໍາລັບບຸກຄົນ ex ຄຳ ສັ່ງ.

ທົດແທນ
Synopsis:
[2 ຕື່ມ] s[ສະຖາບັນ][/ຮູບແບບ/ແທນ/[ທາງເລືອກໃນການ][ນັບ][ທົງ]]
[2 ຕື່ມ] &[ທາງເລືອກໃນການ][ນັບ][ທົງ]]
[2 ຕື່ມ] ~[ທາງເລືອກໃນການ][ນັບ][ທົງ]]

ແທນທີ່ຕົວຢ່າງທໍາອິດຂອງຮູບແບບ ຮູບແບບ ໂດຍຊ່ອຍແນ່ ແທນ ໃນ​ແຕ່​ລະ​ທີ່​ລະ​ບຸ​ໄວ້​
ສາຍ. (ເບິ່ງ ເປັນປົກກະຕິ ສຳ ນວນ in ex ແລະ ການທົດແທນ Strings in ex.) ບໍ່ມີຕົວໜັງສື,
ບໍ່ແມ່ນ ຕົວຂັ້ນອື່ນນອກຈາກ , '|', , ຫຼື double-quote ສາມາດຖືກນໍາໃຊ້
ແທນ​ທີ່ '/'. ຕົວ​ອັກ​ສອນ​ສາ​ມາດ​ຖືກ​ນໍາ​ໃຊ້​ເພື່ອ​ຫນີ delimiters​,
ລັກສະນະ, ແລະລັກສະນະພິເສດອື່ນໆ.

ຕົວຂັ້ນຕໍ່ທ້າຍສາມາດຖືກລະເວັ້ນຈາກ ຮູບແບບ ຫຼືຈາກ ແທນ ໃນຕອນທ້າຍຂອງຄໍາສັ່ງ
ສາຍ. ຖ້າທັງສອງ ຮູບແບບ ແລະ ແທນ ບໍ່ໄດ້ລະບຸ ຫຼືຫວ່າງເປົ່າ (ຕົວຢ່າງ, "//"), the
ສຸດທ້າຍ s ຄໍາສັ່ງຈະຖືກຊ້ໍາ. ຖ້າພຽງແຕ່ ຮູບແບບ ບໍ່ໄດ້ລະບຸໄວ້ ຫຼືຫວ່າງເປົ່າ, ອັນສຸດທ້າຍ
ການສະແດງອອກປົກກະຕິທີ່ໃຊ້ໃນບັນນາທິການຈະຖືກນໍາໃຊ້ເປັນຮູບແບບ. ຖ້າພຽງແຕ່ ແທນ ບໍ່​ແມ່ນ
ລະບຸໄວ້ ຫຼືຫວ່າງເປົ່າ, ຮູບແບບຈະຖືກປ່ຽນແທນໂດຍບໍ່ມີຫຍັງ. ຖ້າ​ຫາກ​ວ່າ​ທັງ​ຫມົດ​
ຮູບແບບການທົດແທນແມ່ນ '%', ຮູບແບບການທົດແທນສຸດທ້າຍກັບ an s ຄໍາສັ່ງຈະຖືກນໍາໃຊ້.

ເຂົ້າສູ່ ກ ໃນ ແທນ (ເຊິ່ງຮຽກຮ້ອງໃຫ້ມີການຫລົບຫນີ ໃນ ex ຮູບແບບການ
ແລະການຫລົບຫນີ -V ໃນ​ການ​ເປີດ​ຫຼື​ vi ຮູບແບບ) ຈະແບ່ງເສັ້ນຢູ່ໃນຈຸດນັ້ນ,
ການສ້າງເສັ້ນໃຫມ່ໃນ buffer ແກ້ໄຂ. ໄດ້ ຈະຖືກຍົກເລີກ.

If ທາງເລືອກໃນການ ລວມມີຈົດໝາຍ 'ກ' (ທົ່ວໂລກ), ທຸກໆຕົວຢ່າງທີ່ບໍ່ທັບຊ້ອນກັນຂອງຮູບແບບ
ໃນເສັ້ນຈະຖືກປ່ຽນແທນ.

If ທາງເລືອກໃນການ ລວມມີຈົດໝາຍ 'ຄ' (ຢືນຢັນ), ຫຼັງຈາກນັ້ນ, ກ່ອນທີ່ຈະປ່ຽນແທນແຕ່ລະເສັ້ນຈະ
ຂຽນ; ເສັ້ນທີ່ຂຽນຈະສະທ້ອນເຖິງການທົດແທນທີ່ຜ່ານມາທັງຫມົດ. ຕໍ່ໄປນີ້
ແຖວ, ຕົວອັກສອນຕ້ອງຖືກຂຽນຢູ່ລຸ່ມຕົວອັກສອນຈາກແຖວນັ້ນ
ກ່ອນທີ່ຈະໄດ້ ຮູບແບບ ຈະຖືກທົດແທນ, ແລະ '^' ຕົວອັກສອນທີ່ຂຽນຢູ່ລຸ່ມຕົວອັກສອນ
ລວມຢູ່ໃນ ຮູບແບບ ຈະຖືກທົດແທນ. ໄດ້ ex ຜົນປະໂຫຍດຫຼັງຈາກນັ້ນຈະຕ້ອງລໍຖ້າຄໍາຕອບຈາກ
ຜູ້ໃຊ້. ການຕອບໂຕ້ທີ່ຢືນຢັນຈະເຮັດໃຫ້ການທົດແທນທີ່ຕ້ອງເຮັດ, ໃນຂະນະທີ່ອື່ນໆ
ວັດສະດຸປ້ອນຈະບໍ່ປ່ຽນແທນ. ຄໍາຕອບທີ່ຢືນຢັນຈະຕ້ອງປະກອບດ້ວຍເສັ້ນ
ດ້ວຍການຕອບໂຕ້ຢືນຢັນ (ຕາມທີ່ກໍານົດໂດຍທ້ອງຖິ່ນໃນປະຈຸບັນ) ໃນຕອນຕົ້ນຂອງ
ສາຍ. ເສັ້ນນີ້ຈະຕ້ອງມີການດັດແກ້ໃນລັກສະນະດຽວກັນກັບ ex ບັນທັດຄໍາສັ່ງ.

ຖ້າ​ຫາກ​ວ່າ​ຂັດ​ຂວາງ (ເບິ່ງ​ພາກ​ເຫດ​ການ ASYNCHRONOUS), ການ​ດັດ​ແກ້​ໃດໆ​ທີ່​ຢືນ​ຢັນ​ໂດຍ​ການ
ຜູ້​ໃຊ້​ຈະ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ຮັກ​ສາ​ໄວ້​ໃນ​ການ​ແກ້​ໄຂ​ການ​ແກ້​ໄຂ​ຫຼັງ​ຈາກ​ການ​ຂັດ​ຂວາງ​.

ຖ້າທິດທາງການຄົ້ນຫາທີ່ຈື່ບໍ່ໄດ້ຖືກກໍານົດ, the s ຄໍາສັ່ງຈະກໍານົດມັນເພື່ອສົ່ງຕໍ່.

ໃນ Synopsis ທີສອງ, ໄດ້ & ຄໍາສັ່ງຈະເຮັດຊ້ໍາການທົດແທນທີ່ຜ່ານມາ, ຄືກັບວ່າ &
ຄໍາ​ສັ່ງ​ໄດ້​ຖືກ​ທົດ​ແທນ​ໂດຍ​:

s/ຮູບແບບ/ແທນ/

ບ່ອນທີ່ ຮູບແບບ ແລະ ແທນ ແມ່ນ​ຕາມ​ທີ່​ລະ​ບຸ​ໄວ້​ໃນ​ທີ່​ຜ່ານ​ມາ​ s, &, ຫຼື ~ ຄໍາສັ່ງ.

ໃນ Synopsis ທີສາມ, ໄດ້ ~ ຄໍາສັ່ງຈະເຮັດຊ້ໍາການທົດແທນທີ່ຜ່ານມາ, ຄືກັບວ່າ '~'
ຖືກ​ທົດ​ແທນ​ໂດຍ​:

s/ຮູບແບບ/ແທນ/

ບ່ອນທີ່ ຮູບແບບ ຈະ​ເປັນ​ການ​ສະ​ແດງ​ອອກ​ປົກ​ກະ​ຕິ​ສຸດ​ທ້າຍ​ລະ​ບຸ​ໄວ້​ກັບ​ບັນ​ນາ​ທິ​ການ​, ແລະ​ ແທນ ຈະ
ມາຈາກການທົດແທນທີ່ຜ່ານມາ (ລວມທັງ & ແລະ ~) ຄໍາ​ສັ່ງ​.

ຄໍາສັ່ງເຫຼົ່ານີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ LC_MESSAGES environment variable

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍທີ່ມີການທົດແທນທີ່ເກີດຂຶ້ນ, ຫຼື, ບໍ່ປ່ຽນແປງ ຖ້າບໍ່ມີ
ການທົດແທນເກີດຂຶ້ນ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ລະງັບ
Synopsis:
su[ໃຊ້][!]
st[op][!]

ອະນຸຍາດໃຫ້ການຄວບຄຸມກັບຄືນສູ່ຂະບວນການເອີ້ນ; ex ຈະໂຈະຕົວຂອງມັນເອງຄືກັບວ່າມັນມີ
ໄດ້ຮັບສັນຍານ SIGTSTP. ການລະງັບຈະເກີດຂຶ້ນພຽງແຕ່ຖ້າການຄວບຄຸມວຽກຖືກເປີດໃຊ້ໃນ
ແກະ​ທີ່​ຮຽກ​ຮ້ອງ (ເບິ່ງ​ລາຍ​ລະ​ອຽດ​ຂອງ ທີ່ກໍານົດໄວ້ −ມ).

ຄໍາສັ່ງເຫຼົ່ານີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຂຽນອັດຕະໂນມັດ ແລະ ຂຽນໄດ້ ແກ້ໄຂທາງເລືອກ.

ປັດຈຸບັນ susp ລັກສະນະ (ເບິ່ງ stty) ຈະເທົ່າກັບ suspends ຄໍາສັ່ງ.

Tag
Synopsis:
ຕາ[g][!] tagstring

ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ກໍານົດຖ້າຫາກວ່າຮູບແບບຂອງໄຟລ໌ tags ບໍ່ໄດ້ກໍານົດໄວ້ໂດຍ ctags
ປະໂຫຍດ (ເບິ່ງ ctags) ລາຍ​ລະ​ອຽດ​.

ໄດ້ ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງຈະຊອກຫາ tagstring ໃນໄຟລ໌ໂຄດຄໍາສັ່ງອ້າງອີງໂດຍ ໂຄດ​ຄໍາ​ສັ່ງ ດັດແກ້
ທາງ​ເລືອກ​, ໃນ​ຄໍາ​ສັ່ງ​ທີ່​ເຂົາ​ເຈົ້າ​ໄດ້​ຖືກ​ລະ​ບຸ​ໄວ້​, ຈົນ​ກ​່​ວາ​ການ​ອ້າງ​ອີງ​ເຖິງ​ tagstring ຖືກພົບເຫັນ. ໄຟລ໌
ຈະຖືກຄົ້ນຫາຕັ້ງແຕ່ຕົ້ນຈົນຈົບ. ຖ້າບໍ່ພົບເອກະສານອ້າງອີງ, ມັນຈະເປັນຂໍ້ຜິດພາດ
ແລະຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຕໍ່ກັບຜົນກະທົບນີ້ຈະຖືກຂຽນ. ຖ້າການອ້າງອິງບໍ່ພົບ, ຫຼືຖ້າ
ຄວາມ​ຜິດ​ພາດ​ເກີດ​ຂຶ້ນ​ໃນ​ຂະ​ນະ​ທີ່​ການ​ປຸງ​ແຕ່ງ​ໄຟລ​໌​ທີ່​ອ້າງ​ເຖິງ​ໃນ ໂຄດ​ຄໍາ​ສັ່ງ ການແກ້ໄຂທາງເລືອກ, ມັນຈະເປັນ
ຄວາມ​ຜິດ​ພາດ​, ແລະ​ຂໍ້​ຄວາມ​ຄວາມ​ຜິດ​ພາດ​ຈະ​ໄດ້​ຮັບ​ການ​ຂຽນ​ໃນ​ຄັ້ງ​ທໍາ​ອິດ​ຂອງ​ຄວາມ​ຜິດ​ພາດ​ດັ່ງ​ກ່າວ​ໄດ້​.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າໄຟລ໌ tags ມີຮູບແບບ, ຮູບແບບຈະຖືກປະຕິບັດເປັນປົກກະຕິ
ການສະແດງອອກທີ່ໃຊ້ໃນບັນນາທິການ; ສໍາລັບຕົວຢ່າງ, ສໍາລັບຈຸດປະສົງຂອງ s ຄໍາສັ່ງ.

ຖ້າ tagstring ຢູ່ໃນໄຟລ໌ທີ່ມີຊື່ທີ່ແຕກຕ່າງກັນກ່ວາຊື່ເສັ້ນທາງປະຈຸບັນ, ຕັ້ງຄ່າ
ຊື່ເສັ້ນທາງປັດຈຸບັນໃຫ້ກັບຊື່ຂອງໄຟລ໌ນັ້ນ, ແລະປ່ຽນແທນເນື້ອໃນຂອງການແກ້ໄຂບັຟເຟີ
ກັບເນື້ອໃນຂອງເອກະສານນັ້ນ. ໃນກໍລະນີນີ້, ຖ້າບໍ່ມີ '!' ຖືກ​ຕໍ່​ທ້າຍ​ຊື່​ຄໍາ​ສັ່ງ​,
ແລະການແກ້ໄຂ buffer ໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ການຂຽນທີ່ສົມບູນຄັ້ງສຸດທ້າຍ, ມັນຈະເປັນຂໍ້ຜິດພາດ,
ເວັ້ນເສຍແຕ່ວ່າໄຟລ໌ຈະຖືກຂຽນຢ່າງສໍາເລັດຜົນຕາມທີ່ລະບຸໄວ້ໂດຍ ຂຽນອັດຕະໂນມັດ ທາງເລືອກ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຂຽນອັດຕະໂນມັດ, ໂຄດ​ຄໍາ​ສັ່ງ, ຄວາມຍາວແທັກ, ແລະ ຂຽນໄດ້ ດັດແກ້
ຕົວເລືອກ

ປັດຈຸບັນ ອອນໄລນ໌: ຖ້າໄຟລ໌ແທັກມີເລກແຖວ, ຕັ້ງເປັນເລກແຖວນັ້ນ. ຖ້າ
ໝາຍເລກແຖວໃຫຍ່ກວ່າແຖວສຸດທ້າຍໃນການແກ້ໄຂ buffer, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະເປັນ
ລາຍ​ລັກ​ອັກ​ສອນ​ແລະ​ເສັ້ນ​ປະ​ຈຸ​ບັນ​ຈະ​ໄດ້​ຮັບ​ການ​ກໍາ​ນົດ​ໄວ້​ຕາມ​ທີ່​ລະ​ບຸ​ໄວ້​ສໍາ​ລັບ​ການ​ ດັດແກ້ ຄໍາສັ່ງ.

ຖ້າໄຟລ໌ແທໍກມີຮູບແບບ, ຕັ້ງຄ່າການປະກົດຕົວຄັ້ງທໍາອິດຂອງຮູບແບບໃນ
ໄຟລ໌. ຖ້າບໍ່ພົບຮູບແບບທີ່ກົງກັນ, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະຖືກຂຽນແລະປະຈຸບັນ
ເສັ້ນຈະຖືກກໍານົດຕາມທີ່ກໍານົດໄວ້ສໍາລັບ ດັດແກ້ ຄໍາສັ່ງ.

ປັດຈຸບັນ ຖັນ: ຖ້າໄຟລ໌ແທໍກມີການອ້າງອີງເລກແຖວ ແລະເລກແຖວນັ້ນ
ບໍ່ໃຫຍ່ກວ່າແຖວສຸດທ້າຍໃນ buffer ແກ້ໄຂ, ຫຼືຖ້າໄຟລ໌ tags ມີ a
ຮູບ​ແບບ​ແລະ​ຮູບ​ແບບ​ນັ້ນ​ໄດ້​ຖືກ​ພົບ​ເຫັນ​, ກໍາ​ນົດ​ເປັນ​ບໍ່​. . ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ກໍາ​ນົດ​ເປັນ​ທີ່​ກໍາ​ນົດ​ໄວ້​ສໍາ​ລັບ​ການ​
ໄດ້ ດັດແກ້ ຄໍາສັ່ງ.

ບໍ່ຫຍໍ້
Synopsis:
una[bbrev] lhs

If lhs ບໍ່​ແມ່ນ​ການ​ເຂົ້າ​ໃນ​ບັນ​ຊີ​ລາຍ​ຊື່​ຂອງ​ຕົວ​ຫຍໍ້​ໃນ​ປັດ​ຈຸ​ບັນ (ເບິ່ງ ຕົວຫຍໍ້), ມັນຈະເປັນ
ຄວາມ​ຜິດ​ພາດ​. ຖ້າບໍ່ດັ່ງນັ້ນ, ລຶບ lhs ຈາກບັນຊີລາຍຊື່ຂອງຕົວຫຍໍ້.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ປະຕິເສດ
Synopsis:
u[ການນໍາເຂົ້າ]

ກັບຄືນການປ່ຽນແປງທີ່ເຮັດໂດຍຄໍາສັ່ງສຸດທ້າຍທີ່ດັດແປງເນື້ອໃນຂອງການແກ້ໄຂ
buffer, ລວມທັງ ຍົກເລີກ. ສໍາລັບຈຸດປະສົງນີ້, ໄດ້ ທົ່ວໂລກ, v, ເປີດ, ແລະ ສາຍຕາ ຄໍາສັ່ງ, ແລະ
ຄໍາສັ່ງທີ່ເປັນຜົນມາຈາກການປະຕິບັດ buffer ແລະການຂະຫຍາຍຕົວອັກສອນທີ່ມີແຜນທີ່, ຖືກພິຈາລະນາ
ຄໍາສັ່ງດຽວ.

ຖ້າບໍ່ມີການປະຕິບັດທີ່ສາມາດຍົກເລີກໄດ້ກ່ອນຫນ້າ ຍົກເລີກ ຄໍາສັ່ງ, ມັນຈະເປັນຄວາມຜິດພາດ.

ຖ້າ ຍົກເລີກ ຄໍາສັ່ງຟື້ນຟູເສັ້ນທີ່ຖືກຫມາຍ, ເຄື່ອງຫມາຍຈະຖືກຟື້ນຟູ
ເວັ້ນເສຍແຕ່ວ່າມັນຖືກຕັ້ງໃຫມ່ພາຍຫຼັງການລຶບສາຍ.

ປັດຈຸບັນ ອອນໄລນ໌:

1. ຖ້າເສັ້ນຖືກເພີ່ມຫຼືປ່ຽນໃນໄຟລ໌, ກໍານົດເປັນແຖວທໍາອິດທີ່ເພີ່ມຫຼືປ່ຽນ.

2. ກໍານົດເປັນແຖວກ່ອນທີ່ຈະລຶບເສັ້ນທໍາອິດ, ຖ້າມັນມີຢູ່.

3. ຕັ້ງຄ່າເປັນ 1 ຖ້າບັຟເຟີການແກ້ໄຂບໍ່ຫວ່າງເປົ່າ.

4. ຕັ້ງເປັນສູນ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຖອດຖອນ
Synopsis:
unm[ap][!] lhs

If '!' ຖືກຕື່ມໃສ່ກັບຊື່ຄໍາສັ່ງ, ແລະຖ້າ lhs ບໍ່ແມ່ນລາຍການໃນລາຍການຂໍ້ຄວາມ
ຄໍານິຍາມແຜນທີ່ຮູບແບບການປ້ອນຂໍ້ມູນ, ມັນຈະເປັນຄວາມຜິດພາດ. ຖ້າບໍ່ດັ່ງນັ້ນ, ລຶບ lhs ຈາກບັນຊີລາຍຊື່ຂອງ
ຄໍານິຍາມແຜນທີ່ຮູບແບບການປ້ອນຂໍ້ມູນ.

ຖ້າບໍ່ '!' ຖືກຕື່ມໃສ່ກັບຊື່ຄໍາສັ່ງ, ແລະຖ້າ lhs ບໍ່​ແມ່ນ​ການ​ເຂົ້າ​ໃນ​ບັນ​ຊີ​ລາຍ​ການ​ຂອງ​
ຄໍານິຍາມແຜນທີ່ຮູບແບບຄໍາສັ່ງ, ມັນຈະເປັນຄວາມຜິດພາດ. ຖ້າບໍ່ດັ່ງນັ້ນ, ລຶບ lhs ຈາກບັນຊີລາຍຊື່ຂອງ
ຄໍານິຍາມແຜນທີ່ຮູບແບບຄໍາສັ່ງ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

Version
Synopsis:
ve[ອານາຈັກ]

ຂຽນຂໍ້ຄວາມທີ່ມີຂໍ້ມູນສະບັບສໍາລັບບັນນາທິການ. ຮູບແບບຂອງຂໍ້ຄວາມ
ບໍ່ໄດ້ລະບຸ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

Visual
Synopsis:
[1 ຕື່ມ] vi[ຟ້ອງ][ປະເພດ][ນັບ][ທົງ]

If ex ປະຈຸບັນແມ່ນຢູ່ໃນຮູບແບບເປີດຫຼືສາຍຕາ, Synopsis ແລະພຶດຕິກໍາຂອງຄໍາສັ່ງສາຍຕາ
ຈະ​ເປັນ​ຄື​ກັນ​ກັບ​ ດັດແກ້ ຄໍາສັ່ງ, ຕາມທີ່ລະບຸໄວ້ໂດຍ ດັດແກ້.

ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ, ຄໍາ​ສັ່ງ​ນີ້​ບໍ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຢູ່​ໃນ​ສະ​ຖານ​ທີ່​ຮູບ​ແບບ block ຫຼື terminals ກັບ
ຄວາມສາມາດບໍ່ພຽງພໍ. ຖ້າການປ້ອນຂໍ້ມູນມາດຕະຖານ, ຜົນຜະລິດມາດຕະຖານ, ຫຼືຄວາມຜິດພາດມາດຕະຖານບໍ່ແມ່ນ
ອຸປະກອນຢູ່ປາຍຍອດ, ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ລະບຸ.

If ນັບ ແມ່ນລະບຸ, ມູນຄ່າຂອງ ປ່ອງຢ້ຽມ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ຖືກ​ຕັ້ງ​ເປັນ​ ນັບ (ເປັນ
ອະທິບາຍໃນ ປ່ອງຢ້ຽມ). ຖ້າວ່າ '^' ລັກ​ສະ​ນະ​ປະ​ເພດ​ຍັງ​ໄດ້​ລະ​ບຸ​ໄວ້​, ໄດ້​ ປ່ອງຢ້ຽມ ດັດແກ້
ທາງ​ເລືອກ​ຈະ​ຖືກ​ກໍາ​ນົດ​ກ່ອນ​ທີ່​ຈະ​ຖືກ​ນໍາ​ໃຊ້​ໂດຍ​ລັກ​ສະ​ນະ​ປະ​ເພດ​.

ເຂົ້າສູ່ໂໝດສາຍຕາ. ຖ້າ ປະເພດ ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, ມັນ​ຈະ​ເປັນ​ຖ້າ​ຫາກ​ວ່າ a ປະເພດ of '+' ແມ່ນ
ລະບຸ. ໄດ້ ປະເພດ ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ຜົນ​ກະ​ທົບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

+ ວາງຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນທີ່ກຳນົດໄວ້ຢູ່ເທິງສຸດຂອງຈໍສະແດງຜົນ.

- ວາງທ້າຍຂອງເສັ້ນທີ່ກໍານົດໄວ້ຢູ່ດ້ານລຸ່ມຂອງຈໍສະແດງຜົນ.

. ວາງຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນທີ່ລະບຸໄວ້ຢູ່ເຄິ່ງກາງຂອງຈໍສະແດງຜົນ.

^ ຖ້າເສັ້ນທີ່ກໍານົດແມ່ນຫນ້ອຍກວ່າຫຼືເທົ່າກັບຄ່າຂອງ ປ່ອງຢ້ຽມ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​,
ກໍານົດເສັ້ນເປັນ 1; ຖ້າບໍ່ດັ່ງນັ້ນ, ຫຼຸດລົງເສັ້ນໂດຍມູນຄ່າຂອງ ປ່ອງຢ້ຽມ ດັດແກ້
ທາງ ເລືອກ ລົບ 1. ເອົາ ຈຸດ ເລີ່ມ ຕົ້ນ ຂອງ ເສັ້ນ ນີ້ ເປັນ ໃກ້ ກັບ ລຸ່ມ ສຸດ ຂອງ
ສະແດງເສັ້ນທີ່ເປັນໄປໄດ້, ໃນຂະນະທີ່ຍັງສະແດງມູນຄ່າຂອງ ປ່ອງຢ້ຽມ ດັດແກ້
ຈໍານວນທາງເລືອກຂອງສາຍ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນເສັ້ນທີ່ລະບຸ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຂຽນ
Synopsis:
[2 ຕື່ມ] w[ພິທີ ກຳ][!][>>][ເອກະສານ]
[2 ຕື່ມ] w[ພິທີ ກຳ][!][ເອກະສານ]
[2 ຕື່ມ] wq[!][>>][ເອກະສານ]

ຖ້າບໍ່ມີເສັ້ນໃດຖືກລະບຸໄວ້, ເສັ້ນຈະເລີ່ມຕົ້ນເປັນໄຟລ໌ທັງໝົດ.

ຄໍາສັ່ງ wq ຈະເທົ່າກັບ a ຂຽນ ຄໍາສັ່ງປະຕິບັດຕາມໂດຍ a ເຊົາ ຄໍາສັ່ງ; wq!
ຈະເທົ່າກັບ ຂຽນ! ປະຕິບັດຕາມໂດຍ ເຊົາ. ໃນທັງສອງກໍລະນີ, ຖ້າຫາກວ່າ ຂຽນ ຄໍາສັ່ງ
ລົ້ມເຫລວ, ເຊົາ ຈະບໍ່ພະຍາຍາມ.

ຖ້າຊື່ຄໍາສັ່ງບໍ່ໄດ້ປະຕິບັດຕາມຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ ຕົວອັກສອນ, ຫຼື ເອກະສານ ບໍ່​ແມ່ນ
ນຳໜ້າດ້ວຍ ກ '!' ລັກສະນະ, ໄດ້ ຂຽນ ຈະເປັນໄຟລ໌.

1. ຖ້າທ >> argument ແມ່ນໄດ້ລະບຸໄວ້, ແລະໄຟລ໌ມີຢູ່ແລ້ວ, ສາຍຈະເປັນ
ຕື່ມໃສ່ກັບໄຟລ໌ແທນທີ່ຈະແທນທີ່ເນື້ອໃນຂອງມັນ. ຖ້າ >> ການໂຕ້ຖຽງແມ່ນ
ທີ່ລະບຸໄວ້, ແລະໄຟລ໌ບໍ່ມີຢູ່ແລ້ວ, ມັນບໍ່ໄດ້ຖືກລະບຸວ່າການຂຽນ
ຈະດໍາເນີນການຄືກັບວ່າ >> argument ບໍ່ໄດ້ຖືກລະບຸໄວ້ຫຼືຖ້າຫາກວ່າການຂຽນຈະລົ້ມເຫລວ.

2. ຖ້າທ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ກໍາ​ນົດ (ເບິ່ງ​ ອ່ານ​ຢ່າງ​ດຽວ), the ຂຽນ ຈະລົ້ມເຫລວ.

3 If ເອກະສານ ຖືກກໍານົດ, ແລະບໍ່ແມ່ນຊື່ເສັ້ນທາງໃນປະຈຸບັນ, ແລະໄຟລ໌ທີ່ມີຢູ່, the ຂຽນ
ຈະລົ້ມເຫລວ.

4 If ເອກະສານ ບໍ່ໄດ້ລະບຸໄວ້, ຊື່ເສັ້ນທາງປະຈຸບັນຈະຖືກນໍາໃຊ້. ຖ້າບໍ່ມີປະຈຸບັນ
ຊື່ເສັ້ນທາງ, ໄດ້ ຂຽນ ຄໍາສັ່ງຈະລົ້ມເຫລວ.

5. ຖ້າຊື່ເສັ້ນທາງປະຈຸບັນຖືກນໍາໃຊ້, ແລະຊື່ເສັ້ນທາງປະຈຸບັນໄດ້ຖືກປ່ຽນໂດຍ ເອກະສານ
or ອ່ານ ຄໍາສັ່ງ, ແລະໄຟລ໌ທີ່ມີຢູ່, the ຂຽນ ຈະລົ້ມເຫລວ. ຖ້າ ຂຽນ is
ສົບຜົນສໍາເລັດ, ຕໍ່ມາ ຂຽນs ຈະບໍ່ລົ້ມເຫລວສໍາລັບເຫດຜົນນີ້ (ເວັ້ນເສຍແຕ່ວ່າປະຈຸບັນ
ຊື່ເສັ້ນທາງຖືກປ່ຽນອີກເທື່ອຫນຶ່ງ).

6. ຖ້າ​ຫາກ​ວ່າ​ການ​ດັດ​ແກ້​ທັງ​ຫມົດ​ແມ່ນ​ບໍ່​ໄດ້​ຖືກ​ລາຍ​ລັກ​ອັກ​ສອນ​, ແລະ​ໄຟລ​໌​ທີ່​ຈະ​ຂຽນ​ມີ​ຢູ່​, ໄດ້​
ຂຽນ ຈະລົ້ມເຫລວ.

ສໍາລັບກົດລະບຽບ 1., 2., 3., ແລະ 5., the ຂຽນ ສາມາດຖືກບັງຄັບໂດຍການເພີ່ມລັກສະນະ '!' to
ຊື່ຄໍາສັ່ງ.

ສໍາລັບກົດລະບຽບ 2., 3., ແລະ 5., the ຂຽນ ສາມາດຖືກບັງຄັບໂດຍການຕັ້ງຄ່າ ຂຽນໄດ້ ແກ້ໄຂທາງເລືອກ.

ເພີ່ມ​ເຕີມ, ການ​ທົດ​ສອບ​ການ​ປະ​ຕິ​ບັດ​ທີ່​ກໍາ​ນົດ​ໄວ້​ອາດ​ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ ຂຽນ to fail

ຖ້າການແກ້ໄຂ buffer ຫວ່າງເປົ່າ, ໄຟລ໌ທີ່ບໍ່ມີເນື້ອຫາໃດໆຈະຖືກຂຽນ.

ຂໍ້​ຄວາມ​ໃຫ້​ຂໍ້​ມູນ​ຈະ​ໄດ້​ຮັບ​ການ​ລາຍ​ລັກ​ອັກ​ສອນ​ຈໍາ​ນວນ​ຂອງ​ເສັ້ນ​ແລະ​ໄບ​ຕ​໌​ຂຽນ​.

ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງຖືກປະຕິບັດຕາມຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ ຕົວອັກສອນ, ແລະໄຟລ໌ແມ່ນ
ນຳໜ້າໂດຍ '!', ສ່ວນທີ່ເຫຼືອຂອງເສັ້ນຫຼັງຈາກ '!' ຈະຕ້ອງມີ '%', '#', ແລະ '!'
ຕົວອັກສອນທີ່ຂະຫຍາຍອອກຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex.

ໄດ້ ex utility ຫຼັງ​ຈາກ​ນັ້ນ​ຈະ​ຜ່ານ​ສອງ​ການ​ໂຕ້​ຖຽງ​ກັບ​ໂຄງ​ການ​ທີ່​ມີ​ຊື່​ໂດຍ​ ຫອຍ ດັດແກ້
ທາງເລືອກ; ທໍາອິດຈະເປັນ −ຄ ແລະອັນທີສອງຈະເປັນການໂຕ້ຖຽງທີ່ຂະຫຍາຍອອກໄປ ຂຽນ
ຄໍາສັ່ງເປັນການໂຕ້ຖຽງດຽວ. ເສັ້ນທີ່ລະບຸໄວ້ຈະຖືກຂຽນໃສ່ການປ້ອນຂໍ້ມູນມາດຕະຖານ
ຂອງ​ຄໍາ​ສັ່ງ​. ຄວາມຜິດພາດມາດຕະຖານແລະຜົນຜະລິດມາດຕະຖານຂອງໂຄງການ, ຖ້າມີ, ຈະເປັນ
ລາຍ​ລັກ​ອັກ​ສອນ​ທີ່​ອະ​ທິ​ບາຍ​ສໍາ​ລັບ​ການ​ ພິມ ຄໍາສັ່ງ. ຖ້າຕົວອັກສອນສຸດທ້າຍໃນຜົນຜະລິດນັ້ນບໍ່ແມ່ນ a
, ກ ຈະຖືກຂຽນໄວ້ໃນຕອນທ້າຍຂອງຜົນໄດ້ຮັບ.

ຄວາມ​ຫມາຍ​ພິ​ເສດ​ຂອງ​ '!' ດັ່ງຕໍ່ໄປນີ້ ຂຽນ ຄໍາສັ່ງສາມາດ overridden ໂດຍການຫລົບຫນີ
ມັນກັບ a ລັກສະນະ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ຂຽນ ແລະ ການທ່ອງທ່ຽວ
Synopsis:
[2 ຕື່ມ] x[it][!][ເອກະສານ]

ຖ້າ​ຫາກ​ວ່າ​ການ​ແກ້​ໄຂ buffer ບໍ່​ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​ນັບ​ຕັ້ງ​ແຕ່​ສໍາ​ເລັດ​ສຸດ​ທ້າຍ​ ຂຽນ, xit ຈະເປັນ
ທຽບເທົ່າກັບ ເຊົາ ຄໍາສັ່ງ, ຫຼືຖ້າຫາກວ່າ a '!' ຖືກຕໍ່ທ້າຍກັບຊື່ຄໍາສັ່ງ, to ເຊົາ!.

ຖ້າບໍ່ດັ່ງນັ້ນ, xit ຈະເທົ່າກັບ wq ຄໍາສັ່ງ, ຫຼືຖ້າຫາກວ່າ a '!' ຖືກຕໍ່ທ້າຍກັບ
ຊື່ຄໍາສັ່ງ, to wq!.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ຍອງ
Synopsis:
[2 ຕື່ມ] ya[nk][buffer][ນັບ]

ຄັດລອກເສັ້ນທີ່ລະບຸໄວ້ໃນ buffer ທີ່ລະບຸ (ໂດຍຄ່າເລີ່ມຕົ້ນ, buffer ທີ່ບໍ່ມີຊື່), ເຊິ່ງ
ຈະກາຍເປັນ buffer ຮູບແບບເສັ້ນ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ປັບ ວິນ​ໂດ
Synopsis:
[1 ຕື່ມ] z[!][ປະເພດ ...][ນັບ][ທົງ]

ຖ້າບໍ່ມີເສັ້ນຖືກລະບຸ, ເສັ້ນປະຈຸບັນຈະເປັນຄ່າເລີ່ມຕົ້ນ; ຖ້າ ປະເພດ ຖືກລະເວັ້ນເປັນ
ດີ, ມູນຄ່າເສັ້ນປະຈຸບັນທໍາອິດຈະຖືກເພີ່ມຂຶ້ນໂດຍ 1. ຖ້າເພີ່ມປະຈຸບັນ
ເສັ້ນຈະເຮັດໃຫ້ມັນໃຫຍ່ກວ່າເສັ້ນສຸດທ້າຍໃນການແກ້ໄຂບັຟເຟີ, ມັນຈະເປັນ
ຜິດພາດ.

ຖ້າມີ ລັກສະນະລະຫວ່າງ ປະເພດ ການໂຕ້ຖຽງແລະກ່ອນຫນ້າ z ຊື່ຄໍາສັ່ງ
ຫຼືທາງເລືອກ '!' ລັກສະນະ, ມັນຈະເປັນຄວາມຜິດພາດ.

If ນັບ ແມ່ນລະບຸ, ມູນຄ່າຂອງ ປ່ອງຢ້ຽມ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ຖືກ​ຕັ້ງ​ເປັນ​ ນັບ (ເປັນ
ອະທິບາຍໃນ ປ່ອງຢ້ຽມ) ຖ້າຫາກວ່າ ນັບ ຖືກລະເວັ້ນ, ມັນຈະເປັນຄ່າເລີ່ມຕົ້ນເປັນ 2 ເທົ່າຂອງມູນຄ່າ
ເລື່ອນ ແກ້ໄຂທາງເລືອກ, ຫຼືຖ້າ ! ໄດ້​ລະ​ບຸ​ໄວ້​, ຈໍາ​ນວນ​ຂອງ​ເສັ້ນ​ໃນ​ການ​ສະ​ແດງ​ຜົນ​ລົບ 1​.

If ປະເພດ ຖືກລະເວັ້ນ, ຈາກນັ້ນ ນັບ ເສັ້ນທີ່ເລີ່ມຕົ້ນດ້ວຍເສັ້ນທີ່ກໍານົດຈະຖືກຂຽນ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ນັບ ສາຍເລີ່ມຕົ້ນດ້ວຍເສັ້ນທີ່ລະບຸໄວ້ໂດຍ ປະເພດ ການໂຕ້ຖຽງຈະເປັນ
ຂຽນ.

ໄດ້ ປະເພດ ການໂຕ້ຖຽງຈະຕ້ອງປ່ຽນເສັ້ນທີ່ຈະຂຽນ. ຄຸນຄ່າທີ່ເປັນໄປໄດ້ຂອງ ປະເພດ ແມ່ນເປັນ
ຕໍ່ໄປນີ້:

- ເສັ້ນ​ທີ່​ກໍາ​ນົດ​ໄວ້​ຈະ​ຖືກ​ຫຼຸດ​ລົງ​ໂດຍ​ຄ່າ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

(((ຈໍານວນ of ``−'' ຕົວອັກສອນ) x ນັບ) −1)

ຖ້າການຄິດໄລ່ຈະສົ່ງຜົນໃຫ້ຕົວເລກໜ້ອຍກວ່າ 1, ມັນຈະເປັນຄວາມຜິດພາດ. ຂຽນ
ເສັ້ນຈາກການແກ້ໄຂ buffer, ເລີ່ມຕົ້ນຈາກຄ່າໃຫມ່ຂອງເສັ້ນ, ຈົນກ່ວາ ນັບ ສາຍ ຫຼື
ແຖວສຸດທ້າຍໃນການແກ້ໄຂ buffer ໄດ້ຖືກຂຽນໄວ້.

+ ເສັ້ນ​ທີ່​ລະ​ບຸ​ໄວ້​ຈະ​ໄດ້​ຮັບ​ການ​ເພີ່ມ​ຂຶ້ນ​ໂດຍ​ມູນ​ຄ່າ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

(((ຈໍານວນ of ``+'' ຕົວອັກສອນ) −1) x ນັບ) +1

ຖ້າການຄິດໄລ່ຈະສົ່ງຜົນໃຫ້ຕົວເລກໃຫຍ່ກວ່າແຖວສຸດທ້າຍໃນການແກ້ໄຂ
buffer, ມັນຈະເປັນຄວາມຜິດພາດ. ຂຽນເສັ້ນຈາກການແກ້ໄຂ buffer, ເລີ່ມຕົ້ນທີ່ໃຫມ່
ຄ່າຂອງເສັ້ນ, ຈົນກ່ວາ ນັບ ເສັ້ນຫຼືເສັ້ນສຸດທ້າຍໃນການແກ້ໄຂ buffer ໄດ້
ຂຽນ.

=,. ຖ້າຫຼາຍກວ່າດຽວ '.' or '=' ຖືກກໍານົດ, ມັນຈະເປັນຄວາມຜິດພາດ. ຕໍ່ໄປນີ້
ຂັ້ນ​ຕອນ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​:

1 If ນັບ ແມ່ນສູນ, ບໍ່ມີຫຍັງຈະຂຽນ.

2. ຂຽນເປັນຈໍານວນຫຼາຍຂອງ N ແຖວກ່ອນເສັ້ນປະຈຸບັນໃນການແກ້ໄຂ buffer ເປັນ
ມີຢູ່. ຖ້າ ນັບ or '!' ໄດ້​ລະ​ບຸ​ໄວ້​, N ຈະເປັນ:

(ນັບ −1) /2

ຖ້າບໍ່ດັ່ງນັ້ນ, N ຈະເປັນ:

(ນັບ −3) /2

If N ແມ່ນຕົວເລກທີ່ນ້ອຍກວ່າ 3, ບໍ່ມີແຖວໃດຖືກຂຽນ.

3 If '=' ໄດ້​ລະ​ບຸ​ໄວ້​ເປັນ​ລັກ​ສະ​ນະ​ປະ​ເພດ​, ຂຽນ​ເສັ້ນ​ປະ​ກອບ​ດ້ວຍ​
ນ້ອຍກວ່າຂອງຈຳນວນຖັນໃນຈໍສະແດງຜົນແບ່ງອອກດ້ວຍສອງ, ຫຼື 40 '−'
ລັກສະນະ.

4. ຂຽນເສັ້ນປະຈຸບັນ.

5. ເຮັດຊ້ຳຂັ້ນຕອນທີ 3.

6. ຂຽນເປັນຈໍານວນຫຼາຍຂອງ N ແຖວຫຼັງຈາກເສັ້ນປະຈຸບັນໃນການແກ້ໄຂ buffer ທີ່ມີຢູ່.
N ຈະຖືກກໍານົດໄວ້ໃນຂັ້ນຕອນ 2. ຖ້າ N ແມ່ນຕົວເລກທີ່ນ້ອຍກວ່າ 3, ບໍ່ມີສາຍ
ຂຽນ. ຖ້າ ນັບ ຫນ້ອຍກວ່າ 3, ບໍ່ມີເສັ້ນຖືກຂຽນ.

^ ເສັ້ນ​ທີ່​ລະ​ບຸ​ໄວ້​ຈະ​ຖືກ​ຫຼຸດ​ລົງ​ໂດຍ​ຄ່າ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

(((ຈໍານວນ of ``^'' ຕົວອັກສອນ) +1) x ນັບ) −1

ຖ້າການຄິດໄລ່ຈະສົ່ງຜົນໃຫ້ຕົວເລກໜ້ອຍກວ່າ 1, ມັນຈະເປັນຄວາມຜິດພາດ. ຂຽນ
ເສັ້ນຈາກການແກ້ໄຂ buffer, ເລີ່ມຕົ້ນຈາກຄ່າໃຫມ່ຂອງເສັ້ນ, ຈົນກ່ວາ ນັບ ສາຍ ຫຼື
ແຖວສຸດທ້າຍໃນການແກ້ໄຂ buffer ໄດ້ຖືກຂຽນໄວ້.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍທີ່ຂຽນ, ເວັ້ນເສຍແຕ່ວ່າປະເພດ =, ໃນກໍລະນີໃດກໍ່ຕາມ, ກໍານົດເປັນ
ເສັ້ນ​ທີ່​ລະ​ບຸ​ໄວ້​.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

Escape
Synopsis:
! ຄໍາສັ່ງ
[ສິ່ງເສບຕິດ]! ຄໍາສັ່ງ

ເນື້ອໃນຂອງສາຍຫຼັງຈາກ '!' ຈະຕ້ອງມີ '%', '#', ແລະ '!' ຂະຫຍາຍຕົວອັກສອນ
ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex. ຖ້າການຂະຫຍາຍເຮັດໃຫ້ຂໍ້ຄວາມຂອງເສັ້ນ
ການປ່ຽນແປງ, ມັນຈະຖືກສະແດງຄືນໃຫມ່, ກ່ອນຫນ້າດ້ວຍອັນດຽວ '!' ລັກສະນະ.

ໄດ້ ex utility ຈະດໍາເນີນການໂຄງການທີ່ມີຊື່ໂດຍ ຫອຍ ແກ້ໄຂທາງເລືອກ. ມັນຈະຜ່ານສອງ
ການໂຕ້ຖຽງກັບໂຄງການ; ທໍາອິດຈະເປັນ −ຄ, ແລະອັນທີສອງຈະເປັນການຂະຫຍາຍ
ການໂຕ້ຖຽງກັບ ! ຄໍາສັ່ງເປັນການໂຕ້ຖຽງດຽວ.

ຖ້າບໍ່ມີເສັ້ນຖືກລະບຸ, ວັດສະດຸປ້ອນມາດຕະຖານ, ຜົນຜະລິດມາດຕະຖານ, ແລະຄວາມຜິດພາດມາດຕະຖານຂອງ
ໂຄງ​ການ​ຈະ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​ຄ່າ​ມາດ​ຕະ​ຖານ​ການ​ປ້ອນ​ຂໍ້​ມູນ​, ຜົນ​ຜະ​ລິດ​ມາດ​ຕະ​ຖານ​, ແລະ​ຄວາມ​ຜິດ​ພາດ​ມາດ​ຕະ​ຖານ​ຂອງ​ ex
ໂຄງ​ການ​ໃນ​ເວ​ລາ​ທີ່​ມັນ​ໄດ້​ຖືກ​ຮຽກ​ຮ້ອງ​. ນອກຈາກນັ້ນ, ຂໍ້ຄວາມເຕືອນຈະຖືກຂຽນຖ້າມີການແກ້ໄຂ
buffer ໄດ້​ຖືກ​ດັດ​ແກ້​ນັບ​ຕັ້ງ​ແຕ່​ການ​ຂຽນ​ສໍາ​ເລັດ​ສຸດ​ທ້າຍ​, ແລະ​ ເຕືອນ ຕົວເລືອກການແກ້ໄຂຖືກຕັ້ງ.

ຖ້າ​ຫາກ​ວ່າ​ເສັ້ນ​ແມ່ນ​ໄດ້​ລະ​ບຸ​ໄວ້​, ພວກ​ເຂົາ​ເຈົ້າ​ຈະ​ໄດ້​ຮັບ​ການ​ສົ່ງ​ຕໍ່​ໂຄງ​ການ​ເປັນ​ມາດ​ຕະ​ຖານ​ການ​ປ້ອນ​ຂໍ້​ມູນ​, ແລະ​
ຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດມາດຕະຖານຂອງໂຄງການຈະປ່ຽນສາຍເຫຼົ່ານັ້ນໃນການແກ້ໄຂ
ບັຟເຟີ. ແຕ່​ລະ​ແຖວ​ໃນ​ຜົນ​ຜະ​ລິດ​ຂອງ​ໂຄງ​ການ (ຕາມ​ທີ່ delimited ໂດຍ ຕົວອັກສອນຫຼືທ້າຍ
ຂອງຜົນຜະລິດຖ້າຫາກວ່າມັນບໍ່ໄດ້ຖືກນໍາຫນ້າທັນທີໂດຍ a ), ຈະເປັນເສັ້ນແຍກຕ່າງຫາກ
ໃນ buffer ການແກ້ໄຂ. ປະກົດການໃດໆຂອງ ແລະ ຄູ່ໃນຜົນຜະລິດ
ຈະຖືກປະຕິບັດເປັນໂສດ ຕົວລະຄອນ. ເສັ້ນທີ່ກໍານົດຈະຖືກຄັດລອກໃສ່
buffer ທີ່​ບໍ່​ມີ​ຊື່​ກ່ອນ​ທີ່​ພວກ​ເຂົາ​ເຈົ້າ​ຈະ​ໄດ້​ຮັບ​ການ​ທົດ​ແທນ​, ແລະ buffer ທີ່​ບໍ່​ມີ​ຊື່​ຈະ​ກາຍ​ເປັນ​ເສັ້ນ -
ໂໝດ buffer.

ຖ້າຢູ່ໃນ ex ໂຫມດ, ດຽວ '!' ຕົວອັກສອນຈະຖືກຂຽນເມື່ອໂຄງການສໍາເລັດ.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຫອຍ ແລະ ເຕືອນ ແກ້ໄຂທາງເລືອກ. ຖ້າບໍ່ມີສາຍ
ລະບຸໄວ້, ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ຂຽນອັດຕະໂນມັດ ແລະ ຂຽນໄດ້ ແກ້ໄຂທາງເລືອກ. ຖ້າ
ເສັ້ນຖືກລະບຸໄວ້, ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ພິມອັດຕະໂນມັດ ແກ້ໄຂທາງເລືອກ.

ປັດຈຸບັນ ອອນໄລນ໌:

1. ຖ້າບໍ່ມີສາຍຖືກລະບຸ, ບໍ່ປ່ຽນແປງ.

2. ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ຕັ້ງເປັນແຖວສຸດທ້າຍທີ່ອ່ານຢູ່ໃນ, ຖ້າສາຍໃດຖືກອ່ານຢູ່ໃນ.

3. ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ກໍາ​ນົດ​ເປັນ​ເສັ້ນ​ກ່ອນ​ທີ່​ຈະ​ເສັ້ນ​ທໍາ​ອິດ​ຂອງ​ເສັ້ນ​ທີ່​ກໍາ​ນົດ​ໄວ້​, ຖ້າ​ຫາກ​ວ່າ​ເສັ້ນ​ນັ້ນ​
ລາຄາ:.

4. ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ຕັ້ງເປັນແຖວທຳອິດຂອງ buffer ແກ້ໄຂ ຖ້າ buffer ແກ້ໄຂບໍ່ຫວ່າງ.

5. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັ້ງເປັນສູນ.

ປັດຈຸບັນ ຖັນ: ຖ້າບໍ່ມີສາຍຖືກລະບຸ, ບໍ່ປ່ຽນແປງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັ້ງເປັນບໍ່ແມ່ນ. .

ການປ່ຽນແປງ ໄວ້
Synopsis:
[2 ຕື່ມ] <[<...][ນັບ][ທົງ]

ເລື່ອນສາຍທີ່ລະບຸໄວ້ເປັນຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນ; ຈໍານວນຕໍາແຫນ່ງຖັນທີ່ຈະເປັນ
shifted ຈະເປັນຈໍານວນຕົວອັກສອນຄໍາສັ່ງເທົ່າກັບມູນຄ່າຂອງ shiftwidth ດັດແກ້
ທາງເລືອກ. ພຽງແຕ່ນໍາພາ ຕົວອັກສອນຈະຖືກລຶບ ຫຼືປ່ຽນເປັນຕົວອື່ນໆ
ຕົວລະຄອນໃນການເຄື່ອນຍ້າຍ; ຕົວລະຄອນອື່ນຈະບໍ່ໄດ້ຮັບຜົນກະທົບ.

ເສັ້ນ​ທີ່​ຈະ​ປ່ຽນ​ຈະ​ຖືກ​ຄັດ​ລອກ​ໄປ​ໃນ buffer ທີ່​ບໍ່​ມີ​ຊື່​, ຊຶ່ງ​ຈະ​ກາຍ​ເປັນ​ເສັ້ນ -
ໂໝດ buffer.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ພິມອັດຕະໂນມັດ ແກ້ໄຂທາງເລືອກ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍໃນແຖວທີ່ລະບຸ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ການປ່ຽນແປງ ສິດ
Synopsis:
[2 ຕື່ມ] >[> ...][ນັບ][ທົງ]

ປ່ຽນເສັ້ນທີ່ລະບຸໄວ້ຫ່າງຈາກຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນ; ຈໍາ​ນວນ​ຕໍາ​ແຫນ່ງ​ຖັນ​
ທີ່ຈະປ່ຽນຈະເປັນຕົວເລກຂອງຕົວອັກສອນຄໍາສັ່ງເທົ່າກັບມູນຄ່າຂອງ shiftwidth
ແກ້ໄຂທາງເລືອກ. ການປ່ຽນແປງຈະສໍາເລັດໂດຍການເພີ່ມ ຕົວອັກສອນເປັນຄໍານໍາຫນ້າ
ເສັ້ນຫຼືການປ່ຽນແປງຜູ້ນໍາ ລັກສະນະອື່ນໆ ຕົວລະຄອນ. ສາຍເປົ່າ
ຈະບໍ່ມີການປ່ຽນແປງ.

ເສັ້ນ​ທີ່​ຈະ​ປ່ຽນ​ຈະ​ຖືກ​ຄັດ​ລອກ​ໄປ​ໃນ buffer ທີ່​ບໍ່​ມີ​ຊື່​, ຊຶ່ງ​ຈະ​ກາຍ​ເປັນ​ເສັ້ນ -
ໂໝດ buffer.

ຄໍາສັ່ງນີ້ຈະໄດ້ຮັບຜົນກະທົບຈາກ ພິມອັດຕະໂນມັດ ແກ້ໄຂທາງເລືອກ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍໃນແຖວທີ່ລະບຸ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

-D
Synopsis:
-D

ຂຽນຕໍ່ໄປ n ສາຍ, ບ່ອນທີ່ n ແມ່ນຕໍາ່ສຸດທີ່ຂອງຄ່າຂອງ ເລື່ອນ ແກ້ໄຂທາງເລືອກແລະ
ຈໍານວນແຖວຫຼັງຈາກເສັ້ນປະຈຸບັນໃນ buffer ແກ້ໄຂ. ຖ້າເສັ້ນປະຈຸບັນແມ່ນ
ແຖວສຸດທ້າຍຂອງການແກ້ໄຂ buffer ມັນຈະເປັນຂໍ້ຜິດພາດ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕັ້ງເປັນແຖວສຸດທ້າຍທີ່ຂຽນ.

ປັດຈຸບັນ ຖັນ: ຕັ້ງ​ເປັນ​ບໍ່​ແມ່ນ .

ຂຽນ ອອນໄລນ໌ ຈໍານວນ
Synopsis:
[1 ຕື່ມ] = [ທົງ]

If ອອນໄລນ໌ ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, ມັນ​ຈະ​ເປັນ​ຄ່າ​ເລີ່ມ​ຕົ້ນ​ກັບ​ແຖວ​ສຸດ​ທ້າຍ​ໃນ​ການ​ແກ້​ໄຂ buffer​. ຂຽນ
ຈໍານວນແຖວຂອງເສັ້ນທີ່ກໍານົດ.

ປັດຈຸບັນ ອອນໄລນ໌: ບໍ່ປ່ຽນແປງ.

ປັດຈຸບັນ ຖັນ: ບໍ່ປ່ຽນແປງ.

ປະຕິບັດ
Synopsis:
[2 ຕື່ມ] @ buffer
[2 ຕື່ມ] * buffer

ຖ້າບໍ່ມີການລະບຸ buffer ຫຼືຖືກລະບຸເປັນ '@' or '*', buffer ສຸດ​ທ້າຍ​ປະ​ຕິ​ບັດ​ຈະ​ເປັນ​
ໃຊ້. ຖ້າບໍ່ມີ buffer ທີ່ຜ່ານມາໄດ້ຖືກປະຕິບັດ, ມັນຈະເປັນຄວາມຜິດພາດ.

ສໍາລັບແຕ່ລະເສັ້ນທີ່ລະບຸໄວ້ໂດຍທີ່ຢູ່, ກໍານົດເສັ້ນປະຈຸບັນ ('.') ທີ່​ກໍາ​ນົດ​ໄວ້​
ເສັ້ນ, ແລະປະຕິບັດເນື້ອໃນຂອງຊື່ buffer (ຍ້ອນວ່າພວກເຂົາຢູ່ໃນເວລານັ້ນ @ ຄໍາສັ່ງ
ໄດ້ຖືກປະຕິບັດ) ເປັນ ex ຄໍາສັ່ງ. ສໍາລັບແຕ່ລະເສັ້ນຂອງ buffer ຮູບແບບເສັ້ນ, ແລະທັງຫມົດແຕ່ສຸດທ້າຍ
ແຖວຂອງ buffer ຮູບແບບລັກສະນະ, ໄດ້ ex parser ຄໍາສັ່ງຈະປະຕິບັດຄືກັບວ່າເສັ້ນແມ່ນ
ສິ້ນສຸດໂດຍ ກ .

ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນໃນລະຫວ່າງຂະບວນການນີ້, ຫຼືເສັ້ນທີ່ລະບຸໄວ້ໂດຍທີ່ຢູ່ບໍ່ໄດ້
ມີຢູ່ໃນເວລາທີ່ເສັ້ນປະຈຸບັນຈະຖືກຕັ້ງເປັນມັນ, ຫຼືຫຼາຍກວ່າເສັ້ນດຽວແມ່ນຖືກກໍານົດ
ໂດຍທີ່ຢູ່, ແລະເນື້ອໃນຂອງການແກ້ໄຂ buffer ຈະຖືກແທນທີ່ (ຕົວຢ່າງ, ໂດຍ ex
:ດັດແກ້ ຄໍາ​ສັ່ງ​) ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ຈະ​ໄດ້​ຮັບ​ການ​ລາຍ​ລັກ​ອັກ​ສອນ​, ແລະ​ບໍ່​ມີ​ຄໍາ​ສັ່ງ​ທີ່​ເປັນ​ຜົນ​ມາ​ຈາກ​
ການປະຕິບັດຄໍາສັ່ງນີ້ຈະຖືກດໍາເນີນການ.

ປັດຈຸບັນ ອອນໄລນ໌: ຕາມທີ່ລະບຸໄວ້ສໍາລັບບຸກຄົນ ex ຄຳ ສັ່ງ.

ປັດຈຸບັນ ຖັນ: ຕາມທີ່ລະບຸໄວ້ສໍາລັບບຸກຄົນ ex ຄຳ ສັ່ງ.

ເປັນປົກກະຕິ ສຳ ນວນ in ex
ໄດ້ ex ຜົນປະໂຫຍດຈະຕ້ອງສະຫນັບສະຫນູນການສະແດງອອກປົກກະຕິທີ່ເປັນ superset ຂອງປົກກະຕິພື້ນຖານ
ການສະແດງອອກທີ່ອະທິບາຍໄວ້ໃນປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 9.3, ພື້ນຖານ
ເປັນປົກກະຕິ ສຳ ນວນ. ການສະແດງອອກປົກກະຕິ null ("//") ຈະເທົ່າກັບອັນສຸດທ້າຍ
ການສະແດງອອກປົກກະຕິ.

ການສະແດງອອກປົກກະຕິສາມາດຖືກນໍາໃຊ້ໃນທີ່ຢູ່ເພື່ອກໍານົດເສັ້ນແລະ, ໃນບາງຄໍາສັ່ງ (ສໍາລັບ
ຍົກຕົວຢ່າງ, the ທົດແທນ command), ເພື່ອລະບຸສ່ວນຂອງເສັ້ນທີ່ຈະປ່ຽນແທນ.

ໂຄງສ້າງຕໍ່ໄປນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອເສີມຂະຫຍາຍການສະແດງອອກປົກກະຕິພື້ນຖານ:

\< ກົງກັບຈຸດເລີ່ມຕົ້ນຂອງ a ຄໍາ. (ເບິ່ງຄໍານິຍາມຂອງ ຄໍາ ໃນຕອນຕົ້ນຂອງ
ຄໍາສັ່ງ ຄໍາອະທິບາຍ in ex.)

\> ຈັບຄູ່ທ້າຍຂອງ a ຄໍາ.

~ ຈັບຄູ່ສ່ວນທົດແທນຂອງສຸດທ້າຍ ທົດແທນ ຄໍາສັ່ງ. ໄດ້ ('~')
ລັກສະນະສາມາດຖືກຫລົບຫນີໃນການສະແດງອອກປົກກະຕິເພື່ອກາຍເປັນລັກສະນະປົກກະຕິທີ່ມີ
ບໍ່​ມີ​ຄວາມ​ຫມາຍ​ພິ​ເສດ​. ໄດ້ ຈະຖືກຍົກເລີກ.

ເມື່ອຕົວເລືອກບັນນາທິການ magic ບໍ່ໄດ້ຖືກກໍານົດ, ຕົວອັກສອນທີ່ມີຄວາມຫມາຍພິເສດເທົ່ານັ້ນ
be '^' ໃນຕອນຕົ້ນຂອງຮູບແບບ, '$' ໃນຕອນທ້າຍຂອງຮູບແບບ, ແລະ . ໄດ້
ລັກສະນະ '.', '*', '[', ແລະ '~' ຈະຖືກປະຕິບັດເປັນຕົວລະຄອນທຳມະດາ ເວັ້ນເສຍແຕ່ວ່າມີມາກ່ອນ
ໂດຍ ກ ; ເມື່ອນຳໜ້າດ້ວຍ ກ ພວກ​ເຂົາ​ເຈົ້າ​ຈະ​ໄດ້​ຮັບ​ຄວາມ​ຫມາຍ​ພິ​ເສດ​ຂອງ​ເຂົາ​ເຈົ້າ​,
ຫຼືໃນກໍລະນີຂອງ , ຖືກຈັດການເປັນອັນດຽວ . ຕົວລະຄອນ
ໃຊ້ເພື່ອຫລົບຫນີຕົວລະຄອນອື່ນຈະຖືກຍົກເລີກ.

ການທົດແທນ Strings in ex
ລັກສະນະ '&' ('\&' ຖ້າຕົວເລືອກບັນນາທິການ magic ບໍ່ໄດ້ຕັ້ງ) ໃນສະຕຣິງທົດແທນ
ຈະຕ້ອງຢືນຢູ່ກັບຂໍ້ຄວາມທີ່ກົງກັບຮູບແບບທີ່ຈະປ່ຽນແທນ. ລັກສະນະ '~' ('\~' if
magic ບໍ່ໄດ້ຕັ້ງ) ຈະຖືກແທນທີ່ດ້ວຍສ່ວນທົດແທນຂອງກ່ອນຫນ້ານີ້ ທົດແທນ
ຄໍາສັ່ງ. ລໍາດັບ '\n', ບ່ອນທີ່ n ເປັນຈຳນວນເຕັມ, ຈະຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມທີ່ກົງກັນ
ໂດຍການສະແດງອອກຂອງ back-reference ທີ່ສອດຄ້ອງກັນ. ຖ້າ​ຫາກ​ວ່າ​ທີ່​ສອດ​ຄ້ອງ​ກັນ​ກັບ​ຄືນ​ໄປ​ບ່ອນ​ອ້າງ​ອີງ​
ການສະແດງອອກບໍ່ກົງກັນ, ຫຼັງຈາກນັ້ນຕົວອັກສອນ '\n' ຈະຖືກແທນທີ່ດ້ວຍສາຍທີ່ຫວ່າງເປົ່າ.

ຊ່ອຍແນ່ '\l', '\u', '\L', ແລະ '\U' ສາມາດໃຊ້ເພື່ອດັດແປງກໍລະນີຂອງອົງປະກອບໃນ
string ແທນ (ການ​ນໍາ​ໃຊ້​ '\&' or "\"digit) notation. ຊ່ອຍແນ່ '\l' ('\u') ຈະ
ເຮັດ​ໃຫ້​ຕົວ​ອັກ​ສອນ​ທີ່​ຕໍ່​ໄປ​ນີ້​ຈະ​ປ່ຽນ​ເປັນ​ຕົວ​ພິມ​ນ້ອຍ (ຕົວ​ພິມ​ໃຫຍ່​)​. ຊ່ອຍແນ່ '\L'
('\U') ຈະເຮັດໃຫ້ຕົວອັກສອນທັງໝົດທີ່ຕາມມາຂອງມັນຖືກປ່ຽນເປັນຕົວພິມນ້ອຍ
(ຕົວພິມໃຫຍ່) ຍ້ອນວ່າພວກມັນຖືກໃສ່ໂດຍການປ່ຽນແທນຈົນກ່ວາສາຍ '\e' or '\E', ຫຼື
ສິ້ນສຸດການທົດແທນ, ແມ່ນພົບ.

ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຕົວ​ອັກ​ສອນ​ໃດ​ຫນຶ່ງ​ທີ່​ຕິດ​ຕາມ a ຈະຖືກປະຕິບັດເປັນຕົວຫນັງສືນັ້ນ
ລັກສະນະ, ແລະການຫລົບຫນີ ຈະຖືກຍົກເລີກ.

ຕົວຢ່າງຂອງການປ່ຽນກໍລະນີກັບ the s ຄໍາ​ສັ່ງ​ແມ່ນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

:p
ໄດ້ cat ນັ່ງ on ໄດ້ ຜ້າປູພື້ນ.
:s/\<.at\>/\u&/gp
ໄດ້ ແມວ ເສົາ on ໄດ້ ອາຫານ.
:s/S\.*\)M/S\U\1\eM/p
ໄດ້ ແມວ SAT ON ການ ອາຫານ.

ດັດແກ້ ທາງເລືອກໃນການ in ex
ໄດ້ ex ຜົນປະໂຫຍດມີຈໍານວນທາງເລືອກທີ່ດັດແປງພຶດຕິກໍາຂອງມັນ. ທາງເລືອກເຫຼົ່ານີ້ມີ
ການຕັ້ງຄ່າເລີ່ມຕົ້ນ, ເຊິ່ງສາມາດປ່ຽນແປງໄດ້ໂດຍໃຊ້ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ.

ຕົວເລືອກແມ່ນ Boolean ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນ.

ອັດ​ຕະ​ໂນ​ມັດ​, ai
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If autoindent ໄດ້ຖືກຕັ້ງໄວ້, ແຕ່ລະເສັ້ນໃນໂຫມດການປ້ອນຂໍ້ມູນຈະຖືກຫຍໍ້ໜ້າເຂົ້າ (ໂດຍນຳໃຊ້ກ່ອນຫຼາຍອັນ
ຕົວອັກສອນທີ່ເປັນໄປໄດ້, ຕາມທີ່ກໍານົດໂດຍຕົວເລືອກບັນນາທິການ ແຖບຢຸດ, ແລະຫຼັງຈາກນັ້ນການນໍາໃຊ້
ຕົວອັກສອນ) ເພື່ອຈັດຮຽງກັບແຖວອື່ນ, ດັ່ງຕໍ່ໄປນີ້:

1. ຖ້າຢູ່ໃນໂຫມດເປີດຫຼືສາຍຕາແລະການປ້ອນຂໍ້ຄວາມເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງແບບເສັ້ນ (ເບິ່ງ
ຄໍາອະທິບາຍຂະຫຍາຍຢູ່ໃນ vi), ສອດຄ້ອງກັບຖັນທໍາອິດ.

2. ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ຢູ່​ໃນ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ສາຍ​ຕາ​, indentation ສໍາ​ລັບ​ແຕ່​ລະ​ເສັ້ນ​ຈະ​ຖືກ​ກໍາ​ນົດ​ເປັນ​
ຕໍ່ໄປນີ້:

ກ. ຖ້າເສັ້ນຖືກໃສ່ໃນເມື່ອກ່ອນເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງນີ້, ມັນຈະຖືກຕັ້ງເປັນ
indentation ຂອງເສັ້ນທີ່ໃສ່ສຸດທ້າຍໂດຍຄ່າເລີ່ມຕົ້ນ, ຫຼືຕາມທີ່ລະບຸໄວ້ເປັນຢ່າງອື່ນສໍາລັບ
ໄດ້ -D ລັກ​ສະ​ນະ​ໃນ​ ການປ້ອນຂໍ້ມູນ ຮູບແບບການ ຄໍາສັ່ງ in vi.

ຂ. ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​, ມັນ​ຈະ​ຖືກ​ຕັ້ງ​ເປັນ indentation ຂອງ​ເສັ້ນ​ໃນ​ປັດ​ຈຸ​ບັນ​ທີ່​ຜ່ານ​ມາ​, ຖ້າ​ຫາກ​ວ່າ​
ໃດ; ຖ້າບໍ່ດັ່ງນັ້ນ, ໄປຫາຖັນທໍາອິດ.

3. ສຳ ລັບ ex a, i, ແລະ c ຄໍາສັ່ງ, indentation ສໍາລັບແຕ່ລະແຖວຈະຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້:

ກ. ຖ້າເສັ້ນຖືກໃສ່ໃນເມື່ອກ່ອນເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງນີ້, ມັນຈະຖືກຕັ້ງເປັນ
indentation ຂອງເສັ້ນທີ່ໃສ່ສຸດທ້າຍໂດຍຄ່າເລີ່ມຕົ້ນ, ຫຼືຕາມທີ່ລະບຸໄວ້ເປັນຢ່າງອື່ນສໍາລັບ
ໄດ້ ເອີ ຕົວອັກສອນໃນ ເລື່ອນ.

ຂ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງແມ່ນ ex a ຄໍາສັ່ງ, ມັນຈະຖືກກໍານົດເປັນເສັ້ນ
ເພີ່ມເຕີມຫຼັງຈາກ, ຖ້າມີ; ຖ້າບໍ່ດັ່ງນັ້ນກັບຖັນທໍາອິດ.

ຄ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງແມ່ນ ex i ຄໍາສັ່ງ, ມັນຈະຖືກກໍານົດເປັນເສັ້ນ
ໃສ່ກ່ອນ, ຖ້າມີ; ຖ້າບໍ່ດັ່ງນັ້ນກັບຖັນທໍາອິດ.

ງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຄໍາສັ່ງແມ່ນ ex c ຄໍາສັ່ງ, ມັນຈະຖືກກໍານົດເປັນ indentation ໄດ້
ຂອງ​ສາຍ​ການ​ທົດ​ແທນ​.

ອັດ​ຕະ​ໂນ​ມັດ​, ap
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If ພິມອັດຕະໂນມັດ ຖືກກໍານົດ, ເສັ້ນປະຈຸບັນຈະຖືກຂຽນຫຼັງຈາກແຕ່ລະຄົນ ex ຄໍາສັ່ງທີ່ດັດແປງ
ເນື້ອໃນຂອງ buffer ດັດແກ້ປະຈຸບັນ, ແລະຫຼັງຈາກແຕ່ລະຄົນ ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງທີ່ແທັກ
ຮູບແບບການຄົ້ນຫາຖືກພົບເຫັນ ຫຼືໝາຍເລກແຖວໂຄດຖືກຕ້ອງ, ເວັ້ນເສຍແຕ່:

1. ຄໍາສັ່ງຖືກປະຕິບັດໃນຂະນະທີ່ຢູ່ໃນໂຫມດເປີດຫຼືເບິ່ງເຫັນ.

2. ຄໍາສັ່ງຖືກປະຕິບັດເປັນສ່ວນຫນຶ່ງຂອງ a ທົ່ວໂລກ or v command or @ ການ​ປະ​ຕິ​ບັດ buffer​.

3. ຄໍາສັ່ງແມ່ນຮູບແບບຂອງ ອ່ານ ຄໍາສັ່ງທີ່ອ່ານໄຟລ໌ເຂົ້າໄປໃນ buffer ແກ້ໄຂ.

4. ຄໍາສັ່ງແມ່ນ ເພີ່ມເຕີມ, ການປ່ຽນແປງ, ຫຼື ໃສ່ ຄໍາສັ່ງ.

5. ຄໍາສັ່ງບໍ່ໄດ້ຖືກຍົກເລີກໂດຍ a .

6. ເສັ້ນປະຈຸບັນຈະຖືກຂຽນດ້ວຍທຸງທີ່ລະບຸໄວ້ໃນຄໍາສັ່ງ; ຍົກ​ຕົວ​ຢ່າງ,
ລຶບ # ຈະຕ້ອງຂຽນເສັ້ນປະຈຸບັນຕາມທີ່ລະບຸໄວ້ສໍາລັບຕົວແກ້ໄຂທຸງເປັນ ລຶບ
ຄໍາ​ສັ່ງ​, ແລະ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​ໂດຍ​ ພິມອັດຕະໂນມັດ ແກ້ໄຂທາງເລືອກ.

ຂຽນອັດຕະໂນມັດ, aw
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ຂຽນອັດຕະໂນມັດ ໄດ້ຖືກຕັ້ງໄວ້, ແລະ buffer ການແກ້ໄຂໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ມັນສຸດທ້າຍຢ່າງສົມບູນ
ຂຽນໃສ່ໄຟລ໌ໃດກໍ່ຕາມ, ເນື້ອໃນຂອງການແກ້ໄຂ buffer ຈະຖືກຂຽນຄືກັບວ່າ ex ຂຽນ
ຄໍາສັ່ງໄດ້ຖືກລະບຸໄວ້ໂດຍບໍ່ມີການໂຕ້ຖຽງ, ກ່ອນທີ່ແຕ່ລະຄໍາສັ່ງໄດ້ຮັບຜົນກະທົບຈາກ
ຂຽນອັດຕະໂນມັດ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ແມ່ນ​ປະ​ຕິ​ບັດ​. ຕໍ່ທ້າຍລັກສະນະ '!' ກັບຊື່ຄໍາສັ່ງຂອງໃດໆ
ຂອງ ex ຄໍາສັ່ງຍົກເວັ້ນ '!' ຈະປ້ອງກັນບໍ່ໃຫ້ຂຽນ. ຖ້າການຂຽນລົ້ມເຫລວ, ມັນຈະເປັນ
ຄວາມ​ຜິດ​ພາດ​ແລະ​ຄໍາ​ສັ່ງ​ຈະ​ບໍ່​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​.

ສວຍ​ງາມ​, bf
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ສວຍງາມ ຖືກຕັ້ງ, ຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້ທັງຫມົດ, ນອກເຫນືອຈາກ , , ແລະ
feed> ຕົວອັກສອນ, ຈະຖືກຍົກເລີກຈາກຂໍ້ຄວາມທີ່ອ່ານຢູ່ໃນໄຟລ໌.

ໄດເລກະທໍລີ, dir
[ຄ່າເລີ່ມຕົ້ນ ການ​ປະ​ຕິ​ບັດ​ກໍາ​ນົດ​]

ຄ່າຂອງຕົວເລືອກນີ້ລະບຸໄດເລກະທໍລີທີ່ buffer ບັນນາທິການຈະເປັນ
ວາງໄວ້. ຖ້າໄດເລກະທໍລີນີ້ບໍ່ສາມາດຂຽນໄດ້ໂດຍຜູ້ໃຊ້, ບັນນາທິການຈະອອກ.

ເຂົ້າ​ກັນ​ໄດ້​, ed
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

ເຮັດໃຫ້ເກີດການປະກົດຕົວຂອງ g ແລະ c suffixes ສຸດຄໍາສັ່ງທົດແທນທີ່ຈະຈື່, ແລະ
ສະຫຼັບໂດຍການຊໍ້າຄືນຄຳຕໍ່ທ້າຍ.

ກະດິ່ງຜິດພາດ, eb
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

ຖ້າບັນນາທິການຢູ່ໃນ ex ໂຫມດ, ແລະ terminal ບໍ່ສະຫນັບສະຫນູນຮູບແບບ standout (ເຊັ່ນ:
inverse video), ແລະ ກະດິ່ງຜິດພາດ ຖືກກໍານົດ, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະຖືກນໍາຫນ້າໂດຍການແຈ້ງເຕືອນ
ຢູ່ປາຍຍອດ.

exrc
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If exrc ຖືກ​ຕັ້ງ​, ex ຈະເຂົ້າເຖິງໃດໆ .exrc ໄຟລ໌ໃນໄດເລກະທໍລີປະຈຸບັນ, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນ
ການລິເລີ່ມ in ex ແລະ viທີ່ຢູ່ ຖ້າຫາກວ່າ exrc ບໍ່ໄດ້ຕັ້ງ, ex ຈະບໍ່ສົນໃຈໃດໆ .exrc ໄຟລ໌ໃນ
ໄດເລກະທໍລີປະຈຸບັນໃນລະຫວ່າງການເລີ່ມຕົ້ນ, ເວັ້ນເສຍແຕ່ວ່າໄດເລກະທໍລີປະຈຸບັນແມ່ນຊື່ໂດຍ
ຫນ້າທໍາອິດ environment variable

ບໍ່ສົນໃຈ, ic
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ບໍ່ສົນໃຈ ຖືກກໍານົດ, ຕົວອັກສອນທີ່ມີຕົວພິມໃຫຍ່ແລະຕົວພິມນ້ອຍຕ້ອງ
ມີການເປັນຕົວແທນເຫຼົ່ານັ້ນຖືວ່າເປັນການທຽບເທົ່າສໍາລັບຈຸດປະສົງຂອງການສະແດງອອກເປັນປົກກະຕິ
ການປຽບທຽບ.

ໄດ້ ບໍ່ສົນໃຈ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ມີ​ຜົນ​ກະ​ທົບ​ການ​ສະ​ແດງ​ອອກ​ທີ່​ຈໍາ​ເປັນ​ປົກ​ກະ​ຕິ​ທັງ​ຫມົດ​; ຍົກ​ຕົວ​ຢ່າງ,
ຍົກເລີກການຕັ້ງຄ່າ ບໍ່ສົນໃຈ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ຕໍ່​ມາ​ vi n ຄໍາສັ່ງເພື່ອຊອກຫາ
ການສະແດງອອກປົກກະຕິພື້ນຖານສຸດທ້າຍໃນຮູບແບບທີ່ລະອຽດອ່ອນ.

ບັນຊີລາຍຊື່
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ບັນຊີລາຍຊື່ ຖືກຕັ້ງ, ແກ້ໄຂເສັ້ນ buffer ທີ່ຂຽນໃນຂະນະທີ່ຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງຈະຖືກຂຽນເປັນ
ລະບຸໄວ້ ສຳ ລັບ ພິມ ຄໍາສັ່ງກັບ l ທຸງທີ່ລະບຸໄວ້. ໃນໂຫມດເປີດຫຼືເບິ່ງເຫັນ, ແຕ່ລະຄົນ
ແກ້ໄຂເສັ້ນ buffer ຈະຖືກສະແດງຕາມທີ່ລະບຸໄວ້ສໍາລັບ ex ພິມ ຄໍາສັ່ງກັບ l ທຸງ
ລະບຸ. ໃນ​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​ເປີດ​ຫຼື​ພາບ​, ໃນ​ເວ​ລາ​ທີ່​ຕົວ​ກະ​ພິບ​ບໍ່​ໄດ້​ພັກ​ຜ່ອນ​ກ່ຽວ​ກັບ​ການ​ໃດໆ​
ລັກ​ສະ​ນະ​ໃນ​ເສັ້ນ​, ມັນ​ຈະ​ພັກ​ຜ່ອນ​ໃນ​ '$' marking ໃນຕອນທ້າຍຂອງເສັ້ນ.

magic
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If magic ຖືກກໍານົດ, ປັບປຸງແກ້ໄຂການຕີຄວາມຫມາຍຂອງຕົວອັກສອນໃນສໍານວນປົກກະຕິແລະ
ການທົດແທນການທົດແທນສາຍພັນ (ເບິ່ງ ເປັນປົກກະຕິ ສຳ ນວນ in ex ແລະ ການທົດແທນ Strings in
ex).

ຂໍ້ຄວາມ
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If ຂໍ້ຄວາມ ຖືກຕັ້ງ, ການອະນຸຍາດໃຫ້ຜູ້ອື່ນໃຊ້ ຂຽນ or ສົນທະນາ ຄໍາສັ່ງທີ່ຈະຂຽນໃສ່
terminal ຈະຖືກເປີດໃນຂະນະທີ່ຢູ່ໃນໂຫມດເປີດຫຼືເບິ່ງເຫັນ. ຄໍາສັ່ງລະດັບ shell ຂໍ້ຄວາມ
n ຈະ​ມີ​ການ​ນໍາ​ຫນ້າ​ໃນ​ໄລ​ຍະ​ການ​ຕັ້ງ​ຄ່າ​ໃດໆ​ ex ຂໍ້ຄວາມ ທາງເລືອກ; ນັ້ນແມ່ນ, ຖ້າ ຂໍ້ຄວາມ y ແມ່ນ
ອອກມາກ່ອນທີ່ບັນນາທິການຈະເລີ່ມຕົ້ນ (ຫຼືຢູ່ໃນ shell escape), ເຊັ່ນ:

:!ຂໍ້ຄວາມ y

ໄດ້ ຂໍ້ຄວາມ option in ex ຈະສະກັດກັ້ນຂໍ້ຄວາມທີ່ເຂົ້າມາ, ແຕ່ ຂໍ້ຄວາມ ທາງເລືອກຈະບໍ່
ເປີດໃຊ້ຂໍ້ຄວາມທີ່ເຂົ້າມາຖ້າ ຂໍ້ຄວາມ n ອອກ.

ຈຳ ນວນ, nu
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ຈໍານວນ ຖືກຕັ້ງ, ແກ້ໄຂເສັ້ນ buffer ທີ່ຂຽນໃນຂະນະທີ່ຢູ່ໃນ ex ຮູບແບບຄໍາສັ່ງຈະຖືກຂຽນດ້ວຍ
ຕົວເລກແຖວ, ໃນຮູບແບບທີ່ລະບຸໄວ້ໂດຍ ພິມ ຄໍາສັ່ງກັບ # ທຸງທີ່ລະບຸໄວ້. ໃນ
ex ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​, ແຕ່​ລະ​ແຖວ​ຈະ​ຖືກ​ນໍາ​ຫນ້າ​ໂດຍ​ຕົວ​ເລກ​ແຖວ​ທີ່​ມັນ​ຈະ​ມີ​ຢູ່​ໃນ​
ຍື່ນ.

ໃນໂໝດເປີດ ຫຼື ສາຍຕາ, ແຕ່ລະແຖວແກ້ໄຂຈະຖືກສະແດງດ້ວຍແຖວກ່ອນໜ້າ
ຈໍານວນ, ໃນຮູບແບບທີ່ລະບຸໄວ້ໂດຍ ex ພິມ ຄໍາສັ່ງກັບ # ທຸງທີ່ລະບຸໄວ້. ນີ້
ໝາຍເລກແຖວຈະບໍ່ຖືກພິຈາລະນາເປັນສ່ວນໜຶ່ງຂອງແຖວເພື່ອຈຸດປະສົງຂອງການປະເມີນ
ຖັນປະຈຸບັນ; ນັ້ນແມ່ນ, ຕໍາແຫນ່ງຖັນ 1 ຈະເປັນຕໍາແຫນ່ງຖັນທໍາອິດຫຼັງຈາກ
ຮູບແບບທີ່ລະບຸໄວ້ໂດຍ ພິມ ຄໍາສັ່ງ.

ວັກ, to
[ຄ່າເລີ່ມຕົ້ນໃນ POSIX locale IPLPPPQPP LIpplpipbp]

ໄດ້ ວັກ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ກໍາ​ນົດ​ຂອບ​ຂະ​ບວນ​ການ​ເພີ່ມ​ເຕີມ​ສໍາ​ລັບ​ການ​ເປີດ​ແລະ​
ຄໍາສັ່ງຮູບແບບພາບ. ໄດ້ ວັກ ຕົວເລືອກການແກ້ໄຂສາມາດຖືກຕັ້ງເປັນສະຕຣິງຕົວອັກສອນ
ປະ​ກອບ​ດ້ວຍ​ສູນ​ຫຼື​ຫຼາຍ​ຄູ່​ຕົວ​ອັກ​ສອນ​. ມັນຈະເປັນຄວາມຜິດພາດທີ່ຈະຕັ້ງມັນເປັນຄີກ
ຈໍາ​ນວນ​ຂອງ​ຕົວ​ອັກ​ສອນ​.

ການກະຕຸ້ນເຕືອນ
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If ການກະຕຸ້ນເຕືອນ ຖືກ​ຕັ້ງ​, ex ການ​ປ້ອນ​ຮູບ​ແບບ​ຄໍາ​ສັ່ງ​ຈະ​ໄດ້​ຮັບ​ການ​ກະ​ຕຸ້ນ​ໃຫ້​ມີ a (':'); ເມື່ອ​ໃດ​
ບໍ່ໄດ້ຕັ້ງ, ບໍ່ມີການເຕືອນຈະຖືກຂຽນ.

ອ່ານ​ຢ່າງ​ດຽວ
[ຄ່າເລີ່ມຕົ້ນ ເບິ່ງ ຂໍ້ຄວາມ]

ຖ້າ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​, ຮູບ​ແບບ​ການ​ອ່ານ​ເທົ່າ​ນັ້ນ​ຈະ​ໄດ້​ຮັບ​ການ​ເປີດ (ເບິ່ງ​ ຂຽນ) The
ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ໄດ້​ຮັບ​ການ​ເລີ່ມ​ຕົ້ນ​ເພື່ອ​ກໍາ​ນົດ​ຖ້າ​ຫາກ​ວ່າ​ທັງ​ສອງ​ຂອງ​ເງື່ອນ​ໄຂ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ແມ່ນ​
ຄວາມຈິງ:

* ທາງ​ເລືອກ​ບັນ​ດາ​ຄໍາ​ສັ່ງ -R ໄດ້​ລະ​ບຸ​ໄວ້​.

* ການ​ປະ​ຕິ​ບັດ​ທຽບ​ເທົ່າ​ກັບ​ ການເຂົ້າເຖິງ() ການທໍາງານເອີ້ນວ່າມີດັ່ງຕໍ່ໄປນີ້
arguments ຊີ້ບອກວ່າໄຟລ໌ຂາດການອະນຸຍາດຂຽນ:

1. ຊື່ເສັ້ນທາງປະຈຸບັນຖືກນໍາໃຊ້ເປັນ ເສັ້ນທາງ ການໂຕ້ຖຽງ.

2. ຄົງທີ່ W_OK ຖືກນໍາໃຊ້ເປັນ ອາໂມດ ການໂຕ້ຖຽງ.

ໄດ້ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ອາດ​ຈະ​ໄດ້​ຮັບ​ການ​ເລີ່ມ​ຕົ້ນ​ເພື່ອ​ກໍາ​ນົດ​ສໍາ​ລັບ​ການ​ອື່ນໆ​, ການ​ປະ​ຕິ​ບັດ​ກໍາ​ນົດ​
ເຫດຜົນ. ໄດ້ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ບໍ່​ໄດ້​ຮັບ​ການ​ເລີ່ມ​ຕົ້ນ​ເພື່ອ​ບໍ່​ໄດ້​ຕັ້ງ​ໂດຍ​ອີງ​ໃສ່​ການ​ພິ​ເສດ​ໃດ​ຫນຶ່ງ​
ສິດທິພິເສດຂອງຜູ້ໃຊ້ ຫຼືຂະບວນການ. ໄດ້ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ໄດ້​ຮັບ​ການ reinitialized ແຕ່​ລະ​ຄົນ​
ເວລາທີ່ເນື້ອໃນຂອງການແກ້ໄຂຖືກແທນທີ່ (ຕົວຢ່າງ, ໂດຍ ດັດແກ້ or ຕໍ່ໄປ
command) ເວັ້ນເສຍແຕ່ວ່າຜູ້ໃຊ້ໄດ້ຕັ້ງມັນຢ່າງຈະແຈ້ງ, ໃນກໍລະນີນີ້ມັນຈະຍັງຄົງຕັ້ງຈົນກ່ວາ
ຜູ້ໃຊ້ຍົກເລີກການຕັ້ງມັນຢ່າງຈະແຈ້ງ. ເມື່ອ​ບໍ່​ໄດ້​ຕັ້ງ​ຄ່າ​, ມັນ​ຈະ​ໄດ້​ຮັບ​ການ reinitialized ອີກ​ເທື່ອ​ຫນຶ່ງ​ໃນ​ແຕ່​ລະ​ຄັ້ງ​
ເນື້ອໃນຂອງການແກ້ໄຂ buffer ໄດ້ຖືກທົດແທນ.

ແຕ້ມຄືນ
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

ບັນນາທິການຈຳລອງເຄື່ອງອັດສະລິຍະຢູ່ປາຍທາງທີ່ໂງ່. (ເນື່ອງ​ຈາກ​ວ່າ​ນີ້​ແມ່ນ​ມີ​ແນວ​ໂນ້ມ​ທີ່​ຈະ​
ຮຽກຮ້ອງໃຫ້ມີຈໍານວນຂະຫນາດໃຫຍ່ຂອງຜົນຜະລິດກັບ terminal, ມັນເປັນປະໂຫຍດພຽງແຕ່ຢູ່ໃນລະບົບສາຍສົ່ງສູງ
ຄວາມໄວ.)

remap
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If remap ຖືກກໍານົດ, ການແປພາສາແຜນທີ່ຈະອະນຸຍາດໃຫ້ສໍາລັບແຜນທີ່ທີ່ກໍານົດໄວ້ໃນເງື່ອນໄຂຂອງແຜນທີ່ອື່ນໆ;
ການແປພາສາຈະສືບຕໍ່ຈົນກ່ວາໄດ້ຜະລິດຕະພັນສຸດທ້າຍ. ຖ້າບໍ່ໄດ້ຕັ້ງ, ພຽງແຕ່ຂັ້ນຕອນດຽວ
ການ​ແປ​ພາ​ສາ​ຈະ​ເຮັດ​ໄດ້​.

ບົດ​ລາຍ​ງານ
[ຄ່າເລີ່ມຕົ້ນ 5]

ມູນຄ່າຂອງສິ່ງນີ້ ບົດ​ລາຍ​ງານ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ກໍາ​ນົດ​ຈໍາ​ນວນ​ຂອງ​ເສັ້ນ​ທີ່​ຖືກ​ເພີ່ມ​, ສໍາ​ເນົາ​,
ທີ່ຖືກລຶບ, ຫຼືແກ້ໄຂໃນ buffer ແກ້ໄຂຈະເຮັດໃຫ້ຂໍ້ຄວາມຂໍ້ມູນຖືກຂຽນ
ກັບຜູ້ໃຊ້. ເງື່ອນໄຂຕໍ່ໄປນີ້ຈະເຮັດໃຫ້ເກີດຂໍ້ຄວາມຂໍ້ມູນຂ່າວສານ. ຂໍ້ຄວາມ
ຈະຕ້ອງປະກອບດ້ວຍຈໍານວນແຖວທີ່ເພີ່ມ, ຄັດລອກ, ລຶບ, ຫຼືດັດແກ້, ແຕ່ເປັນຢ່າງອື່ນ
ບໍ່ໄດ້ລະບຸ.

* ອັນ ex or vi ຄໍາສັ່ງບັນນາທິການ, ນອກເຫນືອຈາກ ເປີດ, ຍົກເລີກ, ຫຼື ສາຍຕາ, ທີ່ດັດແປງຢ່າງຫນ້ອຍ
ມູນຄ່າຂອງ ບົດ​ລາຍ​ງານ ແກ້ໄຂຕົວເລກທາງເລືອກຂອງແຖວ, ແລະອັນໃດບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງ ex
ທົ່ວໂລກ or v ຄໍາສັ່ງ, ຫຼື ex or vi ການ​ປະ​ຕິ​ບັດ buffer​, ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ຂໍ້​ມູນ​ຂ່າວ​ສານ​
ຂໍ້ຄວາມທີ່ຈະຂຽນ.

* ອັນ ex yank or vi y or Y ຄໍາສັ່ງ, ທີ່ສໍາເນົາຢ່າງຫນ້ອຍມູນຄ່າຂອງ ບົດ​ລາຍ​ງານ ດັດແກ້
ທາງເລືອກບວກ 1 ຈໍານວນແຖວ, ແລະອັນໃດບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງ ex ທົ່ວໂລກ or v ຄໍາສັ່ງ, ຫຼື
ex or vi ການ​ປະ​ຕິ​ບັດ buffer​, ຈະ​ເຮັດ​ໃຫ້​ເກີດ​ຂໍ້​ຄວາມ​ຂໍ້​ມູນ​ຂ່າວ​ສານ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ຂຽນ​.

* ອັນ ex ທົ່ວໂລກ, v, ເປີດ, ຍົກເລີກ, ຫຼື ສາຍຕາ command or ex or vi ການປະຕິບັດ buffer, ທີ່ເພີ່ມ
ຫຼືລຶບຈໍານວນທັງຫມົດຢ່າງຫນ້ອຍຢ່າງຫນ້ອຍມູນຄ່າຂອງ ບົດ​ລາຍ​ງານ ແກ້​ໄຂ​ຈໍາ​ນວນ​ທາງ​ເລືອກ​ຂອງ​ເສັ້ນ​,
ແລະອັນໃດບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງ ex ທົ່ວໂລກ or v ຄໍາສັ່ງ, ຫຼື ex or vi ການ​ປະ​ຕິ​ບັດ buffer​,
ຈະເຮັດໃຫ້ຂໍ້ຄວາມຂໍ້ມູນຂ່າວສານຖືກຂຽນ. (ຕົວຢ່າງ, ຖ້າມີ 3 ແຖວ
ເພີ່ມແລະ 8 ແຖວຖືກລົບໃນລະຫວ່າງການ ex ສາຍຕາ ຄໍາສັ່ງ, 5 ຈະເປັນຕົວເລກປຽບທຽບ
ຕໍ່ຕ້ານ ບົດ​ລາຍ​ງານ ແກ້ໄຂທາງເລືອກຫຼັງຈາກຄໍາສັ່ງສໍາເລັດ.)

ເລື່ອນ, ຂຽນ
[ຄ່າເລີ່ມຕົ້ນ (ຈຳນວນແຖວໃນຈໍສະແດງຜົນ −1)/2]

ມູນຄ່າຂອງການ ເລື່ອນ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ກໍາ​ນົດ​ຈໍາ​ນວນ​ຂອງ​ເສັ້ນ​ເລື່ອນ​ໂດຍ​ການ​ ex
-D ແລະ z ຄໍາສັ່ງ. ສໍາ​ລັບ vi -D ແລະ -U ຄໍາ​ສັ່ງ​, ມັນ​ຈະ​ເປັນ​
ຈໍາ​ນວນ​ເບື້ອງ​ຕົ້ນ​ຂອງ​ເສັ້ນ​ທີ່​ຈະ​ເລື່ອນ​ໃນ​ເວ​ລາ​ທີ່​ບໍ່​ມີ​ກ່ອນ​ຫນ້າ​ນີ້​ -D ຫຼື -U ຄໍາ​ສັ່ງ​
ໄດ້​ຖືກ​ປະ​ຕິ​ບັດ​.

ພາກສ່ວນ
[ຄ່າເລີ່ມຕົ້ນໃນ POSIX locale NHSHH HUnhsh]

ໄດ້ ພາກສ່ວນ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ຈະ​ກໍາ​ນົດ​ຂອບ​ເຂດ​ພາກ​ສ່ວນ​ເພີ່ມ​ເຕີມ​ສໍາ​ລັບ​ການ​ເປີດ​ແລະ​
ຄໍາສັ່ງຮູບແບບພາບ. ໄດ້ ພາກສ່ວນ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​ເປັນ​ສະ​ຕ​ຣິງ​ຕົວ​ອັກ​ສອນ​ປະ​ກອບ​ດ້ວຍ​
ຂອງສູນຫຼືຫຼາຍຄູ່ຕົວອັກສອນ; ມັນຈະເປັນຄວາມຜິດພາດທີ່ຈະຕັ້ງມັນເປັນຈໍານວນຄີກຂອງ
ລັກສະນະ.

ຫອຍ, sh
[ຄ່າເລີ່ມຕົ້ນຈາກຕົວແປສະພາບແວດລ້ອມ SHELL]

ຄ່າຂອງຕົວເລືອກນີ້ຈະເປັນສະຕຣິງ. ຄ່າເລີ່ມຕົ້ນຈະຖືກເອົາມາຈາກ SHELL
ສະພາບແວດລ້ອມປ່ຽນແປງ. ຖ້າ SHELL ຕົວແປສະພາບແວດລ້ອມແມ່ນ null ຫຼືຫວ່າງເປົ່າ, the sh (ເບິ່ງ sh)
ຜົນປະໂຫຍດຈະຕ້ອງເປັນຄ່າເລີ່ມຕົ້ນ.

shiftwidth, sw
[ຄ່າເລີ່ມຕົ້ນ 8]

ຄ່າຂອງຕົວເລືອກນີ້ຈະໃຫ້ຄວາມກວ້າງຂອງຖັນຂອງລະດັບການຫຍໍ້ໜ້າທີ່ໃຊ້
ໃນລະຫວ່າງການ autoindentation ແລະໂດຍຄໍາສັ່ງ shift (< ແລະ >).

ການ​ແຂ່ງ​ຂັນ​, sm
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

ຫນ້າ​ທີ່​ອະ​ທິ​ບາຍ​ສໍາ​ລັບ​ການ​ ການ​ແຂ່ງ​ຂັນ​ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ບໍ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​ໃນ block-
mode terminals ຫຼື terminals ທີ່ມີຄວາມສາມາດບໍ່ພຽງພໍ.

If ການ​ແຂ່ງ​ຂັນ​ ຖືກຕັ້ງ, ຢູ່ໃນໂໝດເປີດ ຫຼື ສາຍຕາ, ເມື່ອ ກ ')' or '}' ຖືກພິມ, ຖ້າກົງກັນ
'(' or '{' ໃນປັດຈຸບັນແມ່ນເຫັນໄດ້ໃນການສະແດງ, ການຈັບຄູ່ '(' or '{' ຈະຖືກທຸງ
ຍ້າຍຕົວກະພິບໄປທີ່ສະຖານທີ່ຂອງມັນເປັນເວລາທີ່ບໍ່ລະບຸ.

ຮູບແບບການສະແດງ
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ຮູບແບບການສະແດງ ຖືກຕັ້ງ, ໃນຮູບແບບເປີດຫຼືເບິ່ງເຫັນ, ຮູບແບບປະຈຸບັນທີ່ບັນນາທິການຢູ່ໃນຈະຕ້ອງ
ຈະຖືກສະແດງຢູ່ໃນແຖວສຸດທ້າຍຂອງການສະແດງຜົນ. ຮູບແບບຄໍາສັ່ງແລະຮູບແບບການປ້ອນຂໍ້ຄວາມຈະເປັນ
ແຕກຕ່າງກັນ; ຮູບ​ແບບ​ທີ່​ບໍ່​ໄດ້​ກໍາ​ນົດ​ອື່ນໆ​ແລະ​ຂໍ້​ມູນ​ທີ່​ກໍາ​ນົດ​ການ​ປະ​ຕິ​ບັດ​ອາດ​ຈະ​ເປັນ
ສະແດງ.

ຊ້າ
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ຊ້າ ຖືກຕັ້ງໃນລະຫວ່າງຮູບແບບການປ້ອນຂໍ້ຄວາມແບບເປີດ ແລະເບິ່ງເຫັນ, ຕົວແກ້ໄຂຈະບໍ່ອັບເດດ
ພາກສ່ວນຂອງຈໍສະແດງຜົນນອກເໜືອໄປຈາກຖັນແຖວສະແດງທີ່ສະແດງຕົວອັກສອນ
ເຂົ້າໂດຍຜູ້ໃຊ້ (ເບິ່ງ ການປ້ອນຂໍ້ມູນ ຮູບແບບການ ຄໍາສັ່ງ in vi).

ແຖບຢຸດ, ts
[ຄ່າເລີ່ມຕົ້ນ 8]

ຄ່າຂອງຕົວເລືອກການແກ້ໄຂນີ້ຈະລະບຸຂອບເຂດຖັນທີ່ໃຊ້ໂດຍ a ໃນ
ຈໍສະແດງຜົນ (ເບິ່ງ ພິມອັດຕະໂນມັດ, ap ແລະ ການປ້ອນຂໍ້ມູນ ຮູບແບບການ ຄໍາສັ່ງ in vi).

ຄວາມຍາວປ້າຍ, tl
[ສູນມາດຕະຖານ]

ຄ່າຂອງຕົວເລືອກການແກ້ໄຂນີ້ຈະຕ້ອງລະບຸຈໍານວນຕົວອັກສອນສູງສຸດທີ່ມີ
ພິຈາລະນາທີ່ສໍາຄັນໃນຊື່ແທັກທີ່ລະບຸໂດຍຜູ້ໃຊ້ແລະໃນຊື່ແທັກຈາກແທັກ
ໄຟລ໌. ຖ້າຄ່າເປັນສູນ, ຕົວອັກສອນທັງໝົດໃນທັງສອງຊື່ແທັກຈະມີຄວາມສຳຄັນ.

tags
[ຄ່າເລີ່ມຕົ້ນ ເບິ່ງ ຂໍ້ຄວາມ]

ຄ່າຂອງຕົວເລືອກການແກ້ໄຂນີ້ຈະຕ້ອງເປັນສະຕຣິງຂອງ -delimited pathnames ຂອງ​ໄຟລ​໌​
ໃຊ້ໂດຍ ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງ. ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ໄດ້ລະບຸ.

ໄລຍະ
[ຄ່າເລີ່ມຕົ້ນຈາກຕົວແປສະພາບແວດລ້ອມ TERM]

ຄ່າຂອງຕົວເລືອກການແກ້ໄຂນີ້ຈະເປັນສະຕຣິງ. ຄ່າເລີ່ມຕົ້ນຈະຖືກເອົາມາຈາກ TERM
ການປ່ຽນແປງໃນສະພາບແວດລ້ອມ. ຖ້າ TERM ຕົວແປສະພາບແວດລ້ອມແມ່ນຫວ່າງເປົ່າ ຫຼື null, the
ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ໄດ້ລະບຸ. ບັນນາທິການຈະຕ້ອງໃຊ້ຄ່າຂອງຕົວເລືອກການແກ້ໄຂນີ້ເພື່ອກໍານົດ
ປະເພດຂອງອຸປະກອນການສະແດງ.

ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ກໍານົດຖ້າຜູ້ໃຊ້ປ່ຽນມູນຄ່າຂອງຄໍາທີ່ທາງເລືອກການແກ້ໄຂຫຼັງຈາກນັ້ນ
ການເລີ່ມຕົ້ນບັນນາທິການ.

terse
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If terse ຖືກຕັ້ງໄວ້, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດອາດຈະເວົ້າໜ້ອຍລົງ. ຢ່າງໃດກໍຕາມ, ຍົກເວັ້ນສໍາລັບຄໍາເຕືອນນີ້,
ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​. ນອກຈາກນັ້ນ, ບໍ່ແມ່ນຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດທັງໝົດຕ້ອງການການປ່ຽນແປງ
ການຕັ້ງຄ່າທີ່ແຕກຕ່າງກັນຂອງທາງເລືອກນີ້.

ເຕືອນ
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If ເຕືອນ ໄດ້ຖືກຕັ້ງ, ແລະເນື້ອໃນຂອງການແກ້ໄຂ buffer ໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ພວກເຂົາເປັນ
ສຸດທ້າຍຂຽນຢ່າງສົມບູນ, ບັນນາທິການຕ້ອງຂຽນຂໍ້ຄວາມເຕືອນກ່ອນທີ່ຈະແນ່ນອນ !
ຄໍາສັ່ງ (ເບິ່ງ Escape).

ປ່ອງຢ້ຽມ
[ຄ່າເລີ່ມຕົ້ນ ເບິ່ງ ຂໍ້ຄວາມ]

ຄ່າທີ່ໃຊ້ໃນໂໝດເປີດ ແລະສາຍຕາ, ໂດຍ -B ແລະ -F ຄໍາສັ່ງ, ແລະ, ໃນ
ໂໝດສາຍຕາ, ເພື່ອລະບຸຈຳນວນສາຍທີ່ສະແດງເມື່ອໜ້າຈໍຖືກທາສີຄືນໃໝ່.

ຖ້າ −ວ ຕົວເລືອກແຖວຄໍາສັ່ງບໍ່ໄດ້ຖືກລະບຸ, ຄ່າເລີ່ມຕົ້ນຈະຖືກຕັ້ງເປັນ
ມູນຄ່າຂອງ ເສັ້ນ ສະພາບແວດລ້ອມປ່ຽນແປງ. ຖ້າ ເສັ້ນ ຕົວແປສະພາບແວດລ້ອມແມ່ນຫວ່າງເປົ່າຫຼື
null, ຄ່າເລີ່ມຕົ້ນຈະເປັນຈຳນວນແຖວໃນການສະແດງຜົນລົບ 1.

ການຕັ້ງຄ່າ ປ່ອງຢ້ຽມ ແກ້ໄຂທາງເລືອກໃຫ້ເປັນສູນ ຫຼືຄ່າທີ່ໃຫຍ່ກວ່າຈຳນວນແຖວໃນ
ຈໍສະແດງຜົນລົບ 1 (ຢ່າງຈະແຈ້ງຫຼືອີງໃສ່ −ວ ທາງເລືອກຫຼື ເສັ້ນ ສະພາບແວດລ້ອມ
variable) ຈະເຮັດໃຫ້ເກີດ ປ່ອງຢ້ຽມ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​ເປັນ​ຈໍາ​ນວນ​ຂອງ​ເສັ້ນ​ໃນ​
ສະແດງເຄື່ອງໝາຍລົບ 1.

ອັດຕາ baud ຂອງສາຍ terminal ອາດຈະປ່ຽນຄ່າເລີ່ມຕົ້ນໃນການປະຕິບັດທີ່ກໍານົດໄວ້
ວິທີການ.

wrapmargin, wm
[ຄ່າເລີ່ມຕົ້ນ 0]

ຖ້າຄ່າຂອງທາງເລືອກການແກ້ໄຂນີ້ແມ່ນສູນ, ມັນຈະບໍ່ມີຜົນກະທົບ.

ຖ້າບໍ່ຢູ່ໃນ POSIX locale, ຜົນກະທົບຂອງທາງເລືອກການແກ້ໄຂນີ້ແມ່ນການປະຕິບັດທີ່ຖືກກໍານົດ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຈະລະບຸຖັນຈຳນວນໜຶ່ງຈາກຂອບທ້າຍຂອງເຄື່ອງໝາຍປາຍທາງ.

ໃນ​ລະ​ຫວ່າງ​ການ​ເປີດ​ແລະ​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​ພາບ​, ສໍາ​ລັບ​ແຕ່​ລະ​ຕົວ​ອັກ​ສອນ​ສໍາ​ລັບ​ການ​ທີ່​ພາກ​ສ່ວນ​ໃດ​ຫນຶ່ງ​ຂອງ​
ຕົວອັກສອນຖືກສະແດງຢູ່ໃນຖັນທີ່ນ້ອຍກວ່າ wrapmargin ຖັນຈາກຕອນທ້າຍ
ຂອບຂອງເສັ້ນສະແດງ, ບັນນາທິການຈະຕ້ອງປະຕິບັດດັ່ງຕໍ່ໄປນີ້:

1. ຖ້າຕົວລະຄອນທີ່ເຮັດໃຫ້ເກີດເຫດການນີ້ແມ່ນ ກ , ມັນ, ແລະທັງຫມົດກ່ອນຫນ້າທັນທີ
ຕົວ​ອັກ​ສອນ​ໃນ​ເສັ້ນ​ປະ​ຈຸ​ບັນ​ໄດ້​ເຂົ້າ​ໄປ​ໃນ​ລະ​ຫວ່າງ​ການ​ປະ​ຕິ​ບັດ​ຂອງ​ປະ​ຈຸ​ບັນ​
ຄໍາສັ່ງໃສ່ຂໍ້ຄວາມ, ຈະຖືກຍົກເລີກ, ແລະບັນນາທິການຈະປະຕິບັດຕົວຄືກັບວ່າຜູ້ໃຊ້ມີ
ເຂົ້າມາດຽວ ແທນ. ນອກຈາກນັ້ນ, ຖ້າຕົວລະຄອນທີ່ຜູ້ໃຊ້ເຂົ້າຕໍ່ໄປແມ່ນ
ກ , ມັນຈະຖືກຍົກເລີກເຊັ່ນດຽວກັນ.

2. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າມີຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ ຕົວອັກສອນໃນແຖວປະຈຸບັນທັນທີ
ກ່ອນໜ້າກຸ່ມສຸດທ້າຍຂອງການແຊກທີ່ບໍ່ແມ່ນ ຕົວອັກສອນທີ່ຖືກໃສ່ໃນລະຫວ່າງ
ການປະຕິບັດຄໍາສັ່ງປ້ອນຂໍ້ຄວາມໃນປະຈຸບັນ, the ລັກ​ສະ​ນະ​ຈະ​ເປັນ​
ແທນທີ່ຄືກັບວ່າຜູ້ໃຊ້ໄດ້ເຂົ້າໄປໃນອັນດຽວ ແທນ.

ຖ້າ autoindent ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​, ແລະ​ເຫດ​ການ​ທີ່​ອະ​ທິ​ບາຍ​ໃນ 1. ຫຼື 2. ແມ່ນ​ປະ​ຕິ​ບັດ​,
ໃດ ຕົວອັກສອນຢູ່ຫຼືຫຼັງຈາກຕົວກະພິບໃນແຖວປະຈຸບັນຈະຖືກຍົກເລີກ.

ຂອບທ້າຍຈະຖືກກໍານົດໂດຍລະບົບຫຼື overridden ໂດຍຜູ້ໃຊ້, ເປັນ
ອະທິບາຍສໍາລັບ ສີ ຢູ່ໃນພາກສ່ວນຕົວແປສະພາບແວດລ້ອມ ແລະປະລິມານຄຳນິຍາມພື້ນຖານ
ຂອງ POSIX.1-2008, ບົດ 8, ສະພາບແວດລ້ອມ Variables.

wrapscan, ws
[ຄ່າເລີ່ມຕົ້ນ ທີ່ກໍານົດໄວ້]

If wrapscan ຖືກກໍານົດ, ຄົ້ນຫາ (ໄດ້ ex / or ? ທີ່ຢູ່, ຫຼືຮູບແບບເປີດແລະສາຍຕາ /, ?, N,
ແລະ n ຄໍາສັ່ງ) ຈະຫໍ່ປະມານຈຸດເລີ່ມຕົ້ນຫຼືຈຸດສິ້ນສຸດຂອງ buffer ແກ້ໄຂ; ເມື່ອບໍ່ໄດ້ຕັ້ງ,
ການ​ຊອກ​ຫາ​ຈະ​ຢຸດ​ເຊົາ​ໃນ​ຕອນ​ຕົ້ນ​ຫຼື​ການ​ສິ້ນ​ສຸດ​ຂອງ​ການ​ດັດ​ແກ້​.

ຂຽນໄດ້, wa
[ຄ່າເລີ່ມຕົ້ນ ກຳ ນົດ]

If ຂຽນໄດ້ ຖືກກໍານົດ, ບາງການກວດສອບໄດ້ດໍາເນີນການໃນເວລາທີ່ດໍາເນີນການ ex ຂຽນ ຄໍາສັ່ງ
ຈະຖືກຍັບຍັ້ງ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນຕົວເລືອກບັນນາທິການ ຂຽນອັດຕະໂນມັດ.

ອອກ STATUS


ຄ່າທາງອອກຕໍ່ໄປນີ້ຈະຖືກສົ່ງຄືນ:

0 ສໍາເລັດສົບຜົນສໍາເລັດ.

>0 ເກີດຄວາມຜິດພາດຂຶ້ນ.

ຂໍ້ສັງເກດ OF ຄວາມຜິດພາດ


ເມື່ອພົບຂໍ້ຜິດພາດໃດໆແລະການປ້ອນຂໍ້ມູນມາດຕະຖານບໍ່ແມ່ນໄຟລ໌ອຸປະກອນເຄື່ອງໃຊ້, ex
ຈະ​ບໍ່​ຂຽນ​ໄຟລ​໌​ຫຼື​ກັບ​ຄືນ​ໄປ​ບ່ອນ​ຄໍາ​ສັ່ງ​ຫຼື​ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​, ແລະ​ຈະ​ຢຸດ​ເຊົາ​ການ​
ສະຖານະທາງອອກທີ່ບໍ່ແມ່ນສູນ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ເມື່ອພົບຄວາມຜິດພາດທີ່ບໍ່ສາມາດຟື້ນຟູໄດ້, ມັນຈະເທົ່າກັບ SIGHUP.
ເຫດການ asynchronous.

ຖ້າບໍ່ດັ່ງນັ້ນ, ເມື່ອພົບຂໍ້ຜິດພາດ, ບັນນາທິການຈະປະຕິບັດຕົວຕາມທີ່ລະບຸໄວ້ໃນ ຄໍາສັ່ງ
ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex.

ໄດ້ ດັ່ງຕໍ່ໄປນີ້ ພາກສ່ວນ ມີ ຂໍ້ມູນ.

ຄໍາຮ້ອງສະຫມັກ ການນໍາໃຊ້


ຖ້າສັນຍານ SIGSEGV ໄດ້ຮັບໃນຂະນະທີ່ ex ກໍາລັງບັນທຶກໄຟລ໌, ໄຟລ໌ອາດຈະບໍ່ເປັນ
ບັນທຶກສຳເລັດແລ້ວ.

ໄດ້ ຕໍ່ໄປ ຄໍາສັ່ງສາມາດຍອມຮັບຫຼາຍກ່ວາຫນຶ່ງໄຟລ໌, ດັ່ງນັ້ນການນໍາໃຊ້ເຊັ່ນ:

ຕໍ່ໄປ `ls [abc]*`

ຖືກຕ້ອງ; ມັນ​ຈະ​ບໍ່​ຖືກ​ຕ້ອງ​ສໍາ​ລັບ​ການ​ ດັດແກ້ or ອ່ານ ຄໍາສັ່ງ, ສໍາລັບການຍົກຕົວຢ່າງ, ຍ້ອນວ່າເຂົາເຈົ້າ
ຄາດຫວັງວ່າພຽງແຕ່ຫນຶ່ງໄຟລ໌ແລະຜົນໄດ້ຮັບທີ່ບໍ່ລະບຸຈະເກີດຂຶ້ນ.

ຕົວຢ່າງ


ບໍ່ມີ.

ສະຖານທີ່


ໄດ້ ex/vi ສະເພາະແມ່ນອີງໃສ່ການປະຕິບັດປະຫວັດສາດທີ່ພົບເຫັນຢູ່ໃນ 4 BSD ແລະລະບົບ
V ການ​ປະ​ຕິ​ບັດ​ຂອງ​ ex ແລະ vi.

A ຖືກຈໍາກັດ ບັນນາທິການ (ທັງປະຫວັດສາດ ສີແດງ ຜົນປະໂຫຍດແລະການດັດແກ້ເພື່ອ ex) ໄດ້
ພິຈາລະນາແລະປະຕິເສດສໍາລັບການລວມ. ທັງສອງທາງເລືອກບໍ່ໄດ້ໃຫ້ລະດັບຄວາມປອດໄພນັ້ນ
ຜູ້ໃຊ້ອາດຈະຄາດຫວັງ.

ມັນໄດ້ຖືກຮັບຮູ້ວ່າ ex ຮູບ​ແບບ​ການ​ສາຍ​ຕາ​ແລະ​ລັກ​ສະ​ນະ​ທີ່​ກ່ຽວ​ຂ້ອງ​ຈະ​ເປັນ​ການ​ຍາກ​, ຖ້າ​ຫາກ​ວ່າ​ບໍ່​
ເປັນ​ໄປ​ບໍ່​ໄດ້​, ການ​ປະ​ຕິ​ບັດ​ທີ່​ຫນ້າ​ພໍ​ໃຈ​ຢູ່​ໃນ​ສະ​ຖາ​ນີ block-mode​, ຫຼື terminal ໂດຍ​ບໍ່​ມີ​ການ
ຮູບ​ແບບ​ການ​ແກ້​ໄຂ​ຕົວ​ກະ​ພິບ​ໃດ​ຫນຶ່ງ​; ດັ່ງນັ້ນ, ມັນບໍ່ແມ່ນຂໍ້ບັງຄັບທີ່ມີລັກສະນະດັ່ງກ່າວ
ຄວນເຮັດວຽກຢູ່ໃນທຸກ terminals. ມັນແມ່ນຄວາມຕັ້ງໃຈ, ຢ່າງໃດກໍຕາມ, ທີ່ ex ການປະຕິບັດ
ຄວນສະຫນອງຄວາມສາມາດອັນເຕັມທີ່ຂອງທຸກ terminals ທີ່ສາມາດສະຫນັບສະຫນູນພວກເຂົາ.

ທາງເລືອກໃນການ
ໄດ້ −ຄ ທົດແທນທີ່ +ຄໍາສັ່ງ ໄດ້ຮັບການດົນໃຈໂດຍ −e ທາງເລືອກຂອງ sed. ໃນປະຫວັດສາດ, ທັງຫມົດ
ຄໍາສັ່ງດັ່ງກ່າວ (ເບິ່ງ ດັດແກ້ ແລະ ຕໍ່ໄປ ເຊັ່ນດຽວກັນ) ຖືກປະຕິບັດຈາກແຖວສຸດທ້າຍຂອງການແກ້ໄຂ
ບັຟເຟີ. ນີ້ຫມາຍຄວາມວ່າ, ສໍາລັບການຍົກຕົວຢ່າງ, ວ່າ "+/ ຮູບແບບ" ຈະລົ້ມເຫລວເວັ້ນເສຍແຕ່ວ່າ wrapscan ທາງເລືອກ
ຖືກຕັ້ງ. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ໄດ້ +ຄໍາສັ່ງ ທາງເລືອກແມ່ນ
ບໍ່ໄດ້ລະບຸໄວ້ໃນ POSIX.1-2008 ອີກຕໍ່ໄປ ແຕ່ອາດມີຢູ່ໃນບາງການຈັດຕັ້ງປະຕິບັດ.
ໃນປະຫວັດສາດ, ການປະຕິບັດບາງຢ່າງໄດ້ຈໍາກັດ ex ຄໍາສັ່ງທີ່ສາມາດຖືກລະບຸໄວ້ເປັນສ່ວນຫນຶ່ງ
ຂອງການໂຕ້ຖຽງແຖວຄໍາສັ່ງ. ສໍາລັບຄວາມສອດຄ່ອງ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ເຫຼົ່ານີ້
ຂໍ້ ຈຳ ກັດ.

ໃນການປະຕິບັດປະຫວັດສາດຂອງບັນນາທິການ, ໄດ້ −ຣ ທາງເລືອກ (ແລະ ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​)
ພຽງແຕ່ປ້ອງກັນການຂຽນທັບຂອງໄຟລ໌; ການ​ຕໍ່​ທ້າຍ​ກັບ​ໄຟລ​໌​ແມ່ນ​ຍັງ​ອະ​ນຸ​ຍາດ​ໃຫ້​, ການ​ສ້າງ​ແຜນ​ທີ່​
ວ່າງເຂົ້າໄປໃນ csh noclobber ຕົວແປ. ຢ່າງໃດກໍຕາມ, ການປະຕິບັດບາງຢ່າງບໍ່ໄດ້ປະຕິບັດຕາມ
semantic ນີ້, ແລະ ອ່ານ​ຢ່າງ​ດຽວ ບໍ່ອະນຸຍາດໃຫ້ມີການເພີ່ມເຕີມ. POSIX.1-2008 ປະຕິບັດຕາມ
ການ​ປະ​ຕິ​ບັດ​ຫຼັງ​ຈາກ​ນັ້ນ​, ເຊື່ອ​ວ່າ​ມັນ​ເປັນ​ຄວາມ​ຫມາຍ​ທີ່​ຈະ​ແຈ້ງ​ແລະ intuitive ຫຼາຍ​ຂອງ​ ອ່ານ​ຢ່າງ​ດຽວ.

ໄດ້ −ສ ທາງເລືອກສະກັດກັ້ນການຕອບໂຕ້ຂອງຜູ້ໃຊ້ທັງຫມົດແລະເປັນປະໂຫຍດສໍາລັບການດັດແກ້ສະຄິບ
ໃນ batch ວຽກ. ບັນຊີລາຍຊື່ຜົນກະທົບສະເພາະແມ່ນການປະຕິບັດປະຫວັດສາດ. ປະເພດ terminal
``ບໍ່​ສາ​ມາດ​ທີ່​ຈະ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຮູບ​ແບບ​ເປີດ​ແລະ​ການ​ສາຍ​ຕາ​ໄດ້​' ໄດ້​ມີ​ຊື່​ທາງ​ປະ​ຫວັດ​ສາດ​ວ່າ "dumb​"​.

ໄດ້ -t ທາງເລືອກແມ່ນຕ້ອງການເພາະວ່າ ctags ຜົນປະໂຫຍດປະກົດຢູ່ໃນ POSIX.1-2008 ແລະ
ທາງ​ເລືອກ​ທີ່​ມີ​ຢູ່​ໃນ​ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ​ທັງ​ຫມົດ​ຂອງ​ ex.

ທາງປະຫວັດສາດ, ex ແລະ vi ສາ​ທາ​ລະ​ນະ​ສຸກ​ໄດ້​ຮັບ​ການ​ຍອມ​ຮັບ a − x ທາງເລືອກ, ເຊິ່ງໄດ້ເຂົ້າລະຫັດໂດຍອີງໃສ່
ສູດການຄິດໄລ່ທີ່ພົບເຫັນຢູ່ໃນປະຫວັດສາດ ເຂົ້າລະຫັດ ປະໂຫຍດ. ໄດ້ − x ທາງ​ເລືອກ​ສໍາ​ລັບ​ການ​ເຂົ້າ​ລະ​ຫັດ​, ແລະ​
ທີ່ກ່ຽວຂ້ອງ ເຂົ້າລະຫັດ ຜົນປະໂຫຍດ, ໄດ້ຖືກຍົກເລີກເພາະວ່າ algorithm ທີ່ໃຊ້ບໍ່ໄດ້ກໍານົດແລະ
ກົດຫມາຍຄວບຄຸມການສົ່ງອອກຂອງບາງປະເທດເຮັດໃຫ້ມັນຍາກທີ່ຈະສົ່ງອອກລະຫັດລັບ
ເຕັກ​ໂນ​ໂລ​ຊີ​. ນອກຈາກນັ້ນ, ມັນບໍ່ໄດ້ໃຫ້ລະດັບຄວາມປອດໄພຂອງຜູ້ຊົມໃຊ້ໃນປະຫວັດສາດ
ອາດຈະຄາດຫວັງ.

ມາດຕະຖານ ການປ້ອນຂໍ້ມູນ
ເງື່ອນໄຂການສິ້ນສຸດຂອງໄຟລ໌ບໍ່ທຽບເທົ່າກັບຕົວອັກສອນສິ້ນສຸດຂອງໄຟລ໌. ການສິ້ນສຸດທົ່ວໄປຂອງ -
ຕົວ​ອັກ​ສອນ​ໄຟລ​໌​, -D, ເປັນປະຫວັດສາດ ex ຄໍາສັ່ງ.

ບໍ່ມີຄວາມຍາວສູງສຸດໃນການປະຕິບັດປະຫວັດສາດຂອງ ex. ໂດຍສະເພາະ, ຍ້ອນວ່າມັນ
ຖືກວິເຄາະເປັນຕ່ອນໆ, ທີ່ຢູ່ມີຄວາມຍາວສູງສຸດທີ່ແຕກຕ່າງຈາກຊື່ໄຟລ໌.
ນອກຈາກນັ້ນ, ຂະຫນາດ buffer ສູງສຸດໄດ້ຖືກປະກາດເປັນ BUFSIZ, ເຊິ່ງມີຄວາມຍາວແຕກຕ່າງກັນ.
ໃນ​ລະ​ບົບ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​. ລຸ້ນນີ້ເລືອກຄ່າຂອງ {LINE_MAX} ເພື່ອບັງຄັບໃຫ້ສົມເຫດສົມຜົນ
ຂໍ້​ຈໍາ​ກັດ​ການ​ນໍາ​ໃຊ້ Portable ຂອງ​ ex ແລະການຊ່ວຍເຫຼືອນັກຂຽນຊຸດທົດສອບໃນການພັດທະນາຂອງພວກເຂົາ
ການທົດສອບຕົວຈິງທີ່ໃຊ້ຂອບເຂດຈໍາກັດນີ້.

ການປ້ອນຂໍ້ມູນ ໄຟ
ມັນແມ່ນການຕັດສິນໃຈທີ່ຊັດເຈນໂດຍຜູ້ພັດທະນາມາດຕະຖານ a ຈະຖືກເພີ່ມໃສ່ໃດໆ
ຂາດໄຟລ໌ຫນຶ່ງ. ມັນໄດ້ຖືກເຊື່ອວ່າຄຸນນະສົມບັດນີ້ຂອງ ex ແລະ vi ໄດ້ຖືກເພິ່ງພາອາໄສໂດຍຜູ້ໃຊ້ໃນ
ເພື່ອ​ເຮັດ​ໃຫ້​ໄຟລ​໌​ຂໍ້​ຄວາມ​ຂາດ​ການ​ຕິດ​ຕາມ​ Portable ຫຼາຍ. ມັນໄດ້ຖືກຮັບຮູ້ວ່າ
ນີ້ຈະຮຽກຮ້ອງໃຫ້ມີທາງເລືອກທີ່ຜູ້ໃຊ້ສະເພາະຫຼືສ່ວນຂະຫຍາຍສໍາລັບການປະຕິບັດທີ່ອະນຸຍາດ ex
ແລະ vi ແກ້ໄຂໄຟລ໌ປະເພດນອກເໜືອໄປຈາກຂໍ້ຄວາມ ຖ້າໄຟລ໌ດັ່ງກ່າວບໍ່ຖືກລະບຸໂດຍ
ລະບົບ. ມັນໄດ້ຖືກຕົກລົງເຫັນດີວ່າຄວາມສາມາດໃນການແກ້ໄຂໄຟລ໌ຂອງປະເພດ arbitrary ສາມາດເປັນປະໂຫຍດ,
ແຕ່​ບໍ່​ໄດ້​ຖື​ວ່າ​ມີ​ຄວາມ​ຈໍາ​ເປັນ​ທີ່​ຈະ​ບັງ​ຄັບ​ວ່າ​ ex or vi ການ​ປະ​ຕິ​ບັດ​ແມ່ນ​ຕ້ອງ​ການ​
ເພື່ອຈັດການໄຟລ໌ອື່ນນອກຈາກໄຟລ໌ຂໍ້ຄວາມ.

ວັກໃນພາກສ່ວນ INPUT FILES, ``ໂດຍຄ່າເລີ່ມຕົ້ນ, ...'', ມີຈຸດປະສົງເພື່ອປິດ
ບັນຫາຄວາມປອດໄພທີ່ຍາວນານຢູ່ໃນ ex ແລະ vi; ຂອງ "ຕົວແບບ" ຫຼື "ຕົວແບບ"
ແກ້ໄຂທາງເລືອກ. ຄຸນສົມບັດນີ້ອະນຸຍາດໃຫ້ມີແຖວໃດນຶ່ງໃນຫ້າແຖວທຳອິດ ຫຼືສຸດທ້າຍຂອງໄຟລ໌
ປະກອບດ້ວຍສາຍ "ເຊັ່ນ:" or "vi:" (ແລະ, ປາກົດຂື້ນ, "ອີ:" or "vx:") ເປັນ​ເສັ້ນ​
ປະກອບດ້ວຍຄໍາສັ່ງບັນນາທິການ, ແລະ ex ແປຂໍ້ຄວາມທັງໝົດຈົນເຖິງອັນຕໍ່ໄປ ':' ຫຼື
ເປັນຄໍາສັ່ງ. ພິຈາລະນາຜົນສະທ້ອນ, ສໍາລັບການຍົກຕົວຢ່າງ, ຂອງຜູ້ໃຊ້ unsuspecting ການນໍາໃຊ້ ex or
vi ໃນ​ຖາ​ນະ​ເປັນ​ບັນ​ນາ​ທິ​ການ​ໃນ​ເວ​ລາ​ທີ່​ຕອບ​ກັບ​ຂໍ້​ຄວາມ​ເມລ​ທີ່​ເປັນ​ແຖວ​ເຊັ່ນ​:

ຕົວຢ່າງ:! rm -rf :

ປາກົດຢູ່ໃນເສັ້ນລາຍເຊັນ. ນັກພັດທະນາມາດຕະຖານເຊື່ອຢ່າງແຂງແຮງວ່າບັນນາທິການ
ບໍ່ຄວນຕີຄວາມໝາຍເສັ້ນໃດໆຂອງໄຟລ໌ຕາມຄ່າເລີ່ມຕົ້ນ. ຜູ້ຂາຍຖືກກະຕຸ້ນຢ່າງແຂງແຮງເພື່ອລຶບ
ຄຸນ​ນະ​ສົມ​ບັດ​ນີ້​ຈາກ​ການ​ປະ​ຕິ​ບັດ​ຂອງ​ເຂົາ​ເຈົ້າ​ ex ແລະ vi.

Asynchronous ກິດຈະກໍາ
ຄວາມຕັ້ງໃຈຂອງຄໍາວ່າ "ຂຽນຄົບຖ້ວນ" ແມ່ນວ່າການແກ້ໄຂທັງຫມົດຈະຖືກຂຽນ
ການເກັບຮັກສາທີ່ຫມັ້ນຄົງ. ບັນທຶກກ່ຽວກັບໄຟລ໌ຊົ່ວຄາວແມ່ນມີຈຸດປະສົງເພື່ອປະຕິບັດ
ໃຊ້ໄຟລ໌ຊົ່ວຄາວເພື່ອກັບຄືນແກ້ໄຂ buffers ທີ່ບໍ່ມີຊື່ໂດຍຜູ້ໃຊ້.

ໃນປະຫວັດສາດ, SIGQUIT ໄດ້ຖືກລະເລີຍໂດຍ ex, ແຕ່ແມ່ນທຽບເທົ່າຂອງ Q ຄໍາສັ່ງໃນສາຍຕາ
ໂຫມດ; ນັ້ນແມ່ນ, ມັນອອກຈາກໂຫມດສາຍຕາແລະເຂົ້າ ex ໂໝດ. POSIX.1-2008 ອະນຸຍາດ, ແຕ່ວ່າ
ບໍ່ຮຽກຮ້ອງໃຫ້ມີ, ພຶດຕິກໍານີ້. ໃນປະຫວັດສາດ, SIGINT ມັກຈະຖືກນໍາໃຊ້ໂດຍ vi ຜູ້​ໃຊ້​ທີ່​ຈະ​ຢຸດ​ເຊົາ​ການ​
ຮູບແບບການປ້ອນຂໍ້ຄວາມ ( -C ມັກຈະເຂົ້າງ່າຍກວ່າ ). ການປະຕິບັດບາງຢ່າງ
of vi ໄດ້ເຕືອນສະຖານີກ່ຽວກັບເຫດການນີ້, ແລະບາງຄົນບໍ່ໄດ້. POSIX.1-2008 ຕ້ອງການນັ້ນ
SIGINT ປະຕິບັດຕົວຄືກັນ , ແລະວ່າ terminal ບໍ່ໄດ້ຮັບການເຕືອນ.

ໃນປະຫວັດສາດ, ການຢຸດເຊົາການ ex ບັນນາທິການໃນລະຫວ່າງຮູບແບບການປ້ອນຂໍ້ຄວາມແມ່ນຄ້າຍຄືກັນກັບ SIGINT, as
ເສັ້ນທີ່ສໍາເລັດແລ້ວໄດ້ຖືກເກັບຮັກສາໄວ້, ແຕ່ເສັ້ນບາງສ່ວນຖືກຍົກເລີກ, ແລະບັນນາທິການໄດ້ກັບຄືນໄປຫາ
ຮູບແບບຄໍາສັ່ງ. POSIX.1-2008 ແມ່ນງຽບຢູ່ໃນບັນຫານີ້; ການຈັດຕັ້ງປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້
ປະຕິບັດຕາມການປະຕິບັດປະຫວັດສາດ, ບ່ອນທີ່ເປັນໄປໄດ້.

ທາງປະຫວັດສາດ, vi ບັນນາທິການບໍ່ໄດ້ປະຕິບັດ SIGTSTP ເປັນເຫດການບໍ່ກົງກັນ, ແລະມັນແມ່ນ
ດັ່ງນັ້ນຈຶ່ງເປັນໄປບໍ່ໄດ້ທີ່ຈະລະງັບຕົວແກ້ໄຂໃນຮູບແບບການປ້ອນຂໍ້ຄວາມດ້ວຍພາບ. ມີສອງທີ່ສໍາຄັນ
ເຫດຜົນສໍາລັບການນີ້. ທໍາອິດແມ່ນວ່າ SIGTSTP ເປັນສັນຍານອອກອາກາດໃນລະບົບ UNIX, ແລະ
ລະບົບຕ່ອງໂສ້ຂອງເຫດການທີ່ຫອຍ execs ເປັນຄໍາຮ້ອງສະຫມັກຫຼັງຈາກນັ້ນ execs vi ສາເຫດປົກກະຕິ
ຄວາມສັບສົນສໍາລັບສະຖານະ terminal ຖ້າ SIGTSTP ຖືກສົ່ງໄປຫາກຸ່ມຂະບວນການໃນ
ວິທີການເລີ່ມຕົ້ນ. ອັນທີສອງແມ່ນການຈັດຕັ້ງປະຕິບັດ UNIX ສ່ວນໃຫຍ່ curses ຊຸດໄດ້ເຮັດ
ບໍ່ຈັດການກັບ SIGTSTP ຢ່າງປອດໄພ, ແລະການໄດ້ຮັບ SIGTSTP ໃນເວລາທີ່ບໍ່ຖືກຕ້ອງຈະເຮັດໃຫ້ພວກເຂົາ
ຂັດຂ້ອງ. POSIX.1-2008 ແມ່ນງຽບຢູ່ໃນບັນຫານີ້; ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ປິ່ນປົວ
suspension ເປັນເຫດການ asynchronous ຖ້າເປັນໄປໄດ້.

ໃນທາງປະຫວັດສາດ, ການດັດແປງແກ້ໄຂ buffer ທີ່ເຮັດກ່ອນ SIGINT ຂັດຂວາງການດໍາເນີນການ
ໄດ້ຖືກເກັບຮັກສາໄວ້; ນັ້ນແມ່ນ, ທຸກບ່ອນຈາກສູນໄປຫາທຸກເສັ້ນທີ່ຈະແກ້ໄຂອາດຈະມີ
ໄດ້ຖືກແກ້ໄຂໂດຍເວລາທີ່ SIGINT ມາຮອດ. ການປ່ຽນແປງເຫຼົ່ານີ້ບໍ່ໄດ້ຖືກຍົກເລີກໂດຍ
ການມາເຖິງຂອງ SIGINT. POSIX.1-2008 ອະນຸຍາດໃຫ້ພຶດຕິກໍານີ້, ໃຫ້ສັງເກດວ່າ ຍົກເລີກ ຄໍາສັ່ງແມ່ນ
ຕ້ອງການເພື່ອໃຫ້ສາມາດຍົກເລີກຄໍາສັ່ງທີ່ເຮັດສໍາເລັດບາງສ່ວນເຫຼົ່ານີ້.

ການປະຕິບັດສໍາລັບສັນຍານອື່ນນອກເຫນືອຈາກ SIGINT, SIGCONT, SIGHUP, ແລະ SIGTERM ແມ່ນ
ບໍ່ໄດ້ລະບຸເນື່ອງຈາກການຈັດຕັ້ງປະຕິບັດບາງອັນພະຍາຍາມບັນທຶກບັຟເຟີການແກ້ໄຂໃຫ້ຢູ່ໃນສະຖານະທີ່ເປັນປະໂຫຍດ
ເມື່ອສັນຍານອື່ນໆໄດ້ຮັບ.

ມາດຕະຖານ Error
ສໍາລັບການ ex/vi, ຂໍ້ຄວາມວິນິດໄສແມ່ນຂໍ້ຄວາມເຫຼົ່ານັ້ນທີ່ຖືກລາຍງານເປັນຜົນມາຈາກຄວາມພະຍາຍາມທີ່ລົ້ມເຫລວ
ຮຽກຮ້ອງ ex or vi, ເຊັ່ນ: ທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຫຼືຊັບພະຍາກອນບໍ່ພຽງພໍ, ຫຼືຜິດປົກກະຕິ
ເງື່ອນໄຂການຢຸດເຊົາ. ຂໍ້ຄວາມວິນິດໄສບໍ່ຄວນສັບສົນກັບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ
ສ້າງຂຶ້ນໂດຍຄຳສັ່ງຜູ້ໃຊ້ທີ່ບໍ່ເໝາະສົມ ຫຼືຜິດກົດໝາຍ.

ການລິເລີ່ມ in ex ແລະ vi
ຖ້າເປັນ ex ຄໍາສັ່ງ (ນອກຈາກນັ້ນ cd, chdir, ຫຼື ແຫຼ່ງ) ມີ argument ຊື່ໄຟລ໌, ຫນຶ່ງຫຼືທັງສອງ
ຊື່ເສັ້ນທາງສຳຮອງ ແລະປັດຈຸບັນຈະຖືກຕັ້ງ. ບໍ່ເປັນທາງການ, ພວກມັນຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້:

1. ຖ້າທ ex ຄໍາສັ່ງແມ່ນຫນຶ່ງທີ່ທົດແທນເນື້ອໃນຂອງການແກ້ໄຂ buffer, ແລະມັນ
ສໍາເລັດ, ຊື່ເສັ້ນທາງປະຈຸບັນຈະຖືກຕັ້ງເປັນ argument ຊື່ໄຟລ໌ (ທໍາອິດ
filename argument ໃນກໍລະນີຂອງ ຕໍ່ໄປ command) ແລະຊື່ເສັ້ນທາງສະຫຼັບຈະເປັນ
ຕັ້ງເປັນຊື່ເສັ້ນທາງປະຈຸບັນທີ່ຜ່ານມາ, ຖ້າມີອັນນຶ່ງ.

2. ໃນກໍລະນີຂອງໄຟລ໌ອ່ານ / ຂຽນແບບຟອມຂອງ ອ່ານ ແລະ ຂຽນ ຄໍາສັ່ງ, ຖ້າມີ
ບໍ່ມີຊື່ເສັ້ນທາງປະຈຸບັນ, ຊື່ເສັ້ນທາງປະຈຸບັນຈະຖືກຕັ້ງເປັນອາກິວເມັນຊື່ໄຟລ໌.

3. ຖ້າບໍ່ດັ່ງນັ້ນ, ຊື່ເສັ້ນທາງສຳຮອງຈະຖືກຕັ້ງເປັນອາກິວເມັນຊື່ໄຟລ໌.

ຍົກ​ຕົວ​ຢ່າງ, :ດັດແກ້ ຟູ ແລະ :ຟື້ນຕົວ ຟູ, ເມື່ອປະສົບຜົນສໍາເລັດ, ຕັ້ງຊື່ເສັ້ນທາງປະຈຸບັນ, ແລະ,
ຖ້າມີຊື່ເສັ້ນທາງປະຈຸບັນທີ່ຜ່ານມາ, ຊື່ເສັ້ນທາງສຳຮອງ. ຄໍາສັ່ງ :ຂຽນ,
!ຄຳສັ່ງ, ແລະ :ດັດແກ້ ບໍ່ຕັ້ງຊື່ເສັ້ນທາງປະຈຸບັນ ຫຼືທາງເລືອກ. ຖ້າ :ດັດແກ້ ຟູ
ຄໍາສັ່ງແມ່ນລົ້ມເຫລວສໍາລັບເຫດຜົນບາງຢ່າງ, ຊື່ເສັ້ນທາງທາງເລືອກຈະຖືກຕັ້ງ. ໄດ້ ອ່ານ ແລະ
ຂຽນ ຄໍາ​ສັ່ງ​ກໍາ​ນົດ​ຊື່​ເສັ້ນ​ທາງ​ສະ​ຫຼັບ​ກັບ​ເຂົາ​ເຈົ້າ​ ເອກະສານ ການໂຕ້ຖຽງ, ເວັ້ນເສຍແຕ່ວ່າປະຈຸບັນ
ຊື່ເສັ້ນທາງບໍ່ໄດ້ຖືກຕັ້ງ, ໃນກໍລະນີນີ້ພວກເຂົາຕັ້ງຊື່ເສັ້ນທາງປະຈຸບັນເປັນຂອງພວກເຂົາ ເອກະສານ ການໂຕ້ຖຽງ.
ຊື່ເສັ້ນທາງສຳຮອງບໍ່ໄດ້ຕັ້ງໄວ້ໃນປະຫວັດສາດໂດຍ :ແຫຼ່ງ ຄໍາສັ່ງ. POSIX.1-2008
ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ການປະຕິບັດການເພີ່ມຄໍາສັ່ງທີ່ເອົາ
ຊື່ໄຟລ໌ເປັນ arguments ໄດ້ຖືກຊຸກຍູ້ໃຫ້ຕັ້ງຊື່ເສັ້ນທາງທາງເລືອກທີ່ອະທິບາຍຢູ່ທີ່ນີ້.

ໃນປະຫວັດສາດ, ex ແລະ vi ອ່ານ .exrc ໄຟລ໌ໃນ $ ບ້ານ ໄດເລກະທໍລີສອງຄັ້ງ, ຖ້າບັນນາທິການ
ໄດ້ຖືກປະຕິບັດຢູ່ໃນ $ ບ້ານ ໄດເລກະທໍລີ. POSIX.1-2008 ຫ້າມພຶດຕິກຳນີ້.

ໃນປະຫວັດສາດ, 4 BSD ex ແລະ vi ອ່ານ $ ບ້ານ ແລະທ້ອງຖິ່ນ .exrc ໄຟລ໌ຖ້າພວກເຂົາເປັນເຈົ້າຂອງ
ໂດຍ ID ທີ່ແທ້ຈິງຂອງຜູ້ໃຊ້, ຫຼື ແຫຼ່ງ ທາງ​ເລືອກ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​, ໂດຍ​ບໍ່​ສົນ​ເລື່ອງ​ຂອງ​ອື່ນໆ​
ການພິຈາລະນາ. ນີ້ແມ່ນບັນຫາດ້ານຄວາມປອດໄພເພາະວ່າມັນເປັນໄປໄດ້ທີ່ຈະວາງ UNIX ປົກກະຕິ
ຄໍາສັ່ງລະບົບພາຍໃນ a .exrc ໄຟລ໌. POSIX.1-2008 ບໍ່ໄດ້ລະບຸ ແຫຼ່ງ ທາງເລືອກ,
ແລະການປະຕິບັດປະຫວັດສາດໄດ້ຖືກຊຸກຍູ້ໃຫ້ລຶບມັນ.

ໄດ້ .exrc ໄຟລ໌ຈະຕ້ອງເປັນເຈົ້າຂອງໂດຍ ID ທີ່ແທ້ຈິງຂອງຜູ້ໃຊ້, ແລະບໍ່ສາມາດຂຽນໄດ້ໂດຍຜູ້ອື່ນ
ກ່ວາເຈົ້າຂອງ. ການຍົກເວັ້ນສິດທິພິເສດທີ່ເຫມາະສົມແມ່ນມີຈຸດປະສົງເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດ
ໄດ້ຮັບສິດທິພິເສດ, ແຕ່ສືບຕໍ່ນໍາໃຊ້ .exrc ໄຟລ໌ຢູ່ໃນໄດເລກະທໍລີເຮືອນຂອງພວກເຂົາ.

System V Release 3.2 ແລະຕໍ່ມາ vi ການປະຕິບັດໄດ້ເພີ່ມທາງເລືອກ [ບໍ່]exrc. ພຶດຕິກຳ
ແມ່ນທ້ອງຖິ່ນນັ້ນ .exrc ໄຟລ໌ແມ່ນອ່ານໄດ້ເທົ່ານັ້ນຖ້າຫາກວ່າ exrc ທາງ​ເລືອກ​ໄດ້​ຖືກ​ຕັ້ງ​ໄວ້​. ຄ່າເລີ່ມຕົ້ນສໍາລັບການ
exrc ທາງເລືອກຖືກປິດ, ດັ່ງນັ້ນໂດຍຄ່າເລີ່ມຕົ້ນ, ທ້ອງຖິ່ນ .exrc ບໍ່ໄດ້ອ່ານໄຟລ໌. ບັນຫານີ້ແມ່ນ
ຈຸດ​ປະ​ສົງ​ທີ່​ຈະ​ແກ້​ໄຂ​ແມ່ນ​ວ່າ​ລະ​ບົບ V ອະ​ນຸ​ຍາດ​ໃຫ້​ຜູ້​ໃຊ້​ໃຫ້​ໄປ​ໄຟລ​໌​, ສະ​ນັ້ນ​ບໍ່​ມີ​
ຄວາມເປັນເຈົ້າຂອງທີ່ເປັນໄປໄດ້ຫຼືການທົດສອບຄວາມສາມາດໃນການຂຽນເພື່ອຮັບປະກັນວ່າໄຟລ໌ປອດໄພ. ອັນນີ້ຍັງເປັນ
ບັນຫາຄວາມປອດໄພໃນລະບົບທີ່ຜູ້ໃຊ້ສາມາດໃຫ້ໄຟລ໌ອອກໄປໄດ້, ແຕ່ບໍ່ມີຫຍັງເລີຍ
ເພີ່ມເຕີມທີ່ POSIX.1-2008 ສາມາດເຮັດໄດ້. ຂໍ້ຍົກເວັ້ນທີ່ກໍານົດການປະຕິບັດແມ່ນມີຈຸດປະສົງເພື່ອ
ອະນຸຍາດໃຫ້ກຸ່ມມີທ້ອງຖິ່ນ .exrc ໄຟລ໌ທີ່ຖືກແບ່ງປັນໂດຍຜູ້ໃຊ້, ໂດຍການສ້າງຜູ້ໃຊ້ pseudo
ເພື່ອເປັນເຈົ້າຂອງໄຟລ໌ທີ່ແບ່ງປັນ.

POSIX.1-2008 ບໍ່ໄດ້ກ່າວເຖິງທົ່ວລະບົບ ex ແລະ vi ໄຟລ໌ເລີ່ມຕົ້ນ. ໃນຂະນະທີ່ພວກເຂົາຢູ່ໃນ
ການ​ປະ​ຕິ​ບັດ​ຈໍາ​ນວນ​ຫນຶ່ງ​ຂອງ​ ex ແລະ vi, ພວກມັນບໍ່ມີຢູ່ໃນການປະຕິບັດໃດໆ
ພິຈາລະນາການປະຕິບັດປະຫວັດສາດໂດຍ POSIX.1-2008. ການປະຕິບັດທີ່ມີໄຟລ໌ດັ່ງກ່າວ
ຄວນໃຊ້ພວກມັນພຽງແຕ່ຖ້າພວກເຂົາເປັນເຈົ້າຂອງໂດຍ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງຫຼືຜູ້ໃຊ້ທີ່ເຫມາະສົມ (ສໍາລັບ
ຕົວຢ່າງ, ຮາກໃນລະບົບ UNIX) ແລະຖ້າພວກມັນບໍ່ສາມາດຂຽນໄດ້ໂດຍຜູ້ໃຊ້ອື່ນນອກເຫນືອຈາກພວກມັນ
ເຈົ້າຂອງ. ໄຟລ໌ເລີ່ມຕົ້ນທົ່ວລະບົບຄວນອ່ານກ່ອນ ອອກໄປ ຕົວແປ, $HOME/.exrc,
ຫລືທ້ອງຖິ່ນ .exrc ໄຟລ໌ຖືກປະເມີນ.

ປະຫວັດສາດ, ໃດ ex ຄໍາສັ່ງສາມາດຖືກໃສ່ໃນ ອອກໄປ ຕົວແປຫຼື .exrc ແຟ້ມ,
ເຖິງແມ່ນວ່າອັນທີ່ຮຽກຮ້ອງໃຫ້ແກ້ໄຂ buffer ມີແຖວຂອງຂໍ້ຄວາມໂດຍທົ່ວໄປແລ້ວ
ເຮັດໃຫ້ການປະຕິບັດປະຫວັດສາດຂອງບັນນາທິການຫຼຸດລົງ core. POSIX.1-2008 ຕ້ອງການນັ້ນ
ໃດ ex ຄໍາສັ່ງຖືກອະນຸຍາດໃຫ້ຢູ່ໃນ ອອກໄປ ຕົວແປແລະ .exrc ໄຟລ໌, ສໍາລັບຄວາມງ່າຍດາຍຂອງ
ສະເພາະແລະຄວາມສອດຄ່ອງ, ເຖິງແມ່ນວ່າຈໍານວນຫຼາຍຂອງພວກເຂົາແນ່ນອນຈະລົ້ມເຫລວພາຍໃຕ້ຈໍານວນຫຼາຍ
ສະຖານະການ.

ການເລີ່ມຕົ້ນຂອງເນື້ອໃນຂອງການແກ້ໄຂ buffer ໃຊ້ຄໍາວ່າ "ຜົນກະທົບຈະ
be'' ກ່ຽວກັບການຕ່າງໆ ex ຄໍາສັ່ງ. ຈຸດປະສົງຂອງປະໂຫຍກນີ້ແມ່ນການແກ້ໄຂ buffer
ເນື້ອໃນທີ່ໂຫລດໃນໄລຍະເບື້ອງຕົ້ນຈະບໍ່ສູນເສຍ; ນັ້ນແມ່ນ, ການໂຫຼດການແກ້ໄຂ
buffer ຄວນລົ້ມເຫລວຖ້າຫາກວ່າ .exrc ໄຟລ໌ອ່ານຢູ່ໃນເນື້ອໃນຂອງໄຟລ໌ແລະບໍ່ໄດ້
ຕໍ່ມາຂຽນ buffer ແກ້ໄຂ. ຈຸດປະສົງເພີ່ມເຕີມຂອງປະໂຫຍກນີ້ແມ່ນເພື່ອລະບຸວ່າ
ເສັ້ນ ແລະ ຖັນ ເບື້ອງ ຕົ້ນ ໃນ ປະ ຈຸ ບັນ ໄດ້ ຖືກ ກໍາ ນົດ ໄວ້ ຕາມ ທີ່ ກໍາ ນົດ ໄວ້ ສໍາ ລັບ ບຸກ ຄົນ ex ຄຳ ສັ່ງ.

ທາງປະຫວັດສາດ, -t ທາງເລືອກປະຕິບັດຄືກັບວ່າການຄົ້ນຫາແທັກແມ່ນ a +ຄໍາສັ່ງ; ນັ້ນແມ່ນ, ມັນແມ່ນ
ປະຕິບັດຈາກແຖວສຸດທ້າຍຂອງໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍແທັກ. ນີ້ເຮັດໃຫ້ການຄົ້ນຫາ
ລົ້ມເຫລວຖ້າຫາກວ່າຮູບແບບແມ່ນຮູບແບບການຄົ້ນຫາຕໍ່ຫນ້າແລະ wrapscan ທາງເລືອກການແກ້ໄຂບໍ່ແມ່ນ
ຕັ້ງ. POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້, ຮຽກຮ້ອງໃຫ້ຊອກຫາແທັກ
ຮູບ​ແບບ​ການ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​ໃນ​ໄຟລ​໌​ທັງ​ຫມົດ​, ແລະ​, ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ພົບ​, ເສັ້ນ​ໃນ​ປັດ​ຈຸ​ບັນ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​
ໄປຫາສະຖານທີ່ທີ່ສົມເຫດສົມຜົນກວ່າຢູ່ໃນໄຟລ໌.

ໃນທາງປະຫວັດສາດ, ບັຟເຟີການແກ້ໄຂທີ່ຫວ່າງເປົ່າທີ່ນໍາສະເຫນີສໍາລັບການດັດແກ້ເມື່ອໄຟລ໌ບໍ່ຖືກກໍານົດໂດຍ
ຜູ້ໃຊ້ບໍ່ມີຊື່. ອັນນີ້ແມ່ນອະນຸຍາດໂດຍ POSIX.1-2008; ຢ່າງໃດກໍຕາມ, ການປະຕິບັດແມ່ນ
ຊຸກຍູ້ໃຫ້ຜູ້ໃຊ້ຊື່ໄຟລ໌ຊົ່ວຄາວສໍາລັບ buffer ນີ້ເພາະວ່າມັນອະນຸຍາດໃຫ້ພວກເຂົາ
ການນໍາໃຊ້ຂອງ ex ຄໍາສັ່ງທີ່ໃຊ້ຊື່ເສັ້ນທາງປະຈຸບັນໃນລະຫວ່າງການດັດແກ້ຊົ່ວຄາວ.

ໃນປະຫວັດສາດ, ໄຟລ໌ທີ່ລະບຸໂດຍໃຊ້ -t ທາງເລືອກບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງການໂຕ້ຖຽງໃນປະຈຸບັນ
ບັນຊີລາຍຊື່. ການປະຕິບັດນີ້ແມ່ນອະນຸຍາດໂດຍ POSIX.1-2008; ຢ່າງໃດກໍຕາມ, ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້
ເພື່ອລວມເອົາຊື່ຂອງມັນຢູ່ໃນບັນຊີລາຍຊື່ການໂຕ້ຖຽງປະຈຸບັນເພື່ອຄວາມສອດຄ່ອງ.

ທາງປະຫວັດສາດ, −ຄ ໂດຍທົ່ວໄປຄໍາສັ່ງບໍ່ໄດ້ຖືກປະຕິບັດຈົນກ່ວາໄຟລ໌ທີ່ມີຢູ່ແລ້ວ
ໄດ້ຖືກດັດແກ້. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດນີ້. ຄໍາສັ່ງນັ້ນ
ສາມາດເຮັດໃຫ້ເກີດການ −ຄ ຄໍາສັ່ງທີ່ຈະປະຕິບັດປະກອບມີ ex ຄໍາສັ່ງ ດັດແກ້, ຕໍ່ໄປ, ກູ້ຄືນ,
ຫວນຄືນ, ແລະ ໂຄດ​ຄໍາ​ສັ່ງ, ແລະ vi ຄໍາສັ່ງ -^ ແລະ -]. ປະຫວັດສາດ, ອ່ານ a
ໄຟລ໌ເຂົ້າໄປໃນ buffer ແກ້ໄຂບໍ່ໄດ້ເຮັດໃຫ້ເກີດ −ຄ ຄໍາສັ່ງທີ່ຈະປະຕິບັດ (ເຖິງແມ່ນວ່າມັນອາດຈະ
ກໍາ​ນົດ​ຊື່​ເສັ້ນ​ທາງ​ໃນ​ປະ​ຈຸ​ບັນ​) ມີ​ຂໍ້​ຍົກ​ເວັ້ນ​ທີ່​ມັນ​ເຮັດ​ໃຫ້​ເກີດ​ −ຄ ຄໍາສັ່ງທີ່ຈະເປັນ
ດໍາເນີນການຖ້າຫາກວ່າ: ບັນນາທິການຢູ່ໃນ ex ຮູບແບບ, ການແກ້ໄຂ buffer ບໍ່ມີຊື່ເສັ້ນທາງປະຈຸບັນ, ການແກ້ໄຂ
buffer ຫວ່າງເປົ່າ, ແລະບໍ່ມີການພະຍາຍາມອ່ານຄໍາສັ່ງ. ສໍາລັບຄວາມສອດຄ່ອງແລະ
ຄວາມງ່າຍດາຍຂອງຂໍ້ມູນສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ທາງປະຫວັດສາດ, -r ທາງ​ເລືອກ​ແມ່ນ​ຄື​ກັນ​ກັບ​ກອງ​ປະ​ຊຸມ​ແກ້​ໄຂ​ປົກ​ກະ​ຕິ​ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ການ​ຟື້ນ​ຕົວ​
ຂໍ້ມູນທີ່ມີຢູ່ສໍາລັບໄຟລ໌. ອັນນີ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ເຂົ້າ:

vi -r *.ຄ

ແລະ​ການ​ຟື້ນ​ຕົວ​ໄຟລ​໌​ໃດ​ກໍ​ຕາມ​ທີ່​ສາ​ມາດ​ຟື້ນ​ຕົວ​ໄດ້​. ໃນບາງການປະຕິບັດ, ການຟື້ນຕົວແມ່ນ
ພະຍາຍາມພຽງແຕ່ໄຟລ໌ທໍາອິດທີ່ມີຊື່, ແລະໄຟລ໌ບໍ່ໄດ້ເຂົ້າໄປໃນການໂຕ້ຖຽງ
ລາຍການ; ໃນ​ອັນ​ອື່ນ​, ການ​ຟື້ນ​ຕົວ​ໄດ້​ພະ​ຍາ​ຍາມ​ສໍາ​ລັບ​ແຕ່​ລະ​ໄຟລ​໌​ທີ່​ມີ​ຊື່​. ນອກຈາກນັ້ນ, ບາງປະຫວັດສາດ
ການປະຕິບັດຖືກລະເລີຍ -r if -t ຖືກກໍານົດຫຼືບໍ່ສະຫນັບສະຫນູນເສັ້ນຄໍາສັ່ງ ເອກະສານ
ການໂຕ້ຖຽງກັບ -t ທາງເລືອກ. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງຂໍ້ກໍານົດ,
POSIX.1-2008 ບໍ່ອະນຸຍາດກໍລະນີພິເສດເຫຼົ່ານີ້, ແລະຮຽກຮ້ອງໃຫ້ການຟື້ນຕົວຕ້ອງພະຍາຍາມ
ຄັ້ງທຳອິດແຕ່ລະໄຟລ໌ຖືກແກ້ໄຂ.

ໃນປະຫວັດສາດ, vi ໄດ້​ເລີ່ມ​ຕົ້ນ ` ແລະ ' ເຄື່ອງຫມາຍ, ແຕ່ ex ບໍ່. ນີ້ຫມາຍຄວາມວ່າຖ້າຫາກວ່າ
ຄໍາສັ່ງທໍາອິດໃນ ex ຮູບແບບແມ່ນ ສາຍຕາ ຫຼືຖ້າເປັນ ex ຄໍາສັ່ງຖືກປະຕິບັດກ່ອນ (ຕົວຢ່າງ:
vi + 10 ເອກະສານ), vi ໄດ້ຖືກເຂົ້າໄປໂດຍບໍ່ໄດ້ຮັບເຄື່ອງຫມາຍການເລີ່ມຕົ້ນ. ເນື່ອງຈາກວ່າມາດຕະຖານ
ນັກພັດທະນາເຊື່ອວ່າເຄື່ອງຫມາຍທີ່ເປັນປະໂຫຍດໂດຍທົ່ວໄປ, ແລະສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍ
ຂອງສະເພາະ, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ພວກເຂົາເລີ່ມຕົ້ນສະເຫມີຖ້າຢູ່ໃນບ່ອນເປີດຫຼື
ໂໝດສາຍຕາ, ຫຼືຖ້າຢູ່ໃນ ex ໂໝດ ແລະບັຟເຟີການແກ້ໄຂບໍ່ຫວ່າງເປົ່າ. ບໍ່ໄດ້ເລີ່ມຕົ້ນມັນຢູ່ໃນ ex
ຮູບແບບຖ້າການແກ້ໄຂບັຟເຟີຫວ່າງເປົ່າແມ່ນການປະຕິບັດປະຫວັດສາດ; ຢ່າງໃດກໍຕາມ, ມັນໄດ້ສະເຫມີ
ເປັນ​ໄປ​ໄດ້​ທີ່​ຈະ​ກໍາ​ນົດ (ແລະ​ການ​ນໍາ​ໃຊ້​) ເຄື່ອງ​ຫມາຍ​ໃນ​ການ​ແກ້​ໄຂ​ຫວ່າງ​ເປົ່າ buffers ໃນ​ຮູບ​ແບບ​ການ​ເປີດ​ແລະ​ການ​ແກ້​ໄຂ​ຮູບ​ພາບ​
ກອງປະຊຸມ.

ທີ່ຢູ່
ໃນປະຫວັດສາດ, ex ແລະ vi ຍອມຮັບແບບຟອມທີ່ຢູ່ເພີ່ມເຕີມ '\/' ແລະ '\?'. ພວກເຂົາແມ່ນ
ທຽບເທົ່າກັບ "//" ແລະ "??", ຕາມລໍາດັບ. ພວກມັນບໍ່ຕ້ອງການໂດຍ POSIX.1-2008, ສ່ວນຫຼາຍແມ່ນ
ເພາະວ່າບໍ່ມີໃຜສາມາດຈື່ໄດ້ວ່າພວກເຂົາເຄີຍເຮັດຫຍັງທີ່ແຕກຕ່າງກັນໃນປະຫວັດສາດ.

ໃນປະຫວັດສາດ, ex ແລະ vi ອະ​ນຸ​ຍາດ​ໃຫ້​ຢູ່​ຂອງ​ສູນ​ສໍາ​ລັບ​ຄໍາ​ສັ່ງ​ຈໍາ​ນວນ​ຫນຶ່ງ​, ແລະ​ອະ​ນຸ​ຍາດ​ໃຫ້​
ໄດ້ % ທີ່ຢູ່ໃນໄຟລ໌ຫວ່າງເປົ່າສໍາລັບຄົນອື່ນ. ເພື່ອຄວາມສອດຄ່ອງ, POSIX.1-2008 ຕ້ອງການການສະຫນັບສະຫນູນ
ສໍາລັບອະດີດໃນຄໍາສັ່ງຈໍານວນຫນ້ອຍທີ່ມັນມີຄວາມຫມາຍ, ແລະບໍ່ອະນຸຍາດໃຫ້ມັນຖ້າບໍ່ດັ່ງນັ້ນ. ໃນ
ນອກຈາກນັ້ນ, ເນື່ອງຈາກວ່າ POSIX.1-2008 ຕ້ອງການນັ້ນ % ມີເຫດຜົນເທົ່າກັບ "1,$", ມັນ​ແມ່ນ
ຍັງໄດ້ຮັບການສະຫນັບສະຫນູນບ່ອນທີ່ມັນມີຄວາມຫມາຍແລະບໍ່ອະນຸຍາດໃຫ້ຖ້າບໍ່ດັ່ງນັ້ນ.

ທາງປະຫວັດສາດ, % ທີ່ຢູ່ບໍ່ສາມາດປະຕິບັດຕາມທີ່ຢູ່ຕື່ມອີກ. ສໍາລັບຄວາມສອດຄ່ອງ
ແລະຄວາມງ່າຍດາຍຂອງສະເພາະ, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ທີ່ຢູ່ເພີ່ມເຕີມ
ສະຫນັບສະຫນູນ.

ທັງໝົດຕໍ່ໄປນີ້ແມ່ນຖືກຕ້ອງ ທີ່ຢູ່:

+++ ສາມເສັ້ນຫຼັງຈາກເສັ້ນປະຈຸບັນ.

/re/− ຫນຶ່ງແຖວກ່ອນທີ່ຈະປະກົດຕົວຕໍ່ໄປຂອງ re.

−2 ສອງແຖວກ່ອນເສັ້ນປະຈຸບັນ.

3 −−−− 2 ແຖວທີໜຶ່ງ (ໝາຍເຫດທີ່ຢູ່ລົບຂັ້ນກາງ).

1 2 3 ແຖວຫົກ.

ຈໍານວນຂອງທີ່ຢູ່ສາມາດສະຫນອງໃຫ້ກັບຄໍາສັ່ງເອົາທີ່ຢູ່; ຍົກ​ຕົວ​ຢ່າງ,
"1,2,3,4,5p" ພິມແຖວທີ 4 ແລະ 5, ເພາະວ່າສອງອັນແມ່ນຈຳນວນທີ່ຢູ່ທີ່ຖືກຕ້ອງທີ່ສຸດ
ຍອມຮັບໂດຍ ພິມ ຄໍາສັ່ງ. ນີ້, ໃນການປະສົມປະສານກັບ ຕົວຂັ້ນ,
ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສ້າງຄໍາສັ່ງໂດຍອີງໃສ່ຮູບແບບຄໍາສັ່ງໃນໄຟລ໌. ສໍາລັບຕົວຢ່າງ, ໄດ້
ຄໍາສັ່ງ 3;/foo/;+2ພິມ ຈະສະແດງແຖວທໍາອິດຫຼັງຈາກແຖວ 3 ທີ່ມີຮູບແບບ
ຟູ, ບວກກັບສອງແຖວຕໍ່ໄປ. ໃຫ້ສັງເກດວ່າທີ່ຢູ່ 3; ຕ້ອງໄດ້ຮັບການປະເມີນກ່ອນທີ່ຈະເປັນ
ຍົກເລີກເນື່ອງຈາກແຫຼ່ງທີ່ມາຂອງການຄົ້ນຫາ /foo/ ຄໍາສັ່ງແມ່ນຂຶ້ນກັບນີ້.

ໃນປະຫວັດສາດ, ມູນຄ່າສາມາດຖືກເພີ່ມໃສ່ທີ່ຢູ່ໂດຍການລວມເອົາພວກມັນຫຼັງຈາກຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ
ລັກສະນະ; ຍົກ​ຕົວ​ຢ່າງ, 3 - 5p ຂຽນແຖວທີເຈັດຂອງເອກະສານ, ແລະ /foo/ 5
ແມ່ນຄືກັນກັບ /foo/+5. ຢ່າງໃດກໍ່ຕາມ, ພຽງແຕ່ສາມາດເພີ່ມມູນຄ່າຢ່າງແທ້ຈິງ; ຍົກ​ຕົວ​ຢ່າງ,
5 /foo/ ເປັນຄວາມຜິດພາດ. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ທີ່ຢູ່
offsets ຖືກລະບຸແຍກຕ່າງຫາກຈາກທີ່ຢູ່ເພາະວ່າພວກເຂົາອາດຈະເປັນປະຫວັດສາດ
ສະຫນອງໃຫ້ກັບຄໍາສັ່ງຊອກຫາຮູບແບບພາບ.

ໃນປະຫວັດສາດ, ທີ່ຢູ່ໃດໆທີ່ຂາດຫາຍໄປແມ່ນເລີ່ມຕົ້ນຢູ່ໃນແຖວປະຈຸບັນ. ນີ້ແມ່ນຄວາມຈິງສໍາລັບ
ນໍາພາແລະຕິດຕາມ -delimited ທີ່​ຢູ່​, ແລະ​ສໍາ​ລັບ​ການ​ຕິດ​ຕາມ​ -delimited
ທີ່ຢູ່. ສໍາລັບຄວາມສອດຄ່ອງ, POSIX.1-2008 ຕ້ອງການມັນສໍາລັບການນໍາພາ ທີ່​ຢູ່​ເປັນ
ດີ.

ໃນປະຫວັດສາດ, ex ແລະ vi ຍອມຮັບ '^' ມີລັກສະນະເປັນທັງທີ່ຢູ່ ແລະເປັນທຸງຊົດເຊີຍ
ສໍາລັບຄໍາສັ່ງ. ໃນທັງສອງກໍລະນີ, ມັນແມ່ນຄ້າຍຄືກັນກັບ '−' ລັກສະນະ. POSIX.1-2008 ບໍ່
ຮຽກຮ້ອງ ຫຼືຫ້າມພຶດຕິກຳນີ້.

ທາງດ້ານປະຫວັດສາດ, ການປັບປຸງການສະແດງອອກເປັນປົກກະຕິພື້ນຖານສາມາດຖືກນໍາໃຊ້ໃນການແກ້ໄຂ;
ຍົກ​ຕົວ​ຢ່າງ, '~', '\<', ແລະ '\>'. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມປະຫວັດສາດ
ການປະຕິບັດ; ນັ້ນແມ່ນ, ການນໍາໃຊ້ການສະແດງອອກເປັນປົກກະຕິແມ່ນສອດຄ່ອງ, ແລະເປັນປົກກະຕິ
ການປັບປຸງການສະແດງອອກແມ່ນໄດ້ຮັບການສະຫນັບສະຫນູນຢູ່ບ່ອນໃດກໍ່ຕາມການສະແດງອອກປົກກະຕິຖືກນໍາໃຊ້.

ຄໍາສັ່ງ ອອນໄລນ໌ ກຳ ລັງທັບເຮືອ in ex
ປະຫວັດສາດ ex parsing ຄໍາສັ່ງແມ່ນມີຄວາມຊັບຊ້ອນຫຼາຍກ່ວາທີ່ອະທິບາຍຢູ່ທີ່ນີ້. POSIX.1-2008
ຮຽກຮ້ອງໃຫ້ມີຊຸດຍ່ອຍຂອງຄໍາສັ່ງ parsing ທີ່ນັກພັດທະນາມາດຕະຖານເຊື່ອວ່າເປັນ
ເອກະສານແລະວ່າຜູ້ໃຊ້ສົມເຫດສົມຜົນອາດຈະຖືກຄາດວ່າຈະໃຊ້ໃນແບບພົກພາ, ແລະ
ທີ່ສອດຄ່ອງກັນໃນປະຫວັດສາດລະຫວ່າງການປະຕິບັດ. (ການ​ທໍາ​ງານ​ທີ່​ຖືກ​ຍົກ​ເລີກ​ແມ່ນ​
obscure, ດີທີ່ສຸດ.) ການປະຕິບັດປະຫວັດສາດຈະຕ້ອງມີການປ່ຽນແປງເພື່ອປະຕິບັດຕາມ
ກັບ POSIX.1-2008; ຢ່າງໃດກໍຕາມ, ຜູ້ໃຊ້ບໍ່ຄາດວ່າຈະສັງເກດເຫັນການປ່ຽນແປງເຫຼົ່ານີ້. ຫຼາຍທີ່ສຸດ
ຂອງ​ຄວາມ​ສັບ​ສົນ​ໃນ​ ex parsing ແມ່ນເພື່ອຈັດການກັບສາມກໍລະນີການຢຸດເຊົາພິເສດ:

1. ໄດ້ !, ທົ່ວໂລກ, v, ແລະສະບັບການກັ່ນຕອງຂອງ ອ່ານ ແລະ ຂຽນ ຄໍາສັ່ງແມ່ນ delimited
ໂດຍ ຕົວອັກສອນ (ພວກເຂົາສາມາດບັນຈຸ ຕົວອັກສອນທີ່ປົກກະຕິແລ້ວ
ທໍ່ຫອຍ).

2. ໄດ້ ex, ດັດແກ້, ຕໍ່ໄປ, ແລະ ສາຍຕາ ຄໍາສັ່ງໃນຮູບແບບເປີດແລະສາຍຕາທັງຫມົດໃຊ້ເວລາ ex ຄໍາ​ສັ່ງ​,
ທາງເລືອກທີ່ປະກອບດ້ວຍ ລັກສະນະ, ເປັນການໂຕ້ຖຽງທໍາອິດຂອງພວກເຂົາ.

3. ໄດ້ s ຄໍາສັ່ງໃຊ້ເວລາການສະແດງອອກເປັນປົກກະຕິເປັນ argument ທໍາອິດຂອງຕົນ, ແລະນໍາໃຊ້
delimiting ຕົວອັກສອນເພື່ອ delimit ຄໍາສັ່ງ.

ທາງປະຫວັດສາດ, ລັກສະນະໃນ +ຄໍາສັ່ງ ການໂຕ້ຖຽງຂອງ ex, ດັດແກ້, ຕໍ່ໄປ,
vi, ແລະ ສາຍຕາ ຄໍາສັ່ງ, ແລະໃນ ຮູບແບບ ແລະ ການທົດແທນ ພາກສ່ວນຂອງ s ຄໍາສັ່ງ, ໄດ້
ບໍ່ delimit ຄໍາສັ່ງ, ແລະໃນກໍລະນີຂອງການກັ່ນຕອງສໍາລັບ ອ່ານ ແລະ ຂຽນ, ແລະ !, ທົ່ວໂລກ,
ແລະ v ຄໍາສັ່ງ, ພວກເຂົາເຈົ້າບໍ່ໄດ້ delimit ຄໍາສັ່ງທັງຫມົດ. ຕົວຢ່າງ, ຕໍ່ໄປນີ້
ຄໍາສັ່ງທັງຫມົດແມ່ນຖືກຕ້ອງ:

:ແກ້ໄຂ +25 | s/abc/ABC/ file.c
:s/ | /PIPE/
:ອ່ານ !spell % | ຖັນ
:global/pattern/p | ລ
:s/a/b/ | s/c/d | ຕັ້ງ

ປະຫວັດສາດ, ຫວ່າງເປົ່າຫຼື ເສັ້ນ​ທີ່​ເຕັມ​ໄປ​ໃນ​ .exrc ແຟ້ມແລະ ແຫຼ່ງd ໄຟລ໌ (ເຊັ່ນດຽວກັນກັບ
ອອກໄປ ຕົວແປແລະ ex script ຄໍາສັ່ງ) ຖືກປະຕິບັດເປັນຄໍາສັ່ງເລີ່ມຕົ້ນ; ນັ້ນ​ແມ່ນ, ພິມ
ຄໍາສັ່ງ. POSIX.1-2008 ໂດຍສະເພາະຮຽກຮ້ອງໃຫ້ພວກເຂົາຖືກລະເວັ້ນເມື່ອພົບໃນ
.exrc ແລະ ແຫຼ່ງd ໄຟລ໌ເພື່ອລົບລ້າງແຫຼ່ງທົ່ວໄປຂອງຄວາມຜິດພາດຜູ້ໃຊ້ໃຫມ່.

ໃນປະຫວັດສາດ, ex ຄໍາສັ່ງທີ່ມີຫຼາຍອັນຕິດກັນ (ຫຼື -separated) ສາຍຕັ້ງ
ໄດ້ ຮັບ ການ ຈັດ ການ oddly ໃນ ເວ ລາ ທີ່ ປະ ຕິ ບັດ ຈາກ ex ໂໝດ. ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ ||| <ລົດຍົນ-
return>, ເມື່ອຕົວກະພິບຢູ່ເທິງແຖວທີ 1, ສະແດງແຖວ 2, 3, ແລະ 5 ຂອງໄຟລ໌. ໃນ
ນອກຈາກນັ້ນ, ຄໍາສັ່ງ | ຈະສະແດງພຽງແຕ່ເສັ້ນຫຼັງຈາກແຖວຕໍ່ໄປ, ແທນທີ່ຈະເປັນ
ສອງແຖວຕໍ່ໄປ. ອະດີດເຮັດວຽກຢ່າງມີເຫດຜົນຫຼາຍເມື່ອຖືກປະຕິບັດຈາກ vi ຮູບແບບ, ແລະສະແດງ
ສາຍທີ 2, 3, ແລະ 4. POSIX.1-2008 ຕ້ອງການ vi ພຶດຕິກໍາ; ນັ້ນແມ່ນ, ຄ່າເລີ່ມຕົ້ນດຽວ
ການເພີ່ມຈໍານວນຄໍາສັ່ງ ແລະແຖວສໍາລັບແຕ່ລະຕົວແຍກຄໍາສັ່ງ, ແລະ trailing
ລັກສະນະຫຼັງຈາກ ຕົວແຍກຖືກຍົກເລີກ.

ໃນປະຫວັດສາດ, ex ອະນຸຍາດພິເສດອັນດຽວ ເປັນລັກສະນະຄໍາສັ່ງນໍາ; ສໍາລັບ
ຍົກຕົວຢ່າງ, :g/pattern/:p ເປັນຄໍາສັ່ງທີ່ຖືກຕ້ອງ. POSIX.1-2008 generalizes ອັນນີ້ເພື່ອຮຽກຮ້ອງໃຫ້
ຈໍານວນຜູ້ນໍາໃດໆ ຕົວອັກສອນຖືກຖອດອອກ.

ໃນປະຫວັດສາດ, ຄໍານໍາຫນ້າໃດໆຂອງ ລຶບ ຄໍາສັ່ງສາມາດປະຕິບັດຕາມໂດຍບໍ່ມີການແຊກແຊງ
ຕົວອັກສອນໂດຍຕົວອັກສອນທຸງເພາະວ່າຢູ່ໃນຄໍາສັ່ງ d p, p ຖືກຕີຄວາມວ່າ
buffer p. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ທາງປະຫວັດສາດ, k ຄໍາສັ່ງສາມາດປະຕິບັດຕາມໂດຍຊື່ເຄື່ອງຫມາຍໂດຍບໍ່ມີການແຊກແຊງ
ຕົວລະຄອນ. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ທາງປະຫວັດສາດ, s ຄໍາສັ່ງສາມາດປະຕິບັດຕາມທັນທີໂດຍທຸງແລະຕົວອັກສອນທາງເລືອກ;
ຍົກ​ຕົວ​ຢ່າງ, s/e/E/|s|sgc3p ເປັນຄໍາສັ່ງທີ່ຖືກຕ້ອງ. ຢ່າງໃດກໍຕາມ, ຕົວອັກສອນທຸງບໍ່ສາມາດຢືນ
ຄົນດຽວ; ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ sp ແລະ s l ຈະລົ້ມເຫລວ, ໃນຂະນະທີ່ຄໍາສັ່ງ sgp ແລະ s gl
ຈະສໍາເລັດ. (ແນ່ນອນ, ໄດ້ '#' ຕົວອັກສອນທຸງຖືກໃຊ້ເປັນຕົວອັກສອນຕົວຂັ້ນຫາກມັນ
ປະ​ຕິ​ບັດ​ຕາມ​ຄໍາ​ສັ່ງ​
ຕົວອັກສອນເຖິງແມ່ນວ່າໃນເວລາທີ່ຄໍາສັ່ງໄດ້ຖືກລະບຸໄວ້ຢ່າງເຕັມສ່ວນ; ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ s/e/E/pg
ຈະລົ້ມເຫລວ, ໃນຂະນະທີ່ຄໍາສັ່ງ s/e/E/gp ຈະສໍາເລັດ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມ
ການປະຕິບັດປະຫວັດສາດ.

ໃນປະຫວັດສາດ, ຊື່ຄໍາສັ່ງທໍາອິດທີ່ມີຄໍານໍາຫນ້າທີ່ກົງກັບວັດສະດຸປ້ອນຈາກຜູ້ໃຊ້
ແມ່ນຄໍາສັ່ງປະຕິບັດ; ຍົກ​ຕົວ​ຢ່າງ, ve, ver, ແລະ ຂໍ້ທີ ທັງ​ຫມົດ​ປະ​ຕິ​ບັດ​ໄດ້​ ສະບັບພາສາ ຄໍາສັ່ງ.
ຄໍາສັ່ງຢູ່ໃນຄໍາສັ່ງສະເພາະໃດຫນຶ່ງ, ຢ່າງໃດກໍຕາມ, ດັ່ງນັ້ນ a ກົງກັນ ເພີ່ມເຕີມ, ບໍ່ແມ່ນ ຕົວຫຍໍ້.
POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ຂໍ້​ຈໍາ​ກັດ​ຂອງ​ຄໍາ​ສັ່ງ​
ຄໍາສັ່ງຄົ້ນຫາສໍາລັບການປະຕິບັດທີ່ມີການຂະຫຍາຍແມ່ນເພື່ອຫຼີກເວັ້ນການເພີ່ມຄໍາສັ່ງດັ່ງກ່າວ
ວ່າຄໍານໍາຫນ້າປະຫວັດສາດຈະລົ້ມເຫລວທີ່ຈະເຮັດວຽກແບບ Portable.

ການປະຕິບັດປະຫວັດສາດຂອງ ex ແລະ vi ບໍ່ໄດ້ຈັດການຫຼາຍຢ່າງຖືກຕ້ອງ ex ຄໍາ​ສັ່ງ​,
ແຍກໂດຍ ຕົວອັກສອນ, ທີ່ເຂົ້າ ຫຼືອອກຈາກໂໝດສາຍຕາ ຫຼືຕົວແກ້ໄຂ.
ເນື່ອງຈາກວ່າການປະຕິບັດຂອງ vi ມີຢູ່ທີ່ບໍ່ສະແດງຮູບແບບຄວາມລົ້ມເຫຼວນີ້, POSIX.1-2008
ບໍ່ອະນຸຍາດໃຫ້ມັນ.

ຂໍ້ກໍານົດທີ່ຊື່ຄໍາສັ່ງຂອງຕົວອັກສອນປະກອບດ້ວຍຕົວອັກສອນດັ່ງຕໍ່ໄປນີ້ທັງຫມົດ
ຕົວອັກສອນຈົນເຖິງຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວອັກສອນຕໍ່ໄປ ຫມາຍຄວາມວ່າຊື່ຄໍາສັ່ງຂອງຕົວອັກສອນ
ຈະຕ້ອງແຍກອອກຈາກການໂຕ້ຖຽງຂອງພວກມັນໂດຍໜຶ່ງ ຫຼືຫຼາຍກວ່າຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວໜັງສື, ໂດຍປົກກະຕິ
ກ ຫຼື '!' ລັກສະນະ, ຍົກເວັ້ນທີ່ລະບຸໄວ້ສໍາລັບຂໍ້ຍົກເວັ້ນ, the ລຶບ, k, ແລະ s
ຄຳ ສັ່ງ.

ໃນ​ປະ​ຫວັດ​ສາດ​, ການ​ປະ​ຕິ​ບັດ​ຊ​້​ໍ​າ​ຂອງ​ ex Default ພິມ ຄໍາສັ່ງ ( -D​, ເອີ,
, ) ລຶບຕົວອັກສອນທີ່ກະຕຸ້ນເຕືອນ ແລະສະແດງແຖວຕໍ່ໄປ
ໂດຍບໍ່ມີການເລື່ອນ terminal; ນັ້ນແມ່ນ, ທັນທີຂ້າງລຸ່ມນີ້ເສັ້ນສະແດງໃດໆກ່ອນຫນ້ານີ້.
ນີ້ສະຫນອງການນໍາສະເຫນີທີ່ສະອາດຂອງສາຍໃນໄຟລ໌ສໍາລັບຜູ້ໃຊ້. POSIX.1-2008
ບໍ່ຕ້ອງການພຶດຕິກໍານີ້ເພາະວ່າມັນອາດຈະເປັນໄປບໍ່ໄດ້ໃນບາງສະຖານະການ; ແນວໃດກໍ່ຕາມ,
ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງເພື່ອສະຫນອງຄວາມຫມາຍນີ້ຖ້າເປັນໄປໄດ້.

ໃນປະຫວັດສາດ, ມັນເປັນໄປໄດ້ທີ່ຈະປ່ຽນໄຟລ໌ຢູ່ເຄິ່ງກາງຂອງຄໍາສັ່ງ, ແລະມີ
ສ່ວນທີ່ເຫຼືອຂອງຄໍາສັ່ງປະຕິບັດໃນໄຟລ໌ໃຫມ່; ຍົກ​ຕົວ​ຢ່າງ:

:ດັດແກ້ + 25 file.c | s/abc/ABC/ | 1

ເປັນຄໍາສັ່ງທີ່ຖືກຕ້ອງ, ແລະການທົດແທນໄດ້ຖືກພະຍາຍາມໃນໄຟລ໌ທີ່ດັດແກ້ໃຫມ່.
POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ຄໍາສັ່ງຕໍ່ໄປນີ້ແມ່ນ
ຕົວຢ່າງທີ່ອອກກໍາລັງກາຍ ex parser:

echo 'ຟູ | ບາ > file1; echo 'foo/bar' > file2;
vi
:ດັດແກ້ +1 | s/|/PIPE/ | w ແຟ້ມ 1 | e ແຟ້ມ 2 | 1 | s/\//SLASH/ | wq

ໃນປະຫວັດສາດ, ບໍ່ມີການປົກປ້ອງໃນການປະຕິບັດບັນນາທິການເພື່ອຫຼີກເວັ້ນການ ex ທົ່ວໂລກ, v, @,
or * ຄໍາສັ່ງປ່ຽນແປງການແກ້ໄຂ buffers ໃນລະຫວ່າງການປະຕິບັດຄໍາສັ່ງທີ່ກ່ຽວຂ້ອງຂອງພວກເຂົາ. ເນື່ອງຈາກວ່າ
ອັນນີ້ເກືອບຈະສົ່ງຜົນໃຫ້ເກີດຄວາມລົ້ມເຫລວຢ່າງຮ້າຍແຮງຂອງບັນນາທິການ, ແລະ
ການຈັດຕັ້ງປະຕິບັດມີຢູ່ທີ່ສະແດງໃຫ້ເຫັນບັນຫາເຫຼົ່ານີ້, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປ່ຽນແປງນັ້ນ
ການແກ້ໄຂ buffer ໃນລະຫວ່າງ a ທົ່ວໂລກ or v ຄໍາສັ່ງ, ຫຼືໃນໄລຍະ a @ or * ຄໍາ​ສັ່ງ​ທີ່​ມີ​
ຈະເປັນຫຼາຍກ່ວາການປະຕິບັດດຽວ, ເປັນຄວາມຜິດພາດ. ການ​ປະ​ຕິ​ບັດ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຫຼາຍ​
ແກ້ໄຂ buffers ພ້ອມໆກັນແມ່ນຊຸກຍູ້ໃຫ້ໃຊ້ semantics ດຽວກັນກັບ
ສະຫຼັບລະຫວ່າງ buffers ເຊັ່ນດຽວກັນ.

ໄດ້ ex ຄໍາສັ່ງວົງຢືມທີ່ຕ້ອງການໂດຍ POSIX.1-2008 ແມ່ນ superset ຂອງວົງຢືມໃນປະຫວັດສາດ.
ການ​ປະ​ຕິ​ບັດ​ຂອງ​ບັນ​ນາ​ທິ​ການ​. ຕົວຢ່າງ, ມັນເປັນໄປບໍ່ໄດ້ທາງປະຫວັດສາດທີ່ຈະຫນີ a
ໃນຊື່ໄຟລ໌; ຍົກ​ຕົວ​ຢ່າງ, :ດັດແກ້ ໂຟ\\ ພາທະນາຍຄວາມ ຈະລາຍງານວ່າມີຊື່ໄຟລ໌ຫຼາຍເກີນໄປ
ໄດ້ຖືກປ້ອນສໍາລັບຄໍາສັ່ງດັດແກ້, ແລະບໍ່ມີວິທີການຫລົບຫນີ a ໃນ
ການໂຕ້ຖຽງທໍາອິດຂອງການ ດັດແກ້, ex, ຕໍ່ໄປ, ຫຼື ສາຍຕາ ຄໍາສັ່ງທັງຫມົດ. POSIX.1-2008 ຂະຫຍາຍ
ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ​, ຮຽກ​ຮ້ອງ​ໃຫ້​ມີ​ການ​ປະ​ຕິ​ບັດ​ການ​ອ້າງ​ອີງ​ແມ່ນ​ສອດ​ຄ່ອງ​ກັບ​ທັງ​ຫມົດ​ ex
ຄໍາສັ່ງ, ຍົກເວັ້ນສໍາລັບ ແຜນທີ່, ຍົກເລີກແຜນທີ່, ຕົວຫຍໍ້, ແລະ ບໍ່ຫຍໍ້ ຄໍາສັ່ງ, ທີ່
ໃຊ້ໃນປະຫວັດສາດ -V ແທນ​ທີ່​ຈະ​ເປັນ​ ຕົວອັກສອນສໍາລັບການອ້າງອີງ. ສໍາລັບຜູ້ທີ່
ສີ່ຄໍາສັ່ງ, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

Backslash quoting ໃນ ex ແມ່ນບໍ່ເຂົ້າໃຈງ່າຍ. -escapes ຖືກລະເລີຍເວັ້ນເສຍແຕ່ວ່າພວກເຂົາ
ຫນີມີລັກສະນະພິເສດ; ສໍາລັບຕົວຢ່າງ, ໃນເວລາທີ່ປະຕິບັດ ເອກະສານ ການຂະຫຍາຍການໂຕ້ຖຽງ, ໄດ້
string "\\%" ເທົ່າກັບ '\%', ບໍ່ແມ່ນ "\ໃນປະຈຸບັນ ຊື່ເສັ້ນທາງ>". ນີ້ສາມາດສັບສົນສໍາລັບ
ຜູ້ໃຊ້ເພາະວ່າ ປົກກະຕິແລ້ວແມ່ນຫນຶ່ງໃນລັກສະນະທີ່ເຮັດໃຫ້ເກີດການຂະຫຍາຍຕົວຂອງແກະ
ຈະຖືກປະຕິບັດ, ແລະດັ່ງນັ້ນກົດລະບຽບການອ້າງອິງ Shell ຕ້ອງໄດ້ຮັບການພິຈາລະນາ.
ໂດຍ​ທົ່ວ​ໄປ​ແລ້ວ​, ການ​ອ້າງ​ອີງ​ລັກ​ສະ​ນະ​ແມ່ນ​ພິ​ຈາ​ລະ​ນາ​ພຽງ​ແຕ່​ຖ້າ​ຫາກ​ວ່າ​ພວກ​ເຂົາ​ເຈົ້າ​ຫນີ​ລັກ​ສະ​ນະ​ພິ​ເສດ​, ແລະ​
ຕົວອັກສອນວົງຢືມຕ້ອງຖືກສະໜອງໃຫ້ສໍາລັບແຕ່ລະຊັ້ນຂອງ parsing ທີ່ມີລັກສະນະ
ພິເສດ. ເປັນຕົວຢ່າງອື່ນ, ພຽງແຕ່ດຽວ ແມ່ນມີຄວາມຈໍາເປັນສໍາລັບການ '\l' ລໍາດັບ
ໃນຮູບແບບການທົດແທນການທົດແທນ, ເນື່ອງຈາກວ່າລັກສະນະ 'l' ບໍ່​ແມ່ນ​ພິ​ເສດ​ສໍາ​ລັບ​ການ​ໃດໆ​
paring layer ຂ້າງເທິງມັນ.

-V ອ້າງອີງໃນ ex ແມ່ນແຕກຕ່າງກັນເລັກນ້ອຍຈາກການອ້າງອີງ backslash. ໃນສີ່
ຄໍາສັ່ງຢູ່ໃສ -V ອ້າງອີງ (ຕົວຫຍໍ້, ບໍ່ຫຍໍ້, ແຜນທີ່, ແລະ ຍົກເລີກແຜນທີ່), ໃດ
ລັກສະນະອາດຈະຖືກຫລົບຫນີໂດຍ a -V ມັນ​ຈະ​ມີ​ຄວາມ​ຫມາຍ​ພິ​ເສດ​ຫຼື​ບໍ່​.
POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ການປະຕິບັດປະຫວັດສາດຂອງບັນນາທິການບໍ່ໄດ້ຮຽກຮ້ອງໃຫ້ມີຕົວຂັ້ນພາຍໃນລັກສະນະ
ຫ້ອງຮຽນທີ່ຈະຫນີ; ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ :s/[/]// ສຸດຊ່ອຍແນ່ "xxx/yyy" ຈະ
ລຶບ '/' ຈາກ string ໄດ້. POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ປະຕິບັດປະຫວັດສາດນີ້ສໍາລັບ
ຄວາມສອດຄ່ອງ ແລະເນື່ອງຈາກວ່າມັນວາງພາລະອັນໃຫຍ່ຫຼວງຕໍ່ການຈັດຕັ້ງປະຕິບັດໂດຍການຮຽກຮ້ອງໃຫ້ມີສິ່ງນັ້ນ
ຄວາມຮູ້ກ່ຽວກັບການສະແດງອອກປົກກະຕິແມ່ນສ້າງຂຶ້ນໃນຕົວແຍກວິເຄາະ.

ປະຫວັດສາດ, ອ້າງອີງ ຕົວອັກສອນໃນ ex ຄໍາສັ່ງຖືກປະຕິບັດຢ່າງບໍ່ສອດຄ່ອງ. ໃນ
ກໍລະນີຫຼາຍທີ່ສຸດ, ໄດ້ ລັກ​ສະ​ນະ​ສະ​ເຫມີ​ປິດ​ຄໍາ​ສັ່ງ​, ບໍ່​ວ່າ​ຈະ​ເປັນ​ອັນ​ໃດ​
ລັກສະນະການຫລົບຫນີກ່ອນ, ເພາະວ່າ ລັກສະນະບໍ່ໄດ້ຫນີ
ຕົວລະຄອນສ່ວນໃຫຍ່ ex ຄໍາສັ່ງ. ຢ່າງໃດກໍຕາມ, ບາງຄົນ ex ຄໍາສັ່ງ (ຕົວຢ່າງ, s, ແຜນທີ່, ແລະ
ຕົວຫຍໍ້) ອະ​ນຸ​ຍາດ​ໃຫ້​ ຕົວອັກສອນທີ່ຈະຫນີ (ເຖິງແມ່ນວ່າໃນກໍລະນີຂອງ ແຜນທີ່
ແລະ ຕົວຫຍໍ້, -V ຕົວ​ອັກ​ສອນ​ຫນີ​ໃຫ້​ເຂົາ​ເຈົ້າ​ແທນ​ທີ່​ຈະ​ເປັນ​ ຕົວອັກສອນ).
ນີ້ແມ່ນຄວາມຈິງບໍ່ພຽງແຕ່ຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ແຕ່ຍັງ .exrc ແລະ ແຫຼ່ງd ໄຟລ໌. ຍົກ​ຕົວ​ຢ່າງ,
ຄໍາ​ສັ່ງ​:

ແຜນທີ່ = ຟູ ບາ

ຈະປະສົບຜົນສໍາເລັດ, ເຖິງແມ່ນວ່າບາງຄັ້ງມັນກໍ່ຍາກທີ່ຈະໄດ້ຮັບ -V ແລະ​ໃສ່​
ຜ່ານໄປ ex parser. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງຂໍ້ກໍານົດ,
POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມັນເປັນໄປໄດ້ທີ່ຈະຫລົບຫນີ ຕົວອັກສອນໃນ ex ຄໍາສັ່ງຢູ່
ຕະຫຼອດເວລາ, ການນໍາໃຊ້ ຕົວລະຄອນສ່ວນໃຫຍ່ ex ຄໍາສັ່ງ, ແລະການນໍາໃຊ້ - ວີ
ລັກ​ສະ​ນະ​ສໍາ​ລັບ​ການ​ ແຜນທີ່ ແລະ ຕົວຫຍໍ້ ຄໍາສັ່ງ. ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ
ພິມບັນຊີລາຍຊື່ ຈໍາເປັນຕ້ອງຖືກວິເຄາະເປັນຄໍາສັ່ງດຽວ ພິມບັນຊີລາຍຊື່.
ໃນຂະນະທີ່ນີ້ແຕກຕ່າງຈາກການປະຕິບັດປະຫວັດສາດ, ຜູ້ພັດທະນາ POSIX.1-2008 ເຊື່ອວ່າມັນເປັນໄປບໍ່ໄດ້.
ວ່າສະຄຣິບໃດນຶ່ງ ຫຼືຜູ້ໃຊ້ແມ່ນຂຶ້ນກັບພຶດຕິກໍາປະຫວັດສາດ.

ໃນທາງປະຫວັດສາດ, ຂໍ້ຜິດພາດໃນຄໍາສັ່ງທີ່ລະບຸໂດຍໃຊ້ −ຄ ທາງເລືອກບໍ່ໄດ້ເຮັດໃຫ້ເກີດສ່ວນທີ່ເຫຼືອ
ຂອງ −ຄ ຄໍາສັ່ງທີ່ຈະຍົກເລີກ. POSIX.1-2008 ບໍ່ອະນຸຍາດອັນນີ້ສໍາລັບຄວາມສອດຄ່ອງຂອງ
ກະແຈແຜນທີ່, ໄດ້ @, ທົ່ວໂລກ, ແຫຼ່ງ, ແລະ v ຄໍາສັ່ງ, ໄດ້ ອອກໄປ ສະພາບແວດລ້ອມປ່ຽນແປງ, ແລະ
ໄດ້ .exrc ໄຟລ໌.

ການປ້ອນຂໍ້ມູນ ການດັດແກ້ in ex
ຫນຶ່ງໃນການນໍາໃຊ້ທົ່ວໄປຂອງປະຫວັດສາດ ex ບັນນາທິການແມ່ນເກີນການເຊື່ອມຕໍ່ເຄືອຂ່າຍຊ້າ.
ບັນນາທິການທີ່ດໍາເນີນການໃນຮູບແບບ canonical ສາມາດຮຽກຮ້ອງໃຫ້ມີການຈະລາຈອນຫນ້ອຍລົງໄປແລະຈາກ, ແລະໄກຫນ້ອຍ
ກໍາລັງປະມວນຜົນຢູ່, ເຄື່ອງໂຮດ, ເຊັ່ນດຽວກັນກັບອຸປະກອນທີ່ຮອງຮັບ block-mode ໄດ້ງ່າຍຂຶ້ນ.
ສໍາລັບເຫດຜົນເຫຼົ່ານີ້, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ ex ໄດ້ຮັບການປະຕິບັດໂດຍການປ້ອນຮູບແບບ canonical
ການປຸງແຕ່ງ, ດັ່ງທີ່ໄດ້ເຮັດໃນປະຫວັດສາດ.

POSIX.1-2008 ບໍ່ຕ້ອງການການປ້ອນຂໍ້ມູນ BSD ປະຫວັດສາດ 4 ຕົວແກ້ໄຂ ``ລຶບຄຳສັບ´
ຫຼື 'ຕົວໜັງສືຕໍ່ໄປ'. ສໍາລັບເຫດຜົນນີ້, ມັນບໍ່ໄດ້ຖືກລະບຸວ່າພວກເຂົາຖືກຈັດການແນວໃດ ex,
ເຖິງແມ່ນວ່າພວກເຂົາຕ້ອງມີຜົນກະທົບທີ່ຕ້ອງການ. ການປະຕິບັດທີ່ແກ້ໄຂໃຫ້ເຂົາເຈົ້າຫຼັງຈາກ
ເສັ້ນໄດ້ຖືກສິ້ນສຸດໂດຍໃຊ້ a ຫຼື -M ລັກ​ສະ​ນະ​, ແລະ​ການ​ປະ​ຕິ​ບັດ​ທີ່​
ອີງ​ໃສ່​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ terminal ລະ​ບົບ​ທີ່​ຕິດ​ພັນ​ສໍາ​ລັບ​ການ​ປຸງ​ແຕ່ງ​ນີ້​, ທັງ​ສອງ​ສອດ​ຄ່ອງ​.
ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງເພື່ອນໍາໃຊ້ການທໍາງານຂອງລະບົບພື້ນຖານ, ຖ້າຫາກວ່າທັງຫມົດ
ເປັນໄປໄດ້, ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບການໂຕ້ຕອບການປ້ອນຂໍ້ຄວາມລະບົບອື່ນໆ.

ໃນປະຫວັດສາດ, ໃນເວລາທີ່ ເອີ ລັກ​ສະ​ນະ​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​ເພື່ອ​ຫຼຸດ​ລົງ​ໄດ້​ autoindent ລະດັບ, ໄດ້
ຍ້າຍຕົວກະພິບເພື່ອສະແດງຈຸດສິ້ນສຸດໃຫມ່ຂອງ autoindent ຕົວອັກສອນ, ແຕ່ບໍ່ໄດ້ຍ້າຍອອກ
ຕົວກະພິບໄປຫາແຖວໃໝ່, ແລະມັນບໍ່ໄດ້ລຶບຂໍ້ມູນ -D ລັກ​ສະ​ນະ​ຈາກ​ເສັ້ນ​.
POSIX.1-2008 ບໍ່ໄດ້ລະບຸວ່າຕົວກະພິບຍັງຄົງຢູ່ໃນແຖວດຽວກັນ ຫຼືວ່າສ່ວນທີ່ເຫຼືອຂອງ
ເສັ້ນຖືກລົບ; ແນວໃດກໍ່ຕາມ, ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງເພື່ອໃຫ້ດີທີ່ສຸດ
ການໂຕ້ຕອບຜູ້ໃຊ້ທີ່ເປັນໄປໄດ້; ນັ້ນແມ່ນ, ຕົວກະພິບຄວນຢູ່ໃນເສັ້ນດຽວກັນ, ແລະໃດໆ
-D ຕົວອັກສອນໃນແຖວຄວນຖືກລຶບ.

POSIX.1-2008 ບໍ່ຕ້ອງການຕົວແກ້ໄຂການປ້ອນຂໍ້ມູນ BSD ປະຫວັດສາດ 4 `` ພິມຄືນ ',
ຕາມປະເພນີ -R, ເຊິ່ງສະແດງການປ້ອນຂໍ້ມູນປັດຈຸບັນຈາກຜູ້ໃຊ້ຄືນໃໝ່. ສໍາລັບການນີ້
ເຫດຜົນ, ແລະເນື່ອງຈາກວ່າຫນ້າທີ່ບໍ່ສາມາດປະຕິບັດໄດ້ຫຼັງຈາກເສັ້ນໄດ້
ຖືກຍົກເລີກໂດຍຜູ້ໃຊ້, POSIX.1-2008 ບໍ່ມີຂໍ້ກໍານົດກ່ຽວກັບການເຮັດວຽກນີ້.
ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງເພື່ອເຮັດໃຫ້ຫນ້າທີ່ປະຫວັດສາດນີ້ສາມາດໃຊ້ໄດ້, ຖ້າ
ເປັນໄປໄດ້.

ທາງປະຫວັດສາດ, -Q ບໍ່ໄດ້ປະຕິບັດຫນ້າທີ່ຕໍ່ໄປຕາມຕົວຫນັງສືໃນ ex, ດັ່ງທີ່ມັນໄດ້ຢູ່ໃນ vi.
POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດເພື່ອຫຼີກເວັ້ນການທໍາລາຍປະຫວັດສາດ ex
script ແລະ .exrc ໄຟລ໌.

ເອີ
ບໍ່ວ່າຈະເປັນ ເອີ ລັກສະນະທັນທີປັບປຸງແກ້ໄຂ autoindent ລັກສະນະໃນ prompt ແມ່ນ
ປະໄວ້ໂດຍບໍ່ໄດ້ກໍານົດເພື່ອໃຫ້ການປະຕິບັດສາມາດສອດຄ່ອງກັບລະບົບທີ່ເຮັດ
ບໍ່ຮອງຮັບການທໍາງານນີ້. ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ດັດແປງເສັ້ນແລະ
ສະແດງມັນຄືນໃໝ່ໃນທັນທີ, ຖ້າເປັນໄປໄດ້.

ສະ​ເພາະ​ຂອງ​ການ​ຈັດ​ການ​ຂອງ​ ເອີ ລັກສະນະແຕກຕ່າງຈາກການປະຕິບັດປະຫວັດສາດ
ພຽງແຕ່ໃນນັ້ນ ເອີ ຕົວອັກສອນບໍ່ໄດ້ຖືກຍົກເລີກຖ້າພວກເຂົາປະຕິບັດຕາມຕົວອັກສອນປົກກະຕິໃນຂໍ້ຄວາມ
ວັດສະດຸປ້ອນ. ໃນປະຫວັດສາດ, ພວກເຂົາເຈົ້າໄດ້ຖືກຍົກເລີກສະເຫມີ.

ຄໍາສັ່ງ ຄໍາອະທິບາຍ in ex
ໃນປະຫວັດສາດ, ຄໍາສັ່ງຈໍານວນຫນຶ່ງ (ຕົວຢ່າງ: ທົ່ວໂລກ, v, ສາຍຕາ, s, ຂຽນ, wq, yank, !, <,
>, &, ແລະ ~) ຖືກ​ປະ​ຕິ​ບັດ​ໃນ​ໄຟລ​໌​ທີ່​ເປົ່າ​ຫວ່າງ (ນັ້ນ​ແມ່ນ​, ທີ່​ຢູ່​ໃນ​ຕອນ​ຕົ້ນ​ແມ່ນ 0​)​, ຫຼື​
ອະ​ນຸ​ຍາດ​ໃຫ້​ມີ​ທີ່​ຢູ່​ຢ່າງ​ຊັດ​ເຈນ​ຂອງ 0 (ຕົວ​ຢ່າງ, 0 ເປັນ​ທີ່​ຢູ່​ທີ່​ຖືກ​ຕ້ອງ, ຫຼື 0,0 ເປັນ​ທີ່​ຖືກ​ຕ້ອງ
ຊ່ວງ). ທີ່ຢູ່ຂອງ 0, ຫຼືການປະຕິບັດຄໍາສັ່ງໃນໄຟລ໌ເປົ່າ, ເຮັດໃຫ້ຄວາມຮູ້ສຶກພຽງແຕ່ສໍາລັບ
ຄໍາສັ່ງທີ່ເພີ່ມຂໍ້ຄວາມໃຫມ່ໃນການແກ້ໄຂ buffer ຫຼືຂຽນຄໍາສັ່ງ (ເນື່ອງຈາກວ່າຜູ້ໃຊ້ອາດຈະຕ້ອງການ
ຂຽນໄຟລ໌ເປົ່າ). POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີພຶດຕິກໍານີ້ສໍາລັບຄໍາສັ່ງດັ່ງກ່າວແລະບໍ່ອະນຸຍາດໃຫ້ມັນ
ຖ້າບໍ່ດັ່ງນັ້ນ, ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງການກໍານົດ.

ນັບເປັນ ex ຄໍາ​ສັ່ງ​ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​ປະ​ຫວັດ​ສາດ​ທີ່​ຈະ​ບໍ່​ມີ​ຫຼາຍ​ກ​່​ວາ​ທີ່​ຜ່ານ​ມາ​
ເສັ້ນໃນໄຟລ໌; ຕົວຢ່າງ, ໃນໄຟລ໌ຫ້າແຖວ, ຄໍາສັ່ງ 1,6 ພິມ ຈະລົ້ມເຫລວ, ແຕ່
ຄໍາສັ່ງ 1 ພິມ 300 ຈະສໍາເລັດ. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ໃນປະຫວັດສາດ, ການນໍາໃຊ້ທຸງໃນ ex ຄໍາສັ່ງອາດຈະປິດບັງ. ປະຫວັດສາດທົ່ວໄປ
ການປະຕິບັດແມ່ນໄດ້ອະທິບາຍໂດຍ POSIX.1-2008, ແຕ່ມີບາງກໍລະນີພິເສດ. ສໍາລັບ
ຕົວຢ່າງ, ໄດ້ ບັນຊີລາຍຊື່, ຈໍານວນ, ແລະ ພິມ ຄໍາສັ່ງບໍ່ສົນໃຈການຊົດເຊີຍທີ່ຢູ່ຕໍ່ທ້າຍ; ສໍາລັບ
ຍົກຕົວຢ່າງ, 3p +++# ຈະສະແດງເສັ້ນ 3, ແລະ 3 ຈະເປັນເສັ້ນປະຈຸບັນຫຼັງຈາກການປະຕິບັດ
ຂອງ​ຄໍາ​ສັ່ງ​. ໄດ້ ເປີດ ແລະ ສາຍຕາ ຄໍາສັ່ງຖືກລະເລີຍທັງ offsets ຕິດຕາມແລະ
ທຸງຕາມຫຼັງ. ນອກຈາກນີ້, ທຸງທີ່ລະບຸໄວ້ກັບ ເປີດ ແລະ ສາຍຕາ ຄໍາສັ່ງໂຕ້ຕອບທີ່ບໍ່ດີ
ກັບ ບັນຊີລາຍຊື່ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​, ແລະ​ການ​ຕັ້ງ​ຄ່າ​ແລະ​ຫຼັງ​ຈາກ​ນັ້ນ unsetting ມັນ​ໃນ​ລະ​ຫວ່າງ​ການ​ເປີດ / ສະ​ພາບ​
ກອງປະຊຸມຈະເຮັດໃຫ້ vi ເພື່ອຢຸດການສະແດງເສັ້ນໃນຮູບແບບທີ່ລະບຸ. ສໍາລັບຄວາມສອດຄ່ອງ
ແລະຄວາມງ່າຍດາຍຂອງຂໍ້ມູນສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີຂໍ້ຍົກເວັ້ນເຫຼົ່ານີ້.
ກົດ​ລະ​ບຽບ​ທົ່ວ​ໄປ​.

POSIX.1-2008 ໃຊ້ຄໍາ ຄັດລອກ ຢູ່ໃນຫຼາຍໆບ່ອນໃນເວລາສົນທະນາກັນ. ນີ້ບໍ່ແມ່ນ
ມີຈຸດປະສົງເພື່ອຊີ້ໃຫ້ເຫັນເຖິງການປະຕິບັດ.

ໃນປະຫວັດສາດ, ex ຜູ້​ໃຊ້​ບໍ່​ສາ​ມາດ​ລະ​ບຸ​ຕົວ​ເລກ buffers ໄດ້​ເນື່ອງ​ຈາກ​ວ່າ​ຄວາມ​ບໍ່​ຊັດ​ເຈນ​ນີ້​
ຈະເຮັດໃຫ້ເກີດ; ສໍາລັບຕົວຢ່າງ, ໃນຄໍາສັ່ງ 3 ລຶບ 2, ມັນບໍ່ຊັດເຈນວ່າ 2 ແມ່ນ buffer
ຊື່ ຫຼື ກ ນັບ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມການປະຕິບັດປະຫວັດສາດໂດຍຄ່າເລີ່ມຕົ້ນ, ແຕ່
ບໍ່ໄດ້ຂັດຂວາງການຂະຫຍາຍ.

ໃນປະຫວັດສາດ, ເນື້ອໃນຂອງ buffer ທີ່ບໍ່ມີຊື່ໄດ້ຖືກຍົກເລີກເລື້ອຍໆຫຼັງຈາກຄໍາສັ່ງ
ທີ່ບໍ່ມີຜົນກະທົບຢ່າງຊັດເຈນ; ສໍາລັບຕົວຢ່າງ, ໃນເວລາທີ່ການນໍາໃຊ້ ດັດແກ້ ຄໍາ​ສັ່ງ​ທີ່​ຈະ​ສະ​ຫຼັບ​
ໄຟລ໌. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງຂໍ້ກໍາຫນົດ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ນີ້
ພຶດຕິ ກຳ.

ໄດ້ ex ຜົນປະໂຫຍດທາງປະຫວັດສາດບໍ່ໄດ້ເຂົ້າເຖິງ buffers ຕົວເລກ, ແລະ, ນອກຈາກນັ້ນ,
ການ​ລົບ​ສາຍ​ໃນ​ ex ບໍ່ໄດ້ດັດແປງເນື້ອໃນຂອງພວກເຂົາ. ຕົວຢ່າງ, ຖ້າ, ຫຼັງຈາກດໍາເນີນການລຶບ
in vi, ຜູ້ໃຊ້ໄດ້ປ່ຽນໄປ ex, ໄດ້ລຶບອີກອັນຫນຶ່ງ, ແລະຫຼັງຈາກນັ້ນປ່ຽນກັບໄປ vi, ການ
ເນື້ອໃນຂອງ buffers ຕົວເລກຈະບໍ່ມີການປ່ຽນແປງ. POSIX.1-2008 ຕ້ອງການຄວາມສອດຄ່ອງ
ກັບການປະຕິບັດປະຫວັດສາດ. buffers ຕົວເລກໄດ້ຖືກອະທິບາຍຢູ່ໃນ ex ຜົນປະໂຫຍດເພື່ອ
ຈຳກັດລາຍລະອຽດຂອງ buffers ໄວ້ບ່ອນດຽວໃນ POSIX.1-2008.

metacharacters ທີ່ກະຕຸ້ນການຂະຫຍາຍ shell ໃນ ເອກະສານ ການໂຕ້ຖຽງກົງກັບປະຫວັດສາດ
ການປະຕິບັດ, ເຊັ່ນດຽວກັນກັບວິທີການສໍາລັບການຂະຫຍາຍເປືອກ. ການປະຕິບັດທີ່ຕ້ອງການທີ່ຈະສະຫນອງ
ຜູ້ໃຊ້ທີ່ມີຄວາມຍືດຫຍຸ່ນໃນການປ່ຽນແປງຊຸດຂອງ metacharacters ໄດ້ຖືກຊຸກຍູ້ໃຫ້ສະຫນອງ a
shellmeta ຕົວເລືອກການແກ້ໄຂ string.

ໃນປະຫວັດສາດ, ex ຄໍາສັ່ງປະຕິບັດຈາກ vi ໂຫຼດຫນ້າຈໍຄືນໃນເວລາທີ່ມັນບໍ່ໄດ້ຢ່າງເຂັ້ມງວດ
ຈໍາເປັນຕ້ອງເຮັດແນວນັ້ນ; ຍົກ​ຕົວ​ຢ່າງ, :!ວັນທີ > / dev / null ບໍ່ຮຽກຮ້ອງໃຫ້ມີການໂຫຼດຫນ້າຈໍຄືນເນື່ອງຈາກວ່າ
ຜົນຜະລິດຂອງ UNIX ວັນ ຄໍາສັ່ງຕ້ອງການພຽງແຕ່ເສັ້ນດຽວຂອງຫນ້າຈໍ.
POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການໂຫຼດຫນ້າຈໍຄືນໃຫມ່ຖ້າຫາກວ່າມັນໄດ້ຖືກຂຽນທັບ, ແຕ່ເຮັດໃຫ້
ບໍ່​ມີ​ຂໍ້​ກໍາ​ນົດ​ກ່ຽວ​ກັບ​ວິ​ທີ​ການ​ປະ​ຕິ​ບັດ​ຄວນ​ຈະ​ເຮັດ​ໃຫ້​ການ​ກໍາ​ນົດ​ນັ້ນ​.
ການປະຕິບັດອາດຈະກະຕຸ້ນເຕືອນແລະໂຫຼດຫນ້າຈໍຄືນໃຫມ່ໂດຍບໍ່ຄໍານຶງເຖິງ.

ຕົວຫຍໍ້
ການປະຕິບັດປະຫວັດສາດແມ່ນຕົວອັກສອນທີ່ຖືກໃສ່ເປັນສ່ວນຫນຶ່ງຂອງຕົວຫຍໍ້
ການທົດແທນແມ່ນຂຶ້ນກັບ ແຜນທີ່ ການ​ຂະ​ຫຍາຍ​ຕົວ​, ໄດ້​ ການ​ແຂ່ງ​ຂັນ​ ແກ້ໄຂທາງເລືອກ, ຕໍ່ໄປ
ການຂະຫຍາຍຕົວຫຍໍ້, ແລະອື່ນໆ; ນັ້ນແມ່ນ, ພວກເຂົາຖືກກົດດັນຢ່າງມີເຫດຜົນໃສ່ຈຸດເຊື່ອມຕໍ່
ແຖວປ້ອນຂໍ້ມູນ, ແລະບໍ່ແມ່ນການທົດແທນທີ່ງ່າຍດາຍ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມ
ການປະຕິບັດປະຫວັດສາດ. ການປະຕິບັດປະຫວັດສາດແມ່ນວ່າທຸກຄັ້ງທີ່ມີລັກສະນະທີ່ບໍ່ແມ່ນຄໍາສັບ (ທີ່ມີ
ບໍ່ໄດ້ຖືກຫລົບຫນີໂດຍ a -V​) ຖືກ​ເຂົ້າ​ໄປ​ຫຼັງ​ຈາກ​ຕົວ​ອັກ​ສອນ​ຄໍາ​, vi ຈະກວດເບິ່ງ
ຕົວຫຍໍ້. ການກວດສອບແມ່ນອີງໃສ່ປະເພດຂອງຕົວອັກສອນທີ່ໃສ່ກ່ອນຄໍາ
ລັກສະນະຂອງຄູ່ຄໍາ / ບໍ່ແມ່ນຄໍາທີ່ເຮັດໃຫ້ເກີດການກວດສອບ. ລັກສະນະຂອງຄໍາສັບຂອງ
ຄູ່ຄຳ/ບໍ່ແມ່ນຄຳທີ່ກະຕຸ້ນການກວດສອບ ແລະຕົວອັກສອນທັງໝົດທີ່ເຂົ້າມາກ່ອນຕົວກະຕຸ້ນ
ຄູ່ທີ່ເປັນປະເພດນັ້ນໄດ້ຖືກລວມຢູ່ໃນເຊັກ, ຍົກເວັ້ນ
ຕົວອັກສອນ, ເຊິ່ງກໍານົດຕົວຫຍໍ້ສະເຫມີ.

ນີ້ຫມາຍຄວາມວ່າ, ສໍາລັບຕົວຫຍໍ້ທີ່ຈະເຮັດວຽກ, ໄດ້ lhs ຕ້ອງລົງທ້າຍດ້ວຍຕົວອັກສອນ,
ບໍ່ມີການປ່ຽນຈາກຄໍາສັບໄປຫາຕົວອັກສອນທີ່ບໍ່ແມ່ນຄໍາສັບ (ຫຼື ຕໍາແຫນ່ງ ກົງກັນຂ້າມ) ນອກ​ຈາກ​
ລະ​ຫວ່າງ​ຕົວ​ອັກ​ສອນ​ສຸດ​ທ້າຍ​ແລະ​ຕໍ່​ໄປ​ຫາ​ສຸດ​ທ້າຍ​ໃນ​ lhs, ແລະສາມາດບໍ່ມີ
ລັກສະນະໃນ lhs. ນອກຈາກນັ້ນ, ເນື່ອງຈາກວ່າກົດລະບຽບການອ້າງອີງປະຫວັດສາດ, ມັນແມ່ນ
ເປັນໄປບໍ່ໄດ້ທີ່ຈະເຂົ້າໄປໃນຕົວຫນັງສື -V ໃນ​ lhs. POSIX.1-2008 ຕ້ອງການຄວາມສອດຄ່ອງ
ກັບການປະຕິບັດປະຫວັດສາດ. ການປະຕິບັດປະຫວັດສາດບໍ່ໄດ້ແຈ້ງໃຫ້ຜູ້ໃຊ້ຮູ້ເມື່ອມີຕົວຫຍໍ້
ທີ່ບໍ່ສາມາດຖືກນໍາໃຊ້ໄດ້ເຂົ້າໄປໃນ; ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງເພື່ອເຮັດແນວນັ້ນ.

ຕົວຢ່າງ, ຕົວຫຍໍ້ຕໍ່ໄປນີ້ຈະເຮັດວຽກ:

:ab (p ລາຍງານ
:ab p ລາຍງານ
:ab ((ປ ລາຍງານ

ຕົວຫຍໍ້ຕໍ່ໄປນີ້ຈະບໍ່ເຮັດວຽກ:

:ab ( ລາຍງານ
:ab (ໜ້າ ລາຍງານ

ການປະຕິບັດປະຫວັດສາດແມ່ນຄໍາສັບຕ່າງໆກ່ຽວກັບ vi ເສັ້ນຄໍາສັ່ງຈໍ້າສອງເມັດແມ່ນຂຶ້ນກັບ
ການຂະຫຍາຍຕົວຫຍໍ້, ລວມທັງການໂຕ້ຖຽງກັບ ຫຍໍ້ (ແລະຫນ້າສົນໃຈຫຼາຍ) ໄດ້
unabbrev ຄໍາສັ່ງ. ເນື່ອງຈາກວ່າມີການປະຕິບັດທີ່ບໍ່ເຮັດການຂະຫຍາຍຕົວຫຍໍ້
ສໍາລັບການໂຕ້ຖຽງທໍາອິດກັບຄໍາສັ່ງເຫຼົ່ານັ້ນ, ນີ້ແມ່ນອະນຸຍາດ, ແຕ່ບໍ່ຈໍາເປັນຕ້ອງ, ໂດຍ
POSIX.1-2008. ຢ່າງໃດກໍຕາມ, ລໍາດັບຕໍ່ໄປນີ້:

:ab ຟູ ພາທະນາຍຄວາມ
:ab ຟູ ຖານ

ສົ່ງຜົນໃຫ້ມີການເພີ່ມຕົວຫຍໍ້ຂອງ "ບາສ" ສໍາລັບຊ່ອຍແນ່ "ບາ" ໃນປະຫວັດສາດ
ex/vi, ແລະ​ລໍາ​ດັບ​:

:ab ໂຟ1 ພາທະນາຍຄວາມ
:ab ໂຟ2 ພາທະນາຍຄວາມ
:unabbreviate ໂຟ2

ລຶບຕົວຫຍໍ້ "foo1", ບໍ່ແມ່ນ "foo2". ພຶດຕິກຳເຫຼົ່ານີ້ບໍ່ໄດ້ຮັບອະນຸຍາດຈາກ
POSIX.1-2008 ເພາະວ່າພວກເຂົາລະເມີດຄວາມຄາດຫວັງຂອງຜູ້ໃຊ້ຢ່າງຊັດເຈນ.

ມັນແມ່ນການປະຕິບັດປະຫວັດສາດທີ່ -V, ບໍ່ , ລັກ​ສະ​ນະ​ໄດ້​ຮັບ​ການ​ຕີ​ລາ​ຄາ​ເປັນ​
escaping ລັກສະນະຕໍ່ມາໃນ ຕົວຫຍໍ້ ຄໍາສັ່ງ. POSIX.1-2008 ຕ້ອງການ
ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ; ແນວໃດກໍ່ຕາມ, ຄວນສັງເກດວ່າຕົວຫຍໍ້
ປະກອບດ້ວຍ a ຈະບໍ່ເຮັດວຽກ.

ເອກະສານຊ້ອນທ້າຍ
ໃນປະຫວັດສາດ, ຂໍ້ຄວາມໃດໆທີ່ຕິດຕາມ a ຕົວແຍກຄໍາສັ່ງຫຼັງຈາກ ເພີ່ມເຕີມ,
ການປ່ຽນແປງ, ຫຼື ໃສ່ ຄໍາສັ່ງໄດ້ກາຍເປັນສ່ວນຫນຶ່ງຂອງຂໍ້ຄວາມໃສ່. ສໍາລັບຕົວຢ່າງ, ໃນຄໍາສັ່ງ:

:g/pattern/append|stuff1

ແຖວທີ່ມີຂໍ້ຄວາມ "ສິ່ງ​ທີ່ 1​" ຈະ​ຖືກ​ຕໍ່​ທ້າຍ​ກັບ​ແຕ່​ລະ​ເສັ້ນ​ຮູບ​ແບບ​ການ​ຈັບ​ຄູ່​. ມັນ
ຍັງຖືກຕ້ອງທາງປະຫວັດສາດໃນການເຂົ້າ:

:append| stuff1
ສິ່ງ​ຂອງ2
.

ແລະຂໍ້ຄວາມຢູ່ໃນ ex ແຖວຄຳສັ່ງຈະຖືກຕໍ່ທ້າຍພ້ອມກັບຂໍ້ຄວາມທີ່ໃສ່ໃສ່ຫຼັງ
ມັນ. ຢ່າງໃດກໍຕາມ, ມີຂໍ້ບົກພ່ອງປະຫວັດສາດທີ່ຜູ້ໃຊ້ຕ້ອງເຂົ້າໄປໃນສອງການຢຸດເຊົາ
ສາຍ (ໄດ້ '.' ສາຍ) ເພື່ອຢຸດໂຫມດການປ້ອນຂໍ້ຄວາມໃນກໍລະນີນີ້. POSIX.1-2008 ຕ້ອງການ
ການປະຕິບັດຕາມການປະຕິບັດປະຫວັດສາດ, ແຕ່ບໍ່ອະນຸຍາດໃຫ້ມີຄວາມຕ້ອງການທາງປະຫວັດສາດຫຼາຍ
ການຢຸດສາຍ.

ການປ່ຽນແປງ
ເບິ່ງ RATIONALE ສໍາລັບ ເພີ່ມເຕີມ ຄໍາສັ່ງ. ການປະຕິບັດປະຫວັດສາດສໍາລັບການວາງຕົວກະພິບຫຼັງຈາກ
ຄໍາ​ສັ່ງ​ການ​ປ່ຽນ​ແປງ​ໃນ​ເວ​ລາ​ທີ່​ບໍ່​ມີ​ຂໍ້​ຄວາມ​ແມ່ນ​ການ​ປ້ອນ​ຂໍ້​ມູນ​, ແມ່ນ​ອະ​ທິ​ບາຍ​ໃນ POSIX.1-2008​. ຢ່າງໃດກໍຕາມ, ຫນຶ່ງ
ການປະຕິບັດລະບົບ V ເປັນທີ່ຮູ້ກັນວ່າໄດ້ຖືກແກ້ໄຂເຊັ່ນວ່າຕົວກະພິບຖືກຈັດໃສ່
ຢູ່ໃນທີ່ຢູ່ທໍາອິດທີ່ລະບຸໄວ້, ແລະບໍ່ແມ່ນຢູ່ໃນແຖວກ່ອນທີ່ຢູ່ທໍາອິດ. POSIX.1-2008
ບໍ່ອະນຸຍາດໃຫ້ມີການດັດແກ້ນີ້ເພື່ອຄວາມສອດຄ່ອງ.

ທາງປະຫວັດສາດ, ການປ່ຽນແປງ ຄໍາສັ່ງບໍ່ສະຫນັບສະຫນູນ buffer arguments, ເຖິງແມ່ນວ່າບາງ
ການປະຕິບັດອະນຸຍາດໃຫ້ກໍານົດສະເພາະຂອງ buffer ທາງເລືອກ. ພຶດຕິກໍານີ້ບໍ່ແມ່ນຄືກັນ
ຕ້ອງການ ຫຼື ບໍ່ອະນຸຍາດໂດຍ POSIX.1-2008.

ການປ່ຽນແປງ Directory
ການຂະຫຍາຍທົ່ວໄປໃນ ex ການປະຕິບັດແມ່ນການນໍາໃຊ້ອົງປະກອບຂອງ a cdpath ແກ້ໄຂທາງເລືອກເປັນ
prefix directory ສໍາລັບ ເສັ້ນທາງ ການໂຕ້ຖຽງກັບ chdir ນັ້ນຄືຊື່ເສັ້ນທາງທີ່ກ່ຽວຂ້ອງ ແລະອັນນັ້ນບໍ່ແມ່ນ
ມີ '.' or ".." ເປັນອົງປະກອບທໍາອິດຂອງພວກເຂົາ. ອົງປະກອບໃນ cdpath ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ແມ່ນ​
- ແຍກ​ອອກ​. ມູນຄ່າເບື້ອງຕົ້ນຂອງ cdpath ທາງເລືອກການແກ້ໄຂແມ່ນມູນຄ່າຂອງແກະ
CDPATH ສະພາບແວດລ້ອມປ່ຽນແປງ. ຄຸນສົມບັດນີ້ບໍ່ໄດ້ຖືກລວມຢູ່ໃນ POSIX.1-2008 ເພາະວ່າມັນເຮັດໄດ້
ບໍ່ມີຢູ່ໃນການປະຕິບັດໃດໆທີ່ຖືວ່າເປັນການປະຕິບັດປະຫວັດສາດ.

ສໍາເນົາ
ການປະຕິບັດປະຫວັດສາດຂອງ ex ອະ​ນຸ​ຍາດ​ໃຫ້​ສໍາ​ເນົາ​ກັບ​ແຖວ​ພາຍ​ໃນ​ລະ​ດັບ​ທີ່​ກໍາ​ນົດ​ໄວ້​;
ຍົກ​ຕົວ​ຢ່າງ, :2,5 ສໍາ​ເນົາ 3 ເປັນຄໍາສັ່ງທີ່ຖືກຕ້ອງ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມ
ການປະຕິບັດປະຫວັດສາດ.

ລົບ
POSIX.1-2008 ຕ້ອງການການສະໜັບສະໜູນສຳລັບການວິພາກປະຫວັດສາດຂອງ a ລຶບ ຄຳ ສັ່ງຕາມດ້ວຍ
ທຸງ, ໂດຍບໍ່ມີການແຊກແຊງໃດໆ ຕົວລະຄອນ. ຍົກ​ຕົວ​ຢ່າງ:

1 dp ລຶບແຖວທຳອິດ ແລະພິມແຖວທີສອງ.

1 ເລິກ ເປັນສໍາລັບ 1 dp.

1d ລຶບແຖວທຳອິດ, ບັນທຶກມັນໄວ້ໃນ buffer p.

1d p1l (Pee-one-ell.) ລົບແຖວທໍາອິດ, ບັນທຶກມັນໄວ້ໃນ buffer p, ແລະລາຍຊື່ສາຍ
ນັ້ນແມ່ນທີສອງ.

ດັດແກ້
ປະຫວັດສາດ, ໃດ ex ຄໍາສັ່ງສາມາດຖືກໃສ່ເປັນ a +ຄໍາສັ່ງ ການໂຕ້ຖຽງກັບ ດັດແກ້ ຄໍາສັ່ງ,
ເຖິງແມ່ນວ່າບາງ (ຕົວຢ່າງ, ໃສ່ ແລະ ເພີ່ມເຕີມ) ເປັນ​ທີ່​ຮູ້​ຈັກ​ທີ່​ຈະ​ສັບ​ສົນ​ປະ​ຫວັດ​ສາດ​
ການຈັດຕັ້ງປະຕິບັດ. ສໍາລັບຄວາມສອດຄ່ອງ ແລະງ່າຍດາຍຂອງຂໍ້ມູນສະເພາະ, POSIX.1-2008 ຕ້ອງການ
ວ່າຄໍາສັ່ງໃດໄດ້ຮັບການສະຫນັບສະຫນູນເປັນການໂຕ້ຖຽງກັບ ດັດແກ້ ຄໍາສັ່ງ.

ໃນປະຫວັດສາດ, ການໂຕ້ຖຽງຄໍາສັ່ງໄດ້ຖືກປະຕິບັດກັບເສັ້ນປະຈຸບັນທີ່ຕັ້ງເປັນແຖວສຸດທ້າຍ
ຂອງໄຟລ໌, ບໍ່ວ່າຈະເປັນ ດັດແກ້ ຄໍາສັ່ງຖືກປະຕິບັດຈາກໂຫມດສາຍຕາຫຼືບໍ່.
POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ທາງປະຫວັດສາດ, +ຄໍາສັ່ງ ລະບຸໄວ້ກັບ ດັດແກ້ ແລະ ຕໍ່ໄປ ຄໍາສັ່ງໄດ້ຖືກ delimited ໂດຍ
ທໍາອິດ , ແລະບໍ່ມີວິທີທີ່ຈະອ້າງເຖິງພວກມັນ. ເພື່ອຄວາມສອດຄ່ອງ, POSIX.1-2008 ຕ້ອງການ
ວ່າປົກກະຕິ ex ສະໜອງການອ້າງອີງ backslash.

ໃນປະຫວັດສາດ, ລະບຸ +ຄໍາສັ່ງ argument ກັບຄໍາສັ່ງດັດແກ້ຕ້ອງການຊື່ໄຟລ໌ທີ່ຈະ
ໄດ້ຖືກລະບຸໄວ້ເຊັ່ນດຽວກັນ; ຍົກ​ຕົວ​ຢ່າງ, :ດັດແກ້ + 100 ສະເຫມີຈະລົ້ມເຫລວ. ສໍາລັບຄວາມສອດຄ່ອງແລະ
ຄວາມງ່າຍດາຍຂອງຂໍ້ມູນສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ນີ້ລົ້ມເຫລວ
ເຫດ​ຜົນ.

ໃນປະຫວັດສາດ, ພຽງແຕ່ຕໍາແຫນ່ງຕົວກະພິບຂອງໄຟລ໌ສຸດທ້າຍທີ່ຖືກດັດແກ້ໄດ້ຖືກຈື່ໄວ້ໂດຍ
ບັນນາທິການ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການສະຫນັບສະຫນູນ; ຢ່າງໃດກໍຕາມ, ການປະຕິບັດແມ່ນ
ອະ​ນຸ​ຍາດ​ໃຫ້​ຈື່​ຈໍາ​ແລະ​ຟື້ນ​ຟູ​ຕໍາ​ແຫນ່ງ​ຕົວ​ກະ​ພິບ​ສໍາ​ລັບ​ໄຟລ​໌​ໃດ​ຫນຶ່ງ​ທີ່​ໄດ້​ແກ້​ໄຂ​ກ່ອນ​ຫນ້າ​ນີ້​.

ເອກະສານ
ສະບັບປະຫວັດສາດຂອງ ex ບັນນາທິການ ເອກະສານ ຄໍາສັ່ງສະແດງເສັ້ນປະຈຸບັນແລະຈໍານວນຂອງ
ແຖວໃນການແກ້ໄຂ buffer ຂອງ 0 ເມື່ອໄຟລ໌ຫວ່າງເປົ່າ, ໃນຂະນະທີ່ vi - G ຄໍາ​ສັ່ງ​
ສະແດງເສັ້ນປະຈຸບັນ ແລະຈຳນວນຂອງແຖວໃນການແກ້ໄຂ buffer ຂອງ 1 ໃນອັນດຽວກັນ
ສະຖານະການ. POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີຄວາມແຕກຕ່າງນີ້, ແທນທີ່ຈະຕ້ອງການຂໍ້ຄວາມນັ້ນ
ຈະຖືກສະແດງໂດຍສະແດງໃຫ້ເຫັນວ່າໄຟລ໌ຫວ່າງເປົ່າ.

Global
ການ​ດໍາ​ເນີນ​ງານ​ສອງ​ຜ່ານ​ຂອງ​ ທົ່ວໂລກ ແລະ v ຄໍາສັ່ງບໍ່ໄດ້ມີຈຸດປະສົງເພື່ອຊີ້ໃຫ້ເຫັນ
ການປະຕິບັດ, ພຽງແຕ່ຜົນໄດ້ຮັບທີ່ຕ້ອງການຂອງການດໍາເນີນງານ.

ເສັ້ນແລະຖັນປະຈຸບັນແມ່ນຖືກກໍານົດຕາມທີ່ລະບຸໄວ້ສໍາລັບບຸກຄົນ ex ຄໍາສັ່ງ. ນີ້
ຄວາມຕ້ອງການແມ່ນສະສົມ; ນັ້ນແມ່ນ, ເສັ້ນປະຈຸບັນແລະຖັນຕ້ອງຕິດຕາມໃນທົ່ວທຸກ
ຄໍາສັ່ງປະຕິບັດໂດຍ ທົ່ວໂລກ or v ຄຳ ສັ່ງ.

Insert
ເບິ່ງ RATIONALE ສໍາລັບ ເພີ່ມເຕີມ ຄໍາສັ່ງ.

ໃນປະຫວັດສາດ, ໃສ່ ບໍ່ສາມາດໃຊ້ກັບທີ່ຢູ່ຂອງສູນ; ນັ້ນແມ່ນ, ບໍ່ແມ່ນເມື່ອດັດແກ້
buffer ຫວ່າງເປົ່າ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຄໍາສັ່ງນີ້ປະຕິບັດຢ່າງສອດຄ່ອງກັບ
ເພີ່ມເຕີມ ຄໍາສັ່ງ.

ເຂົ້າຮ່ວມ
ການກະ ທຳ ຂອງສ ເຂົ້າຮ່ວມ ຄໍາສັ່ງທີ່ກ່ຽວຂ້ອງກັບຕົວອັກສອນພິເສດແມ່ນຖືກກໍານົດພຽງແຕ່ສໍາລັບ
POSIX locale ເນື່ອງຈາກວ່າຈໍານວນທີ່ຖືກຕ້ອງຂອງພື້ນທີ່ສີຂາວຫຼັງຈາກໄລຍະເວລາແຕກຕ່າງກັນ; ໃນ
ພາສາຍີ່ປຸ່ນບໍ່ຈໍາເປັນ, ໃນພາສາຝຣັ່ງພຽງແຕ່ຊ່ອງດຽວ, ແລະອື່ນໆ.

ບັນ​ຊີ​ລາຍ​ຊື່
ຜົນ​ຜະ​ລິດ​ປະ​ຫວັດ​ສາດ​ຂອງ​ ບັນຊີລາຍຊື່ ຄໍາສັ່ງມີທ່າແຮງທີ່ບໍ່ຊັດເຈນ. ມາດຕະຖານ
ນັກພັດທະນາເຊື່ອວ່າການແກ້ໄຂນີ້ມີຄວາມສໍາຄັນຫຼາຍກ່ວາການຍຶດຫມັ້ນໃນປະຫວັດສາດ
ການປະຕິບັດ, ແລະ POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີຜົນຜະລິດທີ່ບໍ່ຊັດເຈນ.

ແຜນທີ່
ໃນປະຫວັດສາດ, ແຜນທີ່ຮູບແບບຄໍາສັ່ງຖືກນໍາໃຊ້ກັບຊື່ຄໍາສັ່ງເທົ່ານັ້ນ; ສໍາລັບຕົວຢ່າງ, ຖ້າຫາກວ່າ
ລັກສະນະ 'x' ໄດ້ວາງແຜນໄວ້ 'y', ຄໍາສັ່ງ fx ຄົ້ນ​ຫາ​ສໍາ​ລັບ​ການ​ 'x' ລັກສະນະ, ບໍ່ແມ່ນ
'y' ລັກສະນະ. POSIX.1-2008 ຕ້ອງການພຶດຕິກໍານີ້. ປະຫວັດສາດ, ເຂົ້າມາ -V ເປັນ
ລັກສະນະທໍາອິດຂອງ ກ vi ຄໍາສັ່ງແມ່ນຄວາມຜິດພາດ. ການປະຕິບັດຫຼາຍຢ່າງໄດ້ຂະຫຍາຍອອກໄປ
ຄວາມຫມາຍຂອງ vi ດັ່ງ​ນັ້ນ -V ຫມາຍຄວາມວ່າລັກສະນະຄໍາສັ່ງຕໍ່ໄປແມ່ນ
ບໍ່ມີແຜນທີ່. ອັນນີ້ແມ່ນອະນຸຍາດ, ແຕ່ບໍ່ຈຳເປັນ, ໂດຍ POSIX.1-2008. ໂດຍບໍ່ສົນເລື່ອງ, ການນໍາໃຊ້
-V ເພື່ອຫນີຕົວອັກສອນທີສອງຫຼືຕໍ່ມາໃນລໍາດັບຂອງລັກສະນະທີ່ອາດຈະ
ກົງກັບ ກ ແຜນທີ່ ຄໍາສັ່ງ, ຫຼືຕົວອັກສອນໃດໆໃນຮູບແບບການປ້ອນຂໍ້ຄວາມ, ແມ່ນການປະຕິບັດປະຫວັດສາດ, ແລະ
ຢຸດກະແຈທີ່ເຂົ້າມາຈາກການຈັບຄູ່ແຜນທີ່. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມ
ການປະຕິບັດປະຫວັດສາດ.

ການປະຕິບັດປະຫວັດສາດອະນຸຍາດໃຫ້ນໍາໃຊ້ຕົວເລກເປັນ a ແຜນທີ່ ຄໍາສັ່ງ lhs, ແຕ່ຫຼັງຈາກນັ້ນ
ບໍ່ສົນໃຈແຜນທີ່. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຕົວເລກໃນແຜນທີ່ບໍ່ຖືກລະເລີຍ.

ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ​ຂອງ​ ແຜນທີ່ ຄໍາສັ່ງບໍ່ອະນຸຍາດໃຫ້ ແຜນທີ່ ຄໍາສັ່ງທີ່ເປັນ
ມີຄວາມຍາວຫຼາຍກວ່າຕົວອັກສອນຕົວໜຶ່ງຖ້າຕົວໜັງສືທຳອິດສາມາດພິມໄດ້. ພຶດຕິກໍານີ້
ແມ່ນອະນຸຍາດ, ແຕ່ບໍ່ຈຳເປັນ, ໂດຍ POSIX.1-2008.

ໃນປະຫວັດສາດ, ຕົວອັກສອນທີ່ມີແຜນທີ່ໄດ້ຖືກ remapped ເວັ້ນເສຍແຕ່ວ່າ remap ຕົວເລືອກການແກ້ໄຂບໍ່ໄດ້ຖືກຕັ້ງ, ຫຼື
ຄຳນຳໜ້າຂອງຕົວອັກສອນທີ່ເຮັດແຜນທີ່ກົງກັບຕົວອັກສອນໃນແຜນທີ່; ສໍາລັບຕົວຢ່າງ, ໃນ
ແຜນທີ່:

:ແຜນທີ່ ab ກ​ຂ​ຄ​ງ

ລັກສະນະ "ab" ໄດ້ຖືກນໍາໃຊ້ເປັນແລະບໍ່ໄດ້ຖືກ remapped, ແຕ່ລັກສະນະ "ຊີດີ" ໄດ້
ແຜນທີ່ຖ້າເຫມາະສົມ. ນີ້ສາມາດເຮັດໃຫ້ເກີດ loops infinite ໃນ vi ກົນ​ໄກ​ການ​ສ້າງ​ແຜນ​ທີ່​.
POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ, ແລະວ່າ loops ດັ່ງກ່າວເປັນ
ຂັດຈັງຫວະ.

ແຜນທີ່ການປ້ອນຂໍ້ຄວາມມີບັນຫາດຽວກັນກັບການຂະຫຍາຍ lhs ສໍາ​ລັບ ex ແຜນທີ່! ແລະ ເປີດແຜນທີ່!
ຄໍາ​ສັ່ງ​ດັ່ງ​ທີ່​ໄດ້​ ex ຕົວຫຍໍ້ ແລະ ບໍ່ຫຍໍ້ ຄໍາສັ່ງ. ເບິ່ງ RATIONALE ສໍາລັບ ex
ຕົວຫຍໍ້ ຄໍາສັ່ງ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການດັດແກ້ທີ່ຄ້າຍຄືກັນຂອງການປະຕິບັດປະຫວັດສາດບາງຢ່າງ
ສໍາ​ລັບ ແຜນທີ່ ແລະ ຍົກເລີກແຜນທີ່ ຄໍາ​ສັ່ງ​, ດັ່ງ​ທີ່​ອະ​ທິ​ບາຍ​ສໍາ​ລັບ​ການ​ ຕົວຫຍໍ້ ແລະ ບໍ່ຫຍໍ້ ຄຳ ສັ່ງ.

ໃນປະຫວັດສາດ, ແຜນທີ່s ທີ່ເປັນສ່ວນຍ່ອຍຂອງອື່ນໆ ແຜນທີ່s behaved ແຕກຕ່າງກັນໂດຍອີງຕາມການ
ຄໍາສັ່ງທີ່ພວກເຂົາຖືກກໍານົດ. ຍົກ​ຕົວ​ຢ່າງ:

:ແຜນທີ່! ab ສັ້ນ
:ແຜນທີ່! abc ຍາວ

ສະເຫມີຈະແປຕົວອັກສອນ "ab" to "ສັ້ນ", ບໍ່ວ່າຈະໄວເທົ່າໃດ
ລັກສະນະ "abc" ໄດ້ຖືກເຂົ້າໄປ. ຖ້າຄໍາສັ່ງເຂົ້າຖືກຖອນຄືນ:

:ແຜນທີ່! abc ຍາວ
:ແຜນທີ່! ab ສັ້ນ

ລັກສະນະ "ab" ຈະເຮັດໃຫ້ບັນນາທິການຢຸດຊົ່ວຄາວ, ລໍຖ້າການສໍາເລັດ 'ຄ'
ລັກສະນະ, ແລະຕົວອັກສອນອາດຈະບໍ່ຖືກແຜນທີ່ "ສັ້ນ". ສໍາລັບຄວາມສອດຄ່ອງແລະ
ຄວາມງ່າຍດາຍຂອງຂໍ້ມູນສະເພາະ, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ໃຊ້ຄໍາທີ່ກົງກັນສັ້ນທີ່ສຸດ
ເວລາ.

ໄລຍະເວລາທີ່ບັນນາທິການໃຊ້ເວລາລໍຖ້າຕົວອັກສອນເພື່ອໃຫ້ສໍາເລັດ lhs is
ບໍ່​ໄດ້​ລະ​ບຸ​ເນື່ອງ​ຈາກ​ວ່າ​ຄວາມ​ສາ​ມາດ​ກໍາ​ນົດ​ເວ​ລາ​ຂອງ​ລະ​ບົບ​ແມ່ນ​ມັກ​ຈະ inexact ແລະ​ຕົວ​ປ່ຽນ​ແປງ​, ແລະ​
ມັນອາດຈະຂຶ້ນກັບປັດໃຈອື່ນໆເຊັ່ນຄວາມໄວຂອງການເຊື່ອມຕໍ່. ເວລາຄວນຈະເປັນ
ດົນພໍສໍາລັບຜູ້ໃຊ້ສາມາດເຮັດສໍາເລັດລໍາດັບ, ແຕ່ບໍ່ດົນພຽງພໍສໍາລັບ
ຜູ້ໃຊ້ຕ້ອງລໍຖ້າ. ການ​ປະ​ຕິ​ບັດ​ບາງ​ຢ່າງ​ຂອງ​ vi ໄດ້​ເພີ່ມ a ເວລາສຳຄັນ ທາງເລືອກ, ທີ່
ອະ​ນຸ​ຍາດ​ໃຫ້​ຜູ້​ໃຊ້​ເພື່ອ​ກໍາ​ນົດ​ຈໍາ​ນວນ 0,1 ວິ​ນາ​ທີ​ບັນ​ນາ​ທິ​ການ​ລໍ​ຖ້າ​ສໍາ​ລັບ​ການ​ສໍາ​ເລັດ​
ຕົວລະຄອນ. ເນື່ອງຈາກວ່າຟັງຊັນ terminal ແຜນທີ່ແລະກະແຈຕົວກະພິບມີແນວໂນ້ມທີ່ຈະເລີ່ມຕົ້ນດ້ວຍ
ລັກສະນະ, ແລະ ແມ່ນ​ຈຸດ​ຈົບ​ທີ່​ສໍາ​ຄັນ​ vi ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ຄວາມ​, ແຜນທີ່s ເລີ່ມ​ຕົ້ນ​ດ້ວຍ
ໂດຍທົ່ວໄປແລ້ວຕົວອັກສອນຖືກຍົກເວັ້ນຈາກໄລຍະເວລາໝົດເວລານີ້, ຫຼືຢ່າງໜ້ອຍໝົດເວລາ
ແຕກຕ່າງ.

ເຄື່ອງຫມາຍ
ໃນປະຫວັດສາດ, ຜູ້ໃຊ້ສາມາດກໍານົດເຄື່ອງຫມາຍ `` ກ່ອນຫນ້ານີ້ '' ຢ່າງຊັດເຈນ. ໃນ
ນອກຈາກນັ້ນ, ໄດ້ ex ຄໍາສັ່ງ '' ແລະ '` ແລະ vi ຄໍາສັ່ງ '', ``, `', ແລະ '` ທັງຫມົດທີ່ອ້າງເຖິງ
ເຄື່ອງຫມາຍດຽວກັນ. ນອກຈາກນັ້ນ, ເຄື່ອງຫມາຍບໍລິບົດທີ່ຜ່ານມາບໍ່ໄດ້ກໍານົດຖ້າຫາກວ່າຄໍາສັ່ງ, ກັບ
ທີ່​ຢູ່​ການ​ຕັ້ງ​ຄ່າ​ເຄື່ອງ​ຫມາຍ​ທີ່​ກ່ຽວ​ຂ້ອງ​, ບໍ່​ສໍາ​ເລັດ​. POSIX.1-2008 ຕ້ອງການ
ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ປະຫວັດສາດ, ຖ້າເສັ້ນຫມາຍຖືກລົບ, ເຄື່ອງຫມາຍ
ໄດ້ຖືກລຶບເຊັ່ນກັນ, ແຕ່ຈະປາກົດຂຶ້ນອີກຄັ້ງຖ້າການປ່ຽນແປງຖືກຍົກເລີກ. POSIX.1-2008 ຕ້ອງການ
ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ລາຍລະອຽດຂອງເຫດການພິເສດທີ່ກໍານົດ ` ແລະ ' ເຄື່ອງຫມາຍກົງກັບປະຫວັດສາດ
ການປະຕິບັດ. ສໍາລັບຕົວຢ່າງ, ປະຫວັດສາດຄໍາສັ່ງ /a/,/b/ ບໍ່ໄດ້ກໍານົດ ` ແລະ ' ເຄື່ອງຫມາຍ, ແຕ່
ຄໍາສັ່ງ /a/,/b/ລຶບ ໄດ້ເຮັດ.

ຖັດໄປ
ປະຫວັດສາດ, ໃດ ex ຄໍາສັ່ງສາມາດຖືກໃສ່ເປັນ a +ຄໍາສັ່ງ ການໂຕ້ຖຽງກັບ ຕໍ່ໄປ ຄໍາສັ່ງ,
ເຖິງແມ່ນວ່າບາງ (ຕົວຢ່າງ, ໃສ່ ແລະ ເພີ່ມເຕີມ) ເປັນ​ທີ່​ຮູ້​ຈັກ​ທີ່​ຈະ​ສັບ​ສົນ​ປະ​ຫວັດ​ສາດ​
ການຈັດຕັ້ງປະຕິບັດ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຄໍາສັ່ງໃດນຶ່ງໄດ້ຮັບການອະນຸຍາດ ແລະໃຫ້ມັນປະຕິບັດຕົວເປັນ
ລະບຸ. ໄດ້ ຕໍ່ໄປ ຄໍາສັ່ງສາມາດຍອມຮັບຫຼາຍກ່ວາຫນຶ່ງໄຟລ໌, ດັ່ງນັ້ນການນໍາໃຊ້ເຊັ່ນ:

ຕໍ່ໄປ `ls [abc] `

ຖືກຕ້ອງ; ມັນບໍ່ຈໍາເປັນຕ້ອງຖືກຕ້ອງສໍາລັບ ດັດແກ້ or ອ່ານ ຄໍາສັ່ງ, ສໍາລັບການຍົກຕົວຢ່າງ, ຍ້ອນວ່າເຂົາເຈົ້າ
ຄາດຫວັງວ່າພຽງແຕ່ຫນຶ່ງຊື່ໄຟລ໌.

ທາງປະຫວັດສາດ, ຕໍ່ໄປ ຄໍາສັ່ງປະຕິບັດແຕກຕ່າງຈາກ :rewind ຄໍາສັ່ງໃນມັນ
ບໍ່ສົນໃຈທຸງຜົນບັງຄັບໃຊ້ຖ້າຫາກວ່າ ຂຽນອັດຕະໂນມັດ ທຸງຖືກຕັ້ງ. ສໍາລັບຄວາມສອດຄ່ອງ, POSIX.1-2008 ເຮັດ
ບໍ່ອະນຸຍາດໃຫ້ພຶດຕິກໍານີ້.

ທາງປະຫວັດສາດ, ຕໍ່ໄປ ຄໍາສັ່ງຈັດຕໍາແຫນ່ງຕົວກະພິບຄືກັບວ່າໄຟລ໌ບໍ່ເຄີຍຖືກແກ້ໄຂ
ກ່ອນ, ໂດຍບໍ່ສົນເລື່ອງ. POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້, ສໍາລັບຄວາມສອດຄ່ອງຂອງ
ດັດແກ້ ຄໍາສັ່ງ.

ການປະຕິບັດຕ້ອງການທີ່ຈະສະຫນອງຄູ່ຮ່ວມງານກັບ ຕໍ່ໄປ ຄໍາສັ່ງທີ່ດັດແກ້
ໄຟລ໌ທີ່ຜ່ານມາໄດ້ໃຊ້ຄໍາສັ່ງ ກ່ອນ​ຫນ້າ​ນີ້​, ເຊິ່ງໃຊ້ເວລາບໍ່ ເອກະສານ ການໂຕ້ຖຽງ. POSIX.1-2008
ບໍ່ຕ້ອງການຄໍາສັ່ງນີ້.

ເປີດ
ທາງປະຫວັດສາດ, ເປີດ ຄໍາສັ່ງຈະລົ້ມເຫລວຖ້າຫາກວ່າ ເປີດ ຕົວເລືອກການແກ້ໄຂບໍ່ໄດ້ຖືກຕັ້ງ.
POSIX.1-2008 ບໍ່ໄດ້ກ່າວເຖິງ ເປີດ ແກ້ໄຂທາງເລືອກແລະບໍ່ຮຽກຮ້ອງໃຫ້ມີພຶດຕິກໍານີ້.
ການປະຕິບັດປະຫວັດສາດບາງຢ່າງບໍ່ອະນຸຍາດໃຫ້ເຂົ້າໄປໃນໂຫມດເປີດຈາກໂຫມດເປີດຫຼືເບິ່ງເຫັນ,
ພຽງແຕ່ຈາກ ex ໂໝດ. ເພື່ອຄວາມສອດຄ່ອງ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ໃນປະຫວັດສາດ, ເຂົ້າສູ່ໂຫມດເປີດຈາກເສັ້ນຄໍາສັ່ງ (ນັ້ນແມ່ນ, vi +ເປີດ) ສົ່ງ​ຜົນ​ໃຫ້​
ພຶດຕິກໍາຜິດປົກກະຕິ; ສໍາລັບການຍົກຕົວຢ່າງ, ໄດ້ ex ໄຟລ໌ແລະ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ, ແລະ vi ຄໍາສັ່ງ
-G ບໍ່​ໄດ້​ເຮັດ​ວຽກ​. ເພື່ອຄວາມສອດຄ່ອງ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ທາງປະຫວັດສາດ, ເປີດ ຄໍາສັ່ງອະນຸຍາດເທົ່ານັ້ນ '/' ຕົວອັກສອນທີ່ຈະໃຊ້ເປັນການຄົ້ນຫາ
ຕົວຂັ້ນຮູບແບບ. ເພື່ອຄວາມສອດຄ່ອງ, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ໃຊ້ຕົວຂັ້ນການຄົ້ນຫາ
ໂດຍ s, ທົ່ວໂລກ, ແລະ v ຄໍາສັ່ງໄດ້ຮັບການຍອມຮັບເຊັ່ນດຽວກັນ.

ຮັກສາໄວ້
ໄດ້ ຮັກສາ ຄໍາ​ສັ່ງ​ບໍ່​ໄດ້​ເຮັດ​ໃຫ້​ປະ​ຫວັດ​ສາດ​ໄຟລ​໌​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ພິ​ຈາ​ລະ​ນາ unmodified ສໍາ​ລັບ​ການ​
ຈຸດປະສົງຂອງຄໍາສັ່ງໃນອະນາຄົດທີ່ອາດຈະອອກຈາກບັນນາທິການ. POSIX.1-2008 ຕ້ອງການ
ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ເອກະສານປະຫວັດສາດກ່າວວ່າ mail ບໍ່ໄດ້ຖືກສົ່ງໄປຫາຜູ້ໃຊ້ໃນເວລາທີ່ເກັບຮັກສາໄວ້
ປະ​ຕິ​ບັດ​; ຢ່າງໃດກໍຕາມ, ການປະຕິບັດປະຫວັດສາດໄດ້ສົ່ງຈົດຫມາຍໃນກໍລະນີນີ້. POSIX.1-2008
ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ພິມ
ການຂຽນຂອງ NUL ໂດຍ ພິມ ຄໍາ​ສັ່ງ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​ເປັນ​ກໍ​ລະ​ນີ​ພິ​ເສດ​ເພາະ​ວ່າ​
ຜູ້ພັດທະນາມາດຕະຖານບໍ່ຕ້ອງການຕ້ອງການ ex ສະຫນັບສະຫນູນຕົວອັກສອນ NUL. ທາງປະຫວັດສາດ,
ຕົວອັກສອນຖືກສະແດງໂດຍໃຊ້ແຜນທີ່ມາດຕະຖານ ARPA, ເຊິ່ງມີດັ່ງນີ້:

1. ຕົວອັກສອນທີ່ສາມາດພິມໄດ້ຖືກປະໄວ້ຢ່າງດຽວ.

2. ຕົວອັກສອນຄວບຄຸມໜ້ອຍກວ່າ \177 ຖືກສະແດງເປັນ '^' ປະຕິບັດຕາມໂດຍລັກສະນະ
ຊົດເຊີຍຈາກ '@' ລັກສະນະໃນແຜນທີ່ ASCII; ຕົວຢ່າງ, \007 ຖືກສະແດງເປັນ
'^G'.

3. \177 ແມ່ນເປັນຕົວແທນ '^' ປະຕິບັດຕາມໂດຍ '?'.

ການສະແດງຕົວລະຄອນທີ່ມີຊຸດນ້ອຍທີແປດຂອງເຂົາເຈົ້າແມ່ນມາດຕະຖານໜ້ອຍກວ່າ. ທີ່ມີຢູ່ແລ້ວ
ການຈັດຕັ້ງປະຕິບັດໃຊ້ hex (0x00), octal (\000), ແລະການສະແດງ meta-bit. (ຈົດ​ຫມາຍ
ສະແດງ bytes ທີ່ມີບິດແປດຂອງພວກເຂົາເປັນສອງຕົວອັກສອນ "M−" ປະຕິບັດຕາມໂດຍການ
ຈໍສະແດງຜົນເຈັດບິດຕາມທີ່ອະທິບາຍຂ້າງເທິງ.) ສຸດທ້າຍອາດຈະເປັນການຮຽກຮ້ອງທີ່ດີທີ່ສຸດ
ການປະຕິບັດປະຫວັດສາດເນື່ອງຈາກວ່າມັນຖືກນໍາໃຊ້ສໍາລັບການ −v ທາງເລືອກຂອງ 4 BSD ແລະ 4 BSD ໄດ້ມາຈາກ
ສະບັບຂອງ cat ຜົນປະໂຫຍດຕັ້ງແຕ່ປີ 1980.

ບໍ່ມີຮູບແບບການສະແດງສະເພາະທີ່ຕ້ອງການໂດຍ POSIX.1-2008.

ການເພິ່ງພາອາໄສຢ່າງຈະແຈ້ງກ່ຽວກັບຊຸດຕົວອັກສອນ ASCII ໄດ້ຖືກຫຼີກລ່ຽງໃນບ່ອນທີ່ເປັນໄປໄດ້, ເພາະສະນັ້ນ
ການ​ນໍາ​ໃຊ້​ປະ​ໂຫຍກ​ທີ່​ເປັນ "ການ​ປະ​ຕິ​ບັດ​ຕາມ​ລໍາ​ດັບ​ຫຼາຍ​ຕົວ​ອັກ​ສອນ​ທີ່​ກໍາ​ນົດ​ໄວ້​" ສໍາ​ລັບ​ການ​ສະ​ແດງ​ໄດ້​
ຕົວ​ອັກ​ສອນ​ທີ່​ບໍ່​ສາ​ມາດ​ພິມ​ໄດ້​ໃນ​ຄວາມ​ມັກ​ຂອງ​ການ​ນໍາ​ໃຊ້​ປະ​ຫວັດ​ສາດ​ຂອງ​ຕົວ​ຢ່າງ​, "^ຂ້ອຍ"
ສໍາ​ລັບ . ການຈັດຕັ້ງປະຕິບັດແມ່ນຊຸກຍູ້ໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດໃນ
ບໍ່ມີເຫດຜົນທີ່ເຂັ້ມແຂງທີ່ຈະ diverge.

ໃນປະຫວັດສາດ, ທັງຫມົດ ex ຄໍາສັ່ງເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ 'p' ສາມາດເຂົ້າໄດ້ໂດຍໃຊ້
ສະບັບພິມໃຫຍ່ຂອງຄໍາສັ່ງ; ຍົກ​ຕົວ​ຢ່າງ, P[ພິມ], ລ່ວງໜ້າ [serve], ແລະ Pu[t] ໄດ້ທັງຫມົດ
ຊື່ຄໍາສັ່ງທີ່ຖືກຕ້ອງ. POSIX.1-2008 ອະນຸຍາດ, ແຕ່ບໍ່ຕ້ອງການ, ການປະຕິບັດປະຫວັດສາດນີ້
ເນື່ອງຈາກວ່າຮູບແບບນະຄອນຫຼວງຂອງຄໍາສັ່ງຖືກນໍາໃຊ້ໂດຍການປະຕິບັດບາງຢ່າງເພື່ອຈຸດປະສົງອື່ນໆ.

ເອົາໃຈໃສ່
ໃນປະຫວັດສາດ, ກ ex ເອົາໃຈໃສ່ ຄໍາ​ສັ່ງ​, ປະ​ຕິ​ບັດ​ຈາກ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ຮູບ​ພາບ​, ແມ່ນ​ຄື​ກັນ​ກັບ​
ເປີດ ຫຼື ໂໝດສາຍຕາ P ຄໍາສັ່ງ, ຖ້າຫາກວ່າ buffer ໄດ້ຖືກຕັ້ງຊື່ແລະຖືກຕັດໃນຮູບແບບຕົວອັກສອນ, ແລະ
ເຊັ່ນ​ດຽວ​ກັນ​ກັບ​ p ຄໍາສັ່ງຖ້າຫາກວ່າ buffer ໄດ້ຖືກຕັ້ງຊື່ແລະຕັດໃນຮູບແບບເສັ້ນ. ຖ້າບໍ່ມີຊື່
buffer ແມ່ນແຫຼ່ງຂອງຂໍ້ຄວາມ, ເສັ້ນທັງຫມົດຈາກຂໍ້ຄວາມໄດ້ຖືກປະຕິບັດ
ປົກກະຕິແລ້ວ ເອົາໃຈໃສ່, ແລະ buffer ໄດ້ຖືກຈັດການຄືກັບວ່າຢູ່ໃນຮູບແບບເສັ້ນ, ແຕ່ວ່າມັນເປັນໄປໄດ້ທີ່ຈະໄດ້ຮັບ
ພຶດຕິກໍາທີ່ຜິດປົກກະຕິທີ່ສຸດ. ນອກຈາກນັ້ນ, ການນໍາໃຊ້ Q ຄໍາສັ່ງທີ່ຈະປ່ຽນເປັນ ex ຮູບແບບ, ແລະ
ຈາກນັ້ນເຮັດ ກ ເອົາໃຈໃສ່ ມັກຈະສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດເຊັ່ນດຽວກັນ, ເຊັ່ນ: ການຕໍ່ທ້າຍຂໍ້ຄວາມທີ່ເປັນ
ບໍ່ກ່ຽວຂ້ອງກັບເນື້ອໃນ (supposed) ຂອງ buffer. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງ
ສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍາເຫຼົ່ານີ້. ທັງໝົດ ex ເອົາໃຈໃສ່ ຄໍາສັ່ງແມ່ນ
ຕ້ອງການເພື່ອດໍາເນີນການໃນຮູບແບບເສັ້ນ, ແລະເນື້ອໃນຂອງ buffers ບໍ່ໄດ້ປ່ຽນແປງໂດຍ
ການ​ປ່ຽນ​ແປງ​ຮູບ​ແບບ​ຂອງ​ບັນ​ນາ​ທິ​ການ​.

ອ່ານ
ໃນປະຫວັດສາດ, ກ ex ອ່ານ ຄໍາ​ສັ່ງ​ທີ່​ປະ​ຕິ​ບັດ​ຈາກ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ຮູບ​ພາບ​, ປະ​ຕິ​ບັດ​ໃນ​ຫວ່າງ​ເປົ່າ​
ໄຟລ໌, ປະໄວ້ແຖວຫວ່າງເປົ່າເປັນແຖວທໍາອິດຂອງໄຟລ໌. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງ
ສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້. ທາງປະຫວັດສາດ, ກ ອ່ານ ເປີດ
ຫຼືຮູບແບບພາບຈາກໂຄງການໄດ້ປະໄວ້ຕົວກະພິບຢູ່ແຖວສຸດທ້າຍທີ່ອ່ານຢູ່ໃນ, ບໍ່ແມ່ນຄັ້ງທໍາອິດ. ສໍາລັບ
ຄວາມສອດຄ່ອງ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ການປະຕິບັດປະຫວັດສາດຂອງ ex ບໍ່ສາມາດຍົກເລີກໄດ້ ອ່ານ ຄໍາສັ່ງທີ່ອ່ານຈາກ
ຜົນ​ຜະ​ລິດ​ຂອງ​ໂຄງ​ການ​. ເພື່ອຄວາມສອດຄ່ອງ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ທາງປະຫວັດສາດ, ex ແລະ vi ຂໍ້ຄວາມຫຼັງຈາກປະສົບຜົນສໍາເລັດ ອ່ານ or ຂຽນ ຄໍາສັ່ງລະບຸ
``ຕົວອັກສອນ'' ບໍ່ແມ່ນ ``ໄບຕ໌''. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຈໍານວນ bytes ເປັນ
ສະແດງ, ບໍ່ແມ່ນຈໍານວນຕົວອັກສອນ, ເພາະວ່າມັນອາດຈະມີຄວາມຫຍຸ້ງຍາກໃນຫຼາຍໄບຕ໌
ການປະຕິບັດເພື່ອກໍານົດຈໍານວນຕົວອັກສອນທີ່ອ່ານ. ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້
ເພື່ອຊີ້ແຈງຂໍ້ຄວາມທີ່ສະແດງໃຫ້ກັບຜູ້ໃຊ້.

ໃນປະຫວັດສາດ, ການອ່ານບໍ່ໄດ້ຖືກອະນຸຍາດໃຫ້ຢູ່ໃນໄຟລ໌ອື່ນນອກເຫນືອຈາກປະເພດປົກກະຕິ, ຍົກເວັ້ນ FIFO ນັ້ນ
ໄຟລ໌ສາມາດອ່ານໄດ້ (ອາດຈະເປັນພຽງແຕ່ຍ້ອນວ່າພວກເຂົາບໍ່ມີເວລາ ex ແລະ vi ໄດ້
ຂຽນໃນເບື້ອງຕົ້ນ). ເນື່ອງຈາກວ່າປະຫວັດສາດ ex ປະເມີນຜົນ ອ່ານ! ແລະ ອ່ານ ! ທຽບ​ເທົ່າ​,
ບໍ່ມີທາງເລືອກທີ່ຈະບັງຄັບໃຫ້ອ່ານໄດ້. POSIX.1-2008 ອະນຸຍາດ, ແຕ່ບໍ່ໄດ້
ຮຽກຮ້ອງໃຫ້ມີ, ພຶດຕິກໍານີ້.

ຟື້ນຕົວ
ການປະຕິບັດປະຫວັດສາດບາງຢ່າງຂອງບັນນາທິການໄດ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດຟື້ນຕົວ buffer ການແກ້ໄຂ
ເນື້ອໃນຈາກກອງປະຊຸມການແກ້ໄຂທີ່ຜ່ານມາ, ແລະຫຼັງຈາກນັ້ນອອກໂດຍບໍ່ມີການບັນທຶກເນື້ອໃນເຫຼົ່ານັ້ນ (ຫຼື
ຍົກເລີກພວກມັນຢ່າງຈະແຈ້ງ). ເຈດຕະນາຂອງ POSIX.1-2008 ໃນການຮຽກຮ້ອງໃຫ້ແກ້ໄຂ buffer
ໄດ້ຮັບການປະຕິບັດເປັນການແກ້ໄຂແລ້ວແມ່ນເພື່ອປ້ອງກັນຄວາມຜິດພາດຜູ້ໃຊ້ນີ້.

Rewind
ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ​ໄດ້​ສະ​ຫນັບ​ສະ​ຫນູນ​ ຫວນຄືນ ຄໍາສັ່ງໃນເວລາທີ່ຜູ້ໃຊ້ກໍາລັງແກ້ໄຂ
ໄຟລ໌ທໍາອິດໃນບັນຊີລາຍຊື່; ນັ້ນແມ່ນ, ໄຟລ໌ທີ່ ຫວນຄືນ ຄໍາສັ່ງຈະແກ້ໄຂ. POSIX.1-2008
ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ທົດແທນ
ໃນປະຫວັດສາດ, ex ຍອມຮັບ r ທາງ​ເລືອກ​ໃນ​ການ​ s ຄໍາສັ່ງ. ຜົນກະທົບຂອງ r ທາງ​ເລືອກ​ແມ່ນ​ເພື່ອ
ໃຊ້ການສະແດງອອກປົກກະຕິສຸດທ້າຍທີ່ໃຊ້ໃນຄໍາສັ່ງໃດໆທີ່ເປັນຮູບແບບ, ຄືກັນກັບ ~
ຄຳ ສັ່ງ. ທ r ທາງເລືອກແມ່ນບໍ່ຈໍາເປັນໂດຍ POSIX.1-2008. ໃນປະຫວັດສາດ, ໄດ້ c ແລະ g ທາງເລືອກໃນການ
ຖືກສະຫຼັບ; ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ :s/abc/def/ ແມ່ນຄືກັນກັບ s/abc/def/ccccgggg.
ສໍາລັບຄວາມງ່າຍດາຍຂອງຂໍ້ມູນສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ຄໍາສັ່ງ tilde ມັກຈະຖືກນໍາໃຊ້ເພື່ອທົດແທນການຄົ້ນຫາສຸດທ້າຍ RE. ສໍາລັບຕົວຢ່າງ, ໃນ
ລໍາດັບ:

s/ສີແດງ/ສີຟ້າ/
/ ສີຂຽວ
~

ໄດ້ ~ ຄໍາສັ່ງແມ່ນເທົ່າກັບ:

s/ສີຂຽວ/ສີຟ້າ/

ໃນປະຫວັດສາດ, ex ຍອມຮັບທຸກຮູບແບບຕໍ່ໄປນີ້:

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

POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດນີ້.

ໄດ້ s ຄໍາສັ່ງສົມມຸດວ່າ '^' ຕົວອັກສອນພຽງແຕ່ຄອບຄອງຖັນດຽວໃນ
ຈໍສະແດງຜົນ. ຫຼາຍຂອງ ex ແລະ vi ສະ​ເພາະ​ສົມ​ມຸດ​ວ່າ​ ພຽງແຕ່ຄອບຄອງ a
ຖັນດຽວໃນຈໍສະແດງຜົນ. ບໍ່ມີຊຸດຕົວອັກສອນທີ່ຮູ້ຈັກສໍາລັບການທີ່ນີ້ບໍ່ແມ່ນ
ຈິງ

ໃນປະຫວັດສາດ, ຕໍາແຫນ່ງຖັນສຸດທ້າຍສໍາລັບຄໍາສັ່ງທົດແທນແມ່ນອີງໃສ່ກ່ອນຫນ້ານີ້
ການເຄື່ອນໄຫວຖັນ; ການຄົ້ນຫາສໍາລັບຮູບແບບທີ່ປະຕິບັດຕາມໂດຍການທົດແທນຈະອອກຈາກຖັນ
ຕໍາແຫນ່ງບໍ່ປ່ຽນແປງ, ໃນຂະນະທີ່ຄໍາສັ່ງ 0 ປະຕິບັດຕາມໂດຍການທົດແທນຈະປ່ຽນຖັນ
ຕໍາ​ແຫນ່ງ​ທີ່​ບໍ່​ແມ່ນ​ທໍາ​ອິດ . ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງຂໍ້ກໍານົດ,
POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຕັ້ງຖັນສຸດທ້າຍສະເໝີເປັນອັນທຳອິດ
ບໍ່ແມ່ນ .

ທີ່ກໍານົດໄວ້
ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ redisplayed ທັງ​ຫມົດ​ຂອງ​ທາງ​ເລືອກ​ສໍາ​ລັບ​ການ​ເກີດ​ຂຶ້ນ​ຂອງ​ແຕ່​ລະ​ຄົນ ທັງຫມົດ
ຄໍາສໍາຄັນ. POSIX.1-2008 ອະນຸຍາດ, ແຕ່ບໍ່ຕ້ອງການ, ພຶດຕິກໍານີ້.

Tag
ບໍ່​ມີ​ຄວາມ​ຮຽກ​ຮ້ອງ​ຕ້ອງ​ການ​ກ່ຽວ​ກັບ​ການ​ທີ່​ ex ແລະ vi ຈະຊອກຫາໄຟລ໌ອ້າງອີງໂດຍແທັກ
ເຂົ້າ. ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ​ໄດ້​ເພື່ອ​ຊອກ​ຫາ​ເສັ້ນ​ທາງ​ທີ່​ພົບ​ເຫັນ​ໃນ​ tags ໄຟລ໌, ອີງໃສ່
ໄດເລກະທໍລີປະຈຸບັນ. ການຂະຫຍາຍທີ່ເປັນປະໂຫຍດທີ່ພົບເຫັນຢູ່ໃນບາງການປະຕິບັດແມ່ນເພື່ອເບິ່ງໂດຍອີງໃສ່
ໃນໄດເລກະທໍລີທີ່ບັນຈຸໄຟລ໌ tags ທີ່ຖືເອົາລາຍການ, ເຊັ່ນກັນ. ບໍ່ມີຄວາມຕ້ອງການ
ໄດ້ເຮັດເປັນທີ່ອ້າງອີງສໍາລັບແທັກໃນໄຟລ໌ tags ຖືກໃຊ້. ນີ້ແມ່ນເຈດຕະນາ, ໃນ
ເພື່ອອະນຸຍາດໃຫ້ມີການຂະຫຍາຍເຊັ່ນຫຼາຍລາຍການໃນໄຟລ໌ແທັກສໍາລັບແທັກ.

ເນື່ອງຈາກວ່າຜູ້ໃຊ້ມັກຈະລະບຸໄຟລ໌ tags ທີ່ແຕກຕ່າງກັນຫຼາຍ, ບາງອັນບໍ່ຈໍາເປັນຕ້ອງມີຄວາມກ່ຽວຂ້ອງ
ຫຼືມີຢູ່ໃນເວລາໃດນຶ່ງ, POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດກ່ຽວກັບບັນຫາ
ໄຟລ໌ tags ຈະຖືກສະແດງພຽງແຕ່ຖ້າແທັກທີ່ຮ້ອງຂໍບໍ່ພົບ, ແລະຫຼັງຈາກນັ້ນ, ພຽງແຕ່ຄັ້ງດຽວສໍາລັບ
ແຕ່ລະຄັ້ງທີ່ ໂຄດ​ຄໍາ​ສັ່ງ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ແມ່ນ​ການ​ປ່ຽນ​ແປງ​.

ຂໍ້ກໍານົດທີ່ຈະແກ້ໄຂບັຟເຟີໃນປະຈຸບັນແມ່ນບໍ່ຈໍາເປັນພຽງແຕ່ຖ້າໄຟລ໌
ລະບຸໂດຍການປ້ອນແທັກບໍ່ຄືກັບໄຟລ໌ປັດຈຸບັນ (ຕາມທີ່ກຳນົດໄວ້ໂດຍປັດຈຸບັນ
ຊື່ເສັ້ນທາງ). ໃນທາງປະຫວັດສາດ, ໄຟລ໌ຈະຖືກໂຫຼດຄືນໃໝ່ຖ້າຊື່ໄຟລ໌ມີການປ່ຽນແປງ, ເຊັ່ນກັນ
ຄືກັບວ່າຊື່ໄຟລ໌ແຕກຕ່າງຈາກຊື່ເສັ້ນທາງປັດຈຸບັນ. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍ
ຂອງສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້, ຮຽກຮ້ອງໃຫ້ມີຊື່
ປັດໄຈດຽວໃນການຕັດສິນໃຈ.

ໃນປະຫວັດສາດ, vi ຄົ້ນຫາພຽງແຕ່ແທັກໃນໄຟລ໌ປະຈຸບັນຈາກຕົວກະພິບປັດຈຸບັນໄປຫາ
ໃນຕອນທ້າຍຂອງໄຟລ໌, ແລະດັ່ງນັ້ນ, ຖ້າຫາກວ່າ wrapscan ທາງເລືອກບໍ່ໄດ້ຖືກຕັ້ງ, tags ເກີດຂຶ້ນກ່ອນ
ບໍ່ພົບຕົວກະພິບປັດຈຸບັນ. POSIX.1-2008 ຖືວ່ານີ້ເປັນຂໍ້ບົກພ່ອງ, ແລະການຈັດຕັ້ງປະຕິບັດ
ຈໍາເປັນຕ້ອງໄດ້ຄົ້ນຫາການປະກົດຕົວຄັ້ງທໍາອິດໃນໄຟລ໌, ໂດຍບໍ່ສົນເລື່ອງ.

ປະຕິເສດ
ໄດ້ ຍົກເລີກ ຄໍາອະທິບາຍໂດຍເຈດຕະນາໃຊ້ຄໍາວ່າ ''ດັດແກ້'. ໄດ້ ຍົກເລີກ ຄໍາສັ່ງບໍ່ແມ່ນ
ມີຈຸດປະສົງເພື່ອຍົກເລີກຄໍາສັ່ງທີ່ປ່ຽນແທນເນື້ອໃນຂອງການແກ້ໄຂບັຟເຟີ, ເຊັ່ນ: ດັດແກ້,
ຕໍ່ໄປ, ໂຄດ​ຄໍາ​ສັ່ງ, ຫຼື ກູ້ຄືນ.

ການວາງຕົວກະພິບຫຼັງຈາກ ຍົກເລີກ ຄໍາສັ່ງແມ່ນບໍ່ສອດຄ່ອງໃນປະຫວັດສາດ vi, ບາງຄັ້ງ
ຄວາມ​ພະ​ຍາ​ຍາມ​ທີ່​ຈະ​ຟື້ນ​ຟູ​ຕໍາ​ແຫນ່ງ​ຕົວ​ກະ​ພິບ​ເດີມ (ທົ່ວໂລກ, ຍົກເລີກ, ແລະ v ຄໍາສັ່ງ), ແລະ
ບາງຄັ້ງ, ໃນທີ່ປະທັບຂອງແຜນທີ່, ວາງຕົວກະພິບໃສ່ແຖວສຸດທ້າຍທີ່ເພີ່ມຫຼືປ່ຽນ
ແທນທີ່ຈະເປັນຄັ້ງທໍາອິດ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີພຶດຕິກໍາທີ່ງ່າຍດາຍສໍາລັບຄວາມສອດຄ່ອງແລະ
ຄວາມ​ງ່າຍ​ຂອງ​ສະ​ເພາະ​.

Version
ໄດ້ ສະບັບພາສາ ຄໍາສັ່ງບໍ່ສາມາດຖືກກໍານົດຢ່າງແນ່ນອນເນື່ອງຈາກບໍ່ມີການຍອມຮັບຢ່າງກວ້າງຂວາງ
ຄໍານິຍາມຂອງສິ່ງທີ່ຂໍ້ມູນສະບັບຄວນຈະມີ. ການຈັດຕັ້ງປະຕິບັດແມ່ນໄດ້ຮັບການຊຸກຍູ້
ເຮັດບາງສິ່ງບາງຢ່າງທີ່ສະຫຼາດສົມເຫດສົມຜົນ.

ຂຽນ
ທາງປະຫວັດສາດ, ex ແລະ vi ຂໍ້ຄວາມຫຼັງຈາກປະສົບຜົນສໍາເລັດ ອ່ານ or ຂຽນ ຄໍາສັ່ງລະບຸ
``ຕົວອັກສອນ'' ບໍ່ແມ່ນ ``ໄບຕ໌''. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ຈໍານວນ bytes ເປັນ
ສະແດງໃຫ້ເຫັນ, ບໍ່ແມ່ນຈໍານວນຂອງຕົວອັກສອນເນື່ອງຈາກວ່າມັນອາດຈະມີຄວາມຫຍຸ້ງຍາກໃນຫຼາຍໄບຕ໌
ການປະຕິບັດເພື່ອກໍານົດຈໍານວນຕົວອັກສອນທີ່ຂຽນ. ການຈັດຕັ້ງປະຕິບັດແມ່ນ
ຊຸກຍູ້ໃຫ້ຊີ້ແຈງຂໍ້ຄວາມທີ່ສະແດງໃຫ້ຜູ້ໃຊ້.

ການ​ທົດ​ສອບ​ທີ່​ກໍາ​ນົດ​ການ​ປະ​ຕິ​ບັດ​ແມ່ນ​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ປະ​ຕິ​ບັດ​ສາ​ມາດ​ເຮັດ​ໃຫ້​ເພີ່ມ​ເຕີມ​
ເຊັກ; ສໍາ​ລັບ​ຕົວ​ຢ່າງ​, ສໍາ​ລັບ​ການ locks ຫຼື​ເວ​ລາ​ການ​ດັດ​ແກ້​ໄຟລ​໌​.

ໃນປະຫວັດສາດ, ຄວາມພະຍາຍາມທີ່ຈະຕໍ່ທ້າຍກັບໄຟລ໌ທີ່ບໍ່ມີຢູ່ແລ້ວເຮັດໃຫ້ເກີດຄວາມຜິດພາດ. ມັນໄດ້ຖືກປະໄວ້
ບໍ່ໄດ້ລະບຸໄວ້ໃນ POSIX.1-2008 ເພື່ອອະນຸຍາດໃຫ້ປະຕິບັດເພື່ອໃຫ້ໄດ້ ຂຽນ ສໍາເລັດ, ດັ່ງນັ້ນ
ຄໍາສັບເພີ່ມເຕີມແມ່ນຄ້າຍຄືກັນກັບຂອງປະຫວັດສາດ csh.

ປະຫວັດສາດ vi ອະນຸຍາດໃຫ້ຂຽນ buffers ດັດແກ້ເປົ່າຫວ່າງ. ຢ່າງໃດກໍຕາມ, ນັບຕັ້ງແຕ່ວິທີການ vi ໄດ້ຮັບ
ກ່ຽວກັບການຈັດການກັບໄຟລ໌ ``ຫວ່າງເປົ່າ'' ແມ່ນການມີເສັ້ນຢູ່ໃນບັຟເຟີການແກ້ໄຂສະເໝີ, ບໍ່
ບໍ່ເປັນຫຍັງ, ມັນຂຽນພວກມັນເປັນໄຟລ໌ຂອງເສັ້ນດຽວ, ຫວ່າງເປົ່າ. POSIX.1-2008 ບໍ່ອະນຸຍາດ
ພຶດຕິກໍານີ້.

ໃນປະຫວັດສາດ, ex ຟື້ນຟູຜົນຜະລິດມາດຕະຖານ ແລະຄວາມຜິດພາດມາດຕະຖານໃຫ້ກັບຄ່າຂອງພວກມັນເມື່ອໃດ ex
ໄດ້ຖືກເອີ້ນ, ກ່ອນທີ່ຈະຂຽນໄປຫາໂຄງການໄດ້ຖືກປະຕິບັດ. ນີ້ອາດຈະລົບກວນສະຖານີ
ການຕັ້ງຄ່າເຊັ່ນດຽວກັນກັບບັນຫາຄວາມປອດໄພສໍາລັບບາງ terminals. POSIX.1-2008 ບໍ່
ອະ​ນຸ​ຍາດ​ໃຫ້​ນີ້​, ຮຽກ​ຮ້ອງ​ໃຫ້​ຜົນ​ຜະ​ລິດ​ຂອງ​ໂຄງ​ການ​ໄດ້​ຮັບ​ການ captured ແລະ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ວ່າ​ໂດຍ​ການ​ ex
ພິມ ຄໍາສັ່ງ.

ປັບ ວິນ​ໂດ
ໃນປະຫວັດສາດ, ການນັບເສັ້ນໄດ້ຖືກກໍານົດເປັນມູນຄ່າຂອງ ເລື່ອນ ທາງ​ເລືອກ​ຖ້າ​ຫາກ​ວ່າ​ປະ​ເພດ​
ຕົວອັກສອນແມ່ນສິ້ນສຸດຂອງໄຟລ໌. ຄຸນນະສົມບັດນີ້ໄດ້ຖືກທໍາລາຍໃນການປະຕິບັດປະຫວັດສາດສ່ວນໃຫຍ່ເປັນເວລາດົນນານ
ກ່ອນຫນ້ານີ້, ແນວໃດກໍ່ຕາມ, ແລະບໍ່ໄດ້ຖືກບັນທຶກໄວ້ທຸກບ່ອນ. ສໍາລັບເຫດຜົນນີ້, POSIX.1-2008 ແມ່ນແນ່ນອນ
ງຽບ.

ທາງປະຫວັດສາດ, z ຄໍາສັ່ງແມ່ນ -sensitive ແລະ z + ແລະ z - ໄດ້​ເຮັດ​ສິ່ງ​ທີ່​ແຕກ​ຕ່າງ​ກັນ
ກ່ວາ z+ ແລະ z− ເນື່ອງຈາກວ່າປະເພດບໍ່ສາມາດຈໍາແນກຈາກທຸງຊາດ. (ຄໍາສັ່ງ z .
ແລະ z = ບໍ່ຖືກຕ້ອງທາງປະຫວັດສາດ.) POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມປະຫວັດສາດນີ້
ປະຕິບັດ.

ທາງປະຫວັດສາດ, z ຄໍາສັ່ງແມ່ນຕື່ມອີກ -sensitive ໃນ​ນັ້ນ​ ນັບ ບໍ່ສາມາດເປັນ
-delimited; ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ z= 5 ແລະ z− 5 ຍັງບໍ່ຖືກຕ້ອງ. ເນື່ອງຈາກວ່າ
ນັບ ບໍ່ມີຄວາມຊັດເຈນກ່ຽວກັບລັກສະນະປະເພດຫຼືທຸງ, ນີ້ບໍ່ແມ່ນ
ອະນຸຍາດໂດຍ POSIX.1-2008.

Escape
ໃນປະຫວັດສາດ, ex ຄໍາສັ່ງການກັ່ນຕອງພຽງແຕ່ອ່ານຜົນໄດ້ຮັບມາດຕະຖານຂອງຄໍາສັ່ງ, ປ່ອຍໃຫ້
ຂໍ້ຜິດພາດມາດຕະຖານປາກົດຢູ່ໃນເຄື່ອງຈ່າຍເງິນຕາມປົກກະຕິ. ໄດ້ vi ຜົນປະໂຫຍດ, ຢ່າງໃດກໍຕາມ, ອ່ານທັງສອງ
ຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດມາດຕະຖານ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີພຶດຕິກໍາອັນສຸດທ້າຍສໍາລັບທັງສອງ ex
ແລະ vi, ສໍາລັບຄວາມສອດຄ່ອງ.

ການປ່ຽນແປງ ໄວ້ ແລະ ການປ່ຽນແປງ ສິດ
ໃນປະຫວັດສາດ, ມັນເປັນໄປໄດ້ທີ່ຈະເພີ່ມຕົວລະຄອນການປ່ຽນແປງເພື່ອເພີ່ມຜົນກະທົບຂອງ
ຄໍາສັ່ງ; ຍົກ​ຕົວ​ຢ່າງ, << outdented (ຫຼື >>> indented) ເສັ້ນ 3 ລະດັບຂອງ indentation
ແທນທີ່ຈະເປັນຄ່າເລີ່ມຕົ້ນ 1. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

-D
ໃນປະຫວັດສາດ, ໄດ້ -D ຄໍາ​ສັ່ງ​ໄດ້​ລົບ​ການ​ກະ​ຕຸ້ນ​ເຕືອນ​, ໃຫ້​ຜູ້​ໃຊ້​ທີ່​ມີ​
ການນໍາສະເຫນີທີ່ບໍ່ແຕກແຍກຂອງເສັ້ນຈາກການແກ້ໄຂ buffer. ອັນນີ້ບໍ່ຈຳເປັນໂດຍ POSIX.1-2008;
ການຈັດຕັ້ງປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ສະຫນອງມັນຖ້າເປັນໄປໄດ້. ໃນປະຫວັດສາດ, ໄດ້ -D
ຄໍາສັ່ງໄດ້, ແລະຫຼັງຈາກນັ້ນບໍ່ສົນໃຈ, a ນັບ. POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ຂຽນ ອອນໄລນ໌ ຈໍານວນ
ທາງປະຫວັດສາດ, ex = ຄໍາສັ່ງ, ເມື່ອປະຕິບັດໃນ ex ຮູບແບບໃນ buffer ແກ້ໄຂຫວ່າງເປົ່າ, ລາຍງານ
0, ແລະຈາກໂຫມດເປີດຫຼືສາຍຕາ, ລາຍງານ 1. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງ
ສະເພາະ, POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ປະຕິບັດ
ໃນປະຫວັດສາດ, ex ບໍ່ໄດ້ຈັດການການລວມເອົາຄໍາສັ່ງໃສ່ຂໍ້ຄວາມຢ່າງຖືກຕ້ອງ (ນັ້ນແມ່ນ,
ເພີ່ມເຕີມ, ໃສ່, ແລະ ການປ່ຽນແປງ) ໃນ buffers ປະ​ຕິ​ບັດ​. POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ນີ້
ການຍົກເວັ້ນສໍາລັບຄວາມສອດຄ່ອງ.

ໃນປະຫວັດສາດ, ເນື້ອໃນທີ່ມີເຫດຜົນຂອງ buffer ທີ່ຖືກປະຕິບັດບໍ່ໄດ້ປ່ຽນແປງຖ້າຫາກວ່າ
buffer ຕົວຂອງມັນເອງໄດ້ຖືກດັດແກ້ໂດຍຄໍາສັ່ງທີ່ຖືກປະຕິບັດ; ນັ້ນແມ່ນ, ການປະຕິບັດ buffer ໄດ້ເຮັດ
ບໍ່ຮອງຮັບລະຫັດດັດແກ້ຕົນເອງ. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ທາງປະຫວັດສາດ, @ ຄໍາ ສັ່ງ ໄດ້ ລະ ດັບ ຂອງ ສາຍ, ແລະ @ buffer ໄດ້ຖືກປະຕິບັດຫນຶ່ງຄັ້ງຕໍ່
ເສັ້ນ, ກັບເສັ້ນປະຈຸບັນ ('.') ກໍານົດແຕ່ລະເສັ້ນທີ່ກໍານົດ. POSIX.1-2008 ຕ້ອງການ
ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ການປະຕິບັດປະຫວັດສາດບາງຢ່າງບໍ່ໄດ້ສັງເກດເຫັນວ່າມີຂໍ້ຜິດພາດເກີດຂື້ນໃນລະຫວ່າງການປະຕິບັດບັຟເຟີ.
ນີ້, ບວກໃສ່ກັບຄວາມສາມາດໃນການກໍານົດຂອບເຂດຂອງສາຍສໍາລັບການ ex @ ຄໍາສັ່ງ, ເຮັດໃຫ້ມັນ
trivial ເພື່ອເຮັດໃຫ້ພວກເຂົາຫຼຸດລົງ core. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ການຈັດຕັ້ງປະຕິບັດຢຸດ
ການ​ປະ​ຕິ​ບັດ buffer ຖ້າ​ຫາກ​ວ່າ​ຄວາມ​ຜິດ​ພາດ​ໃດ​ຫນຶ່ງ​ເກີດ​ຂຶ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ເສັ້ນ​ທີ່​ກໍາ​ນົດ​ໄວ້​ບໍ່​ມີ​, ຫຼື​ຖ້າ​ຫາກ​ວ່າ​.
ເນື້ອໃນຂອງການແກ້ໄຂ buffer ຕົວຂອງມັນເອງໄດ້ຖືກທົດແທນ (ຕົວຢ່າງ, buffer ປະຕິບັດການ. ex
:ດັດແກ້ ຄໍາສັ່ງ).

ເປັນປົກກະຕິ ສຳ ນວນ in ex
ການປະຕິບັດປະຫວັດສາດແມ່ນວ່າລັກສະນະໃນສ່ວນທົດແທນຂອງສຸດທ້າຍ s ຄໍາ​ສັ່ງ -
ນັ້ນແມ່ນ, ທີ່ຖືກຈັບຄູ່ໂດຍການໃສ່ a '~' ໃນການສະແດງອອກປົກກະຕິ - ບໍ່ແມ່ນຕໍ່ໄປ
ຂະຫຍາຍໂດຍເຄື່ອງຈັກການສະແດງອອກປົກກະຕິ. ດັ່ງນັ້ນ, ຖ້າຕົວອັກສອນມີສາຍ
"ກ." ພວກເຂົາເຈົ້າຈະກົງກັນ 'ກ' ປະຕິບັດຕາມໂດຍ "." ແລະບໍ່ 'ກ' ຕິດຕາມດ້ວຍຕົວລະຄອນໃດນຶ່ງ.
POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ດັດແກ້ ທາງເລືອກໃນການ in ex
ວັກຕໍ່ໄປນີ້ອະທິບາຍເຖິງພຶດຕິກຳປະຫວັດສາດຂອງບາງທາງເລືອກໃນການແກ້ໄຂ
ບໍ່ວ່າດ້ວຍເຫດຜົນໃດກໍ່ຕາມ, ລວມຢູ່ໃນ POSIX.1-2008. ການຈັດຕັ້ງປະຕິບັດຢ່າງແຂງແຮງ
ຊຸກຍູ້ໃຫ້ໃຊ້ຊື່ເຫຼົ່ານີ້ເທົ່ານັ້ນ ຖ້າການທໍາງານທີ່ອະທິບາຍໄວ້ໃນນີ້ໄດ້ຮັບການສະຫນັບສະຫນູນຢ່າງເຕັມສ່ວນ.

ຂະຫຍາຍ ໄດ້ ຂະຫຍາຍ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ການ​ປະ​ຕິ​ບັດ​ບາງ​ຢ່າງ​ຂອງ​ vi ໃຫ້
ຂະ​ຫຍາຍ​ການ​ສະ​ແດງ​ອອກ​ປົກ​ກະ​ຕິ​ແທນ​ທີ່​ຈະ​ເປັນ​ການ​ສະ​ແດງ​ອອກ​ປົກ​ກະ​ຕິ​ພື້ນ​ຖານ​ທາງ​ເລືອກ​ນີ້​
ຖືກລະເວັ້ນຈາກ POSIX.1-2008 ເພາະວ່າມັນບໍ່ແມ່ນການປະຕິບັດທາງປະຫວັດສາດທີ່ກວ້າງຂວາງ.

໌ Flash ໄດ້ ໌ Flash ການແກ້ໄຂທາງເລືອກໃນປະຫວັດສາດເຮັດໃຫ້ຫນ້າຈໍກະພິບແທນທີ່ຈະເປັນ beeping
ໃນ​ຄວາມ​ຜິດ​ພາດ​. ຕົວເລືອກນີ້ຖືກລະເວັ້ນຈາກ POSIX.1-2008 ເພາະວ່າມັນບໍ່ພົບຢູ່ໃນ
ການປະຕິບັດປະຫວັດສາດບາງຢ່າງ.

ແຖບແຂງ ໄດ້ ແຖບແຂງ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ປະ​ຫວັດ​ສາດ​ກໍາ​ນົດ​ຈໍາ​ນວນ​ຂອງ​ຖັນ​ລະ​ຫວ່າງ​
ການຕັ້ງຄ່າແຖບຮາດແວ. ຕົວເລືອກນີ້ຖືກລະເວັ້ນຈາກ POSIX.1-2008 ເພາະວ່າມັນແມ່ນ
ເຊື່ອກັນວ່າຈະບໍ່ເປັນປະໂຫຍດໂດຍທົ່ວໄປແລ້ວ.

ຕົວແບບ ໄດ້ ຕົວແບບ (ບາງຄັ້ງມີຊື່ ຕົວແບບ) ແກ້ໄຂທາງເລືອກທີ່ເກີດຈາກປະຫວັດສາດ ex or
vi ເພື່ອອ່ານຫ້າແຖວທໍາອິດແລະສຸດທ້າຍຂອງໄຟລ໌ສໍາລັບຄໍາສັ່ງບັນນາທິການ. ນີ້
ທາງເລືອກແມ່ນບັນຫາຄວາມປອດໄພ, ແລະຜູ້ຂາຍໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງທີ່ຈະລຶບມັນ
ຈາກ​ການ​ປະ​ຕິ​ບັດ​ປະ​ຫວັດ​ສາດ​.

ເປີດ ໄດ້ ເປີດ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ປະ​ຫວັດ​ສາດ​ບໍ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ ex ເປີດ ແລະ ສາຍຕາ ຄຳ ສັ່ງ.
ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ນີ້​ໄດ້​ຖືກ​ລະ​ເວັ້ນ​ເນື່ອງ​ຈາກ​ວ່າ​ຄໍາ​ສັ່ງ​ເຫຼົ່າ​ນີ້​ແມ່ນ​ຕ້ອງ​ການ​ໂດຍ
POSIX.1-2008.

ເພີ່ມປະສິດທິ ໄດ້ ເພີ່ມປະສິດທິ ທາງ​ເລືອກ​ໃນ​ການ​ແກ້​ໄຂ​ຜ່ານ​ການ​ເລັ່ງ​ຂໍ້​ຄວາມ​ໃນ​ປະ​ຫວັດ​ສາດ​ໂດຍ​ການ​ຕັ້ງ​ຄ່າ​
terminal ທີ່ຈະບໍ່ເຮັດອັດຕະໂນມັດ ຕົວອັກສອນໃນເວລາພິມຫຼາຍ
ຫຼາຍກວ່າໜຶ່ງເສັ້ນຜົນຜະລິດ. ຕົວເລືອກນີ້ຖືກລະເວັ້ນຈາກ POSIX.1-2008
ເນື່ອງຈາກວ່າມັນມີຈຸດປະສົງສໍາລັບ terminals ໂດຍບໍ່ມີຕົວກະພິບທີ່ສາມາດແກ້ໄຂໄດ້, ເຊິ່ງແມ່ນ
ບໍ່ຄ່ອຍ, ຖ້າເຄີຍ, ຍັງໃຊ້.

ຜູ້ປົກຄອງ ໄດ້ ຜູ້ປົກຄອງ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ການ​ປະ​ຕິ​ບັດ​ບາງ​ຢ່າງ​ຂອງ​ vi ການ ນຳ ສະ ເໜີ ກ
ໄມ້ບັນທັດແຖວ/ຖັນປັດຈຸບັນສຳລັບຜູ້ໃຊ້. ຕົວເລືອກນີ້ຖືກລະເວັ້ນຈາກ POSIX.1-2008
ເນື່ອງຈາກວ່າມັນບໍ່ແມ່ນການປະຕິບັດປະຫວັດສາດຢ່າງກວ້າງຂວາງ.

ແຫຼ່ງ ໄດ້ ແຫຼ່ງ ແກ້ໄຂທາງເລືອກທີ່ເກີດຈາກປະຫວັດສາດ ex or vi ແຫຼ່ງໄຟລ໌ເລີ່ມຕົ້ນ
ທີ່ເປັນເຈົ້າຂອງໂດຍຜູ້ໃຊ້ອື່ນນອກຈາກຜູ້ໃຊ້ແລ່ນບັນນາທິການ. ທາງເລືອກນີ້ແມ່ນ
ບັນຫາຄວາມປອດໄພ, ແລະຜູ້ຂາຍໄດ້ຮັບການຊຸກຍູ້ຢ່າງແຂງແຮງເພື່ອເອົາມັນອອກຈາກພວກມັນ
ການຈັດຕັ້ງປະຕິບັດ.

ຫມົດ​ເວ​ລາ ໄດ້ ຫມົດ​ເວ​ລາ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ປະ​ຫວັດ​ສາດ​ໄດ້​ເປີດ​ໃຊ້​ງານ​ຄຸນ​ສົມ​ບັດ (ໃນ​ປັດ​ຈຸ​ບັນ​ມາດ​ຕະ​ຖານ​) ພຽງ​ແຕ່​
ລໍຖ້າໄລຍະສັ້ນໆກ່ອນທີ່ຈະສົ່ງຄືນກະແຈທີ່ສາມາດເປັນສ່ວນຫນຶ່ງຂອງມະຫາພາກ.
ຄຸນສົມບັດນີ້ຖືກລະເວັ້ນຈາກ POSIX.1-2008 ເນື່ອງຈາກວ່າພຶດຕິກໍາຂອງມັນແມ່ນມາດຕະຖານໃນປັດຈຸບັນ,
ມັນບໍ່ເປັນປະໂຫຍດຢ່າງກວ້າງຂວາງ, ແລະມັນບໍ່ຄ່ອຍມີເອກະສານ.

ຄຳເວົ້າ ໄດ້ ຄຳເວົ້າ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ການ​ປະ​ຕິ​ບັດ​ບາງ​ຢ່າງ​ຂອງ​ vi ສາ​ເຫດ vi
ການ​ອອກ​ຂໍ້​ຄວາມ​ຄວາມ​ຜິດ​ພາດ​ສໍາ​ລັບ​ຄວາມ​ຜິດ​ພາດ​ທົ່ວ​ໄປ​; ສໍາລັບຕົວຢ່າງ, ພະຍາຍາມຍ້າຍ
ຕົວກະພິບຜ່ານຈຸດເລີ່ມຕົ້ນ ຫຼືຈຸດສິ້ນສຸດຂອງແຖວແທນທີ່ຈະເປັນການເຕືອນພຽງແຕ່
ຈໍ. (ປະຫວັດສາດ vi ພຽງ​ແຕ່​ແຈ້ງ​ການ terminal ແລະ​ນໍາ​ສະ​ເຫນີ​ບໍ່​ມີ​ຂໍ້​ຄວາມ​
ສໍາລັບຄວາມຜິດພາດດັ່ງກ່າວ. ທາງເລືອກບັນນາທິການປະຫວັດສາດ terse ບໍ່ໄດ້ເລືອກເວລາທີ່ຈະ
ປະຈຸບັນຂໍ້ຄວາມຜິດພາດ, ມັນພຽງແຕ່ເຮັດໃຫ້ຂໍ້ຄວາມຄວາມຜິດພາດທີ່ມີຢູ່ແລ້ວຫຼາຍຫຼືຫນ້ອຍ
verbose.) ທາງເລືອກນີ້ຖືກຍົກເລີກຈາກ POSIX.1-2008 ເພາະວ່າມັນບໍ່ແຜ່ຫຼາຍ.
ການປະຕິບັດປະຫວັດສາດ; ແນວໃດກໍ່ຕາມ, ຜູ້ຈັດຕັ້ງປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ໃຊ້ມັນຖ້າພວກເຂົາຕ້ອງການ
ເພື່ອສະຫນອງຂໍ້ຄວາມຜິດພາດສໍາລັບຜູ້ໃຊ້ naive.

ຫໍ່ ໄດ້ ຫໍ່ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ການ​ປະ​ຕິ​ບັດ​ບາງ​ຢ່າງ​ຂອງ​ vi ກໍານົດ
ຂອບອັດຕະໂນມັດທີ່ວັດແທກຈາກຂອບຊ້າຍແທນຈາກຂວາ
ຂອບ. ອັນນີ້ເປັນປະໂຫຍດເມື່ອຫຼາຍຂະໜາດໜ້າຈໍຖືກໃຊ້ເພື່ອແກ້ໄຂ a
ໄຟລ໌ດຽວ. ທາງເລືອກນີ້ຖືກລະເວັ້ນຈາກ POSIX.1-2008 ເພາະວ່າມັນບໍ່ແມ່ນ
ການປະຕິບັດປະຫວັດສາດຢ່າງກວ້າງຂວາງ; ແນວໃດກໍ່ຕາມ, ຜູ້ຈັດຕັ້ງປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ໃຊ້ມັນ
ຖ້າພວກເຂົາເພີ່ມຫນ້າທີ່ນີ້.

ອັດ​ຕະ​ໂນ​ມັດ​, ai
ປະຫວັດສາດ, ຄໍາສັ່ງ 0a ບໍ່ໄດ້ເຮັດ autoindentation ໃດໆ, ໂດຍບໍ່ສົນເລື່ອງຂອງປະຈຸບັນ
ການຫຍໍ້ໜ້າຂອງແຖວທີ 1. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ການຫຍໍ້ໜ້າໃດໆທີ່ຢູ່ໃນແຖວທີ 1 ເປັນ
ໃຊ້ແລ້ວ.

ອັດ​ຕະ​ໂນ​ມັດ​, ap
ທາງປະຫວັດສາດ, ພິມອັດຕະໂນມັດ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ບໍ່​ໄດ້​ສອດ​ຄ່ອງ​ຢ່າງ​ສົມ​ບູນ​ຫຼື​ອີງ​ໃສ່​ພຽງ​ແຕ່​
ການ​ປັບ​ປຸງ​ແກ້​ໄຂ buffer​. ຂໍ້ຍົກເວັ້ນແມ່ນ ອ່ານ ຄໍາສັ່ງ (ເມື່ອອ່ານຈາກ a
ໄຟລ໌, ແຕ່ບໍ່ແມ່ນມາຈາກການກັ່ນຕອງ), the ເພີ່ມເຕີມ, ການປ່ຽນແປງ, ໃສ່, ທົ່ວໂລກ, ແລະ v ຄໍາສັ່ງ, ທັງຫມົດ
ເຊິ່ງບໍ່ໄດ້ຮັບຜົນກະທົບຈາກ ພິມອັດຕະໂນມັດ, ແລະ ໂຄດ​ຄໍາ​ສັ່ງ ຄໍາສັ່ງ, ເຊິ່ງໄດ້ຮັບຜົນກະທົບຈາກ
ພິມອັດຕະໂນມັດ. POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ທາງປະຫວັດສາດ, ພິມອັດຕະໂນມັດ ທາງເລືອກພຽງແຕ່ນໍາໃຊ້ກັບຄໍາສັ່ງສຸດທ້າຍຂອງຫຼາຍຄໍາສັ່ງທີ່ເຂົ້າມາ
ການ​ນໍາ​ໃຊ້ ຕົວຂັ້ນ; ຍົກ​ຕົວ​ຢ່າງ, ລຶບ ໄດ້ຮັບຜົນກະທົບຈາກ ພິມອັດຕະໂນມັດ,
ແຕ່ ລຶບ|ລຸ້ນ ບໍ່ແມ່ນ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕາມປະຫວັດສາດ
ປະຕິບັດ.

ຂຽນອັດຕະໂນມັດ, aw
ຕໍ່ທ້າຍ '!' ລັກ​ສະ​ນະ​ຂອງ​ ex ຕໍ່ໄປ ຄໍາສັ່ງເພື່ອຫຼີກເວັ້ນການປະຕິບັດການຂຽນອັດຕະໂນມັດ
ບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນໃນການປະຕິບັດປະຫວັດສາດ. POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີພຶດຕິກໍາດັ່ງກ່າວ
ຈັບຄູ່ອື່ນໆ ex ຄໍາສັ່ງສໍາລັບຄວາມສອດຄ່ອງ.

ບໍ່ສົນໃຈ, ic
ການປະຕິບັດປະຫວັດສາດຂອງການຈັບຄູ່ກໍລະນີທີ່ບໍ່ລະອຽດອ່ອນ (the ບໍ່ສົນໃຈ ແກ້ໄຂທາງເລືອກ) ນໍາ
ກັບສະຖານະການຕ້ານ intuitive ເມື່ອຕົວອັກສອນຕົວພິມໃຫຍ່ໄດ້ຖືກນໍາໃຊ້ໃນການສະແດງຂອບເຂດ.
ໃນປະຫວັດສາດ, ຂະບວນການດັ່ງກ່າວແມ່ນດັ່ງຕໍ່ໄປນີ້:

1. ເອົາເສັ້ນຂໍ້ຄວາມຈາກ buffer ແກ້ໄຂ.

2. ປ່ຽນຕົວພິມໃຫຍ່ເປັນຕົວພິມນ້ອຍໃນແຖວຂໍ້ຄວາມ.

3. ປ່ຽນຕົວພິມໃຫຍ່ເປັນຕົວພິມນ້ອຍໃນສຳນວນປົກກະຕິ, ຍົກເວັ້ນໃນໝວດຕົວອັກສອນ
ຂໍ້ສະເພາະ.

4. ຈັບຄູ່ສຳນວນປົກກະຕິຕໍ່ກັບຂໍ້ຄວາມ.

ນີ້ຫມາຍຄວາມວ່າ, ກັບ ບໍ່ສົນໃຈ ໃນຜົນກະທົບ, ຂໍ້ຄວາມ:

ໄດ້ cat ນັ່ງ on ໄດ້ ມື້ຄ່ໍາ

ຈະຖືກຈັບຄູ່ໂດຍ

/^the/

ແຕ່ບໍ່ແມ່ນໂດຍ:

/^[A−Z]ລາວ/

ສໍາລັບຄວາມສອດຄ່ອງຂອງຄໍາສັ່ງອື່ນໆທີ່ປະຕິບັດການສະແດງອອກເປັນປົກກະຕິ, POSIX.1-2008 ເຮັດ
ບໍ່ອະນຸຍາດໃຫ້ພຶດຕິກໍານີ້.

ວັກ, to
ມາດຕະຖານ ISO POSIX-2:1993 ໄດ້ສ້າງມາດຕະຖານ ວັກ ແລະ ພາກສ່ວນ ແກ້ໄຂທາງເລືອກ
ການປະຕິບັດທີ່ໄດ້ກໍານົດ, ໂຕ້ຖຽງວ່າພວກເຂົາໄດ້ຮັດກຸມປະຫວັດສາດໄປສູ່ລະບົບ UNIX ຕັດໄມ້
ຕົວຈັດຮູບແບບຂໍ້ຄວາມ, ແລະ ``ຜູ້ໃຊ້ແບບພົກພາ'' ສາມາດນຳໃຊ້ {, }, [[, ]], (, ແລະ ) ຄໍາສັ່ງໃນ
ເປີດ ຫຼື ໂໝດສາຍຕາ ແລະໃຫ້ຕົວກະພິບຢຸດຢູ່ໃນບ່ອນທີ່ບໍ່ຄາດຄິດ. POSIX.1-2008 ລະບຸ
ຄ່າຂອງເຂົາເຈົ້າຢູ່ໃນ POSIX locale ເນື່ອງຈາກວ່າການຈັດກຸ່ມທີ່ຜິດປົກກະຕິ (ພວກມັນເຮັດວຽກພຽງແຕ່ເມື່ອຈັດກຸ່ມ
ເປັນສອງຕົວອັກສອນໃນເວລາດຽວ) ຫມາຍຄວາມວ່າພວກມັນບໍ່ສາມາດຖືກນໍາໃຊ້ເພື່ອຈຸດປະສົງທົ່ວໄປ
ການເຄື່ອນໄຫວ, ໂດຍບໍ່ສົນເລື່ອງ.

ອ່ານ​ຢ່າງ​ດຽວ
ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ສະຫນອງຂໍ້ມູນທີ່ດີທີ່ສຸດທີ່ເປັນໄປໄດ້ກັບຜູ້ໃຊ້
ສະຖານະການອ່ານເທົ່ານັ້ນຂອງໄຟລ໌, ຍົກເວັ້ນວ່າພວກເຂົາບໍ່ຄວນພິຈາລະນາ
ສິດທິພິເສດໃນປະຈຸບັນຂອງຂະບວນການ. ນີ້ສະຫນອງຜູ້ຊົມໃຊ້ທີ່ມີຕາຫນ່າງຄວາມປອດໄພເນື່ອງຈາກວ່າ
ເຂົາເຈົ້າຕ້ອງບັງຄັບໃຫ້ຂຽນທັບຂອງໄຟລ໌ອ່ານເທົ່ານັ້ນ, ເຖິງແມ່ນວ່າຈະແລ່ນກັບເພີ່ມເຕີມ
ສິດທິພິເສດ.

ໄດ້ ອ່ານ​ຢ່າງ​ດຽວ ການແກ້ໄຂຂໍ້ກໍາຫນົດທາງເລືອກສ່ວນໃຫຍ່ແມ່ນສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ. ເທົ່ານັ້ນ
ຄວາມແຕກຕ່າງແມ່ນວ່າການປະຕິບັດປະຫວັດສາດບໍ່ໄດ້ສັງເກດເຫັນວ່າຜູ້ໃຊ້ໄດ້ກໍານົດ
ອ່ານ​ຢ່າງ​ດຽວ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໃນ​ກໍ​ລະ​ນີ​ທີ່​ໄຟລ​໌​ໄດ້​ຖືກ​ຫມາຍ​ແລ້ວ​ອ່ານ​ເທົ່າ​ນັ້ນ​ສໍາ​ລັບ​ເຫດ​ຜົນ​ບາງ​ຢ່າງ​,
ແລະເພາະສະນັ້ນຈຶ່ງຈະ reinitialize ໄດ້ ອ່ານ​ຢ່າງ​ດຽວ ແກ້ໄຂທາງເລືອກໃນຄັ້ງຕໍ່ໄປເນື້ອໃນຂອງ
ການແກ້ໄຂ buffer ໄດ້ຖືກທົດແທນ. ພຶດຕິກໍານີ້ແມ່ນບໍ່ອະນຸຍາດໂດຍ POSIX.1-2008.

ບົດ​ລາຍ​ງານ
ຂໍ້ກໍານົດທີ່ສາຍທີ່ຄັດລອກໄປຫາ buffer ໂຕ້ຕອບທີ່ແຕກຕ່າງຈາກເສັ້ນທີ່ຖືກລົບແມ່ນ
ການປະຕິບັດປະຫວັດສາດ. ສໍາລັບຕົວຢ່າງ, ຖ້າຫາກວ່າ ບົດ​ລາຍ​ງານ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ແມ່ນ​ຕັ້ງ​ເປັນ 3​, ການ​ລົບ 3 ແຖວ​
ຈະເຮັດໃຫ້ບົດລາຍງານຖືກຂຽນ, ແຕ່ 4 ແຖວຕ້ອງຖືກຄັດລອກກ່ອນທີ່ຈະຂຽນບົດລາຍງານ.

ຂໍ້​ກໍາ​ນົດ​ທີ່​ ex ທົ່ວໂລກ, v, ເປີດ, ຍົກເລີກ, ແລະ ສາຍຕາ ຄໍາສັ່ງນໍາສະເຫນີບົດລາຍງານ
ອີງ​ຕາມ​ຈໍາ​ນວນ​ທັງ​ຫມົດ​ຂອງ​ສາຍ​ທີ່​ເພີ່ມ​ຫຼື​ລົບ​ໃນ​ລະ​ຫວ່າງ​ການ​ປະ​ຕິ​ບັດ​ຄໍາ​ສັ່ງ​, ແລະ​ວ່າ​
ຄໍາສັ່ງປະຕິບັດໂດຍ ທົ່ວໂລກ ແລະ v ຄໍາສັ່ງທີ່ບໍ່ມີບົດລາຍງານ, ແມ່ນປະຫວັດສາດ
ການປະຕິບັດ. POSIX.1-2008 ຂະຫຍາຍການປະຕິບັດປະຫວັດສາດໂດຍກໍານົດໃຫ້ການປະຕິບັດການຕ້ານການເປັນ.
ຮັບການປິ່ນປົວຄືກັນ. ເຫດຜົນສໍາລັບການນີ້ແມ່ນສອງເທົ່າ. ທາງດ້ານປະຫວັດສາດ, ພຽງແຕ່ບົດລາຍງານໂດຍ
ຄໍາສັ່ງສຸດທ້າຍທີ່ຖືກປະຕິບັດຈາກ buffer ຈະເຫັນໄດ້ໂດຍຜູ້ໃຊ້, ຍ້ອນວ່າແຕ່ລະລາຍງານໃຫມ່ຈະ
ຂຽນທັບສຸດທ້າຍ. ນອກຈາກນັ້ນ, ນັກພັດທະນາມາດຕະຖານເຊື່ອວ່າການປະຕິບັດ buffer
ມີ ຫຼາຍ ໃນ ທົ່ວ ໄປ ກັບ ທົ່ວໂລກ ແລະ v ຄໍາສັ່ງຫຼາຍກ່ວາມັນເຮັດກັບອື່ນໆ ex ຄໍາສັ່ງ, ແລະ
ຄວນ​ປະ​ຕິ​ບັດ​ຄ້າຍ​ຄື​ກັນ​, ສໍາ​ລັບ​ຄວາມ​ສອດ​ຄ່ອງ​ແລະ​ງ່າຍ​ດາຍ​ຂອງ​ສະ​ເພາະ​.

ການ​ແຂ່ງ​ຂັນ​, sm
ໄລຍະເວລາທີ່ຕົວກະພິບໃຊ້ກັບຕົວລະຄອນທີ່ກົງກັນແມ່ນບໍ່ລະບຸເນື່ອງຈາກ
ຄວາມສາມາດໃນການກໍານົດເວລາຂອງລະບົບມັກຈະບໍ່ແນ່ນອນແລະມີການປ່ຽນແປງ. ເວລາຄວນຈະຍາວ
ພຽງ​ພໍ​ສໍາ​ລັບ​ຜູ້​ໃຊ້​ທີ່​ຈະ​ສັງ​ເກດ​ເຫັນ​, ແຕ່​ບໍ່​ດົນ​ພຽງ​ພໍ​ສໍາ​ລັບ​ຜູ້​ໃຊ້​ທີ່​ຈະ​ເກີດ​ຄວາມ​ລໍາ​ຄານ​. ບາງ
ການ​ປະ​ຕິ​ບັດ​ຂອງ​ vi ໄດ້​ເພີ່ມ a ເວລາແຂ່ງຂັນ ທາງເລືອກທີ່ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດກໍານົດຕົວເລກ
0,1 ວິນາທີໄລຍະຫ່າງຕົວກະພິບຢຸດຊົ່ວຄາວໃນລັກສະນະທີ່ກົງກັນ.

ຮູບແບບການສະແດງ
ໄດ້ ຮູບແບບການສະແດງ ທາງ ເລືອກ ໄດ້ ຖືກ ນໍາ ໃຊ້ ໃນ ການ ປະ ຕິ ບັດ ປະ ຫວັດ ສາດ ບາງ ex ແລະ vi to
ສະ​ແດງ​ຮູບ​ແບບ​ການ​ແກ້​ໄຂ​ປະ​ຈຸ​ບັນ​ໃນ​ເວ​ລາ​ທີ່​ຢູ່​ໃນ​ຮູບ​ແບບ​ເປີດ​ຫຼື​ຮູບ​ພາບ​. ຮູບແບບການແກ້ໄຂມີ
ໂດຍທົ່ວໄປແລ້ວລວມເອົາ ``ຄຳສັ່ງ'' ແລະ ``ການປ້ອນຂໍ້ມູນ'', ແລະບາງຄັ້ງມີໂໝດອື່ນໆເຊັ່ນ
``ປ່ຽນແທນ'' ແລະ ''ປ່ຽນ''. ສະຕຣິງຖືກສະແດງໂດຍປົກກະຕິຢູ່ໃນເສັ້ນລຸ່ມສຸດຂອງ
ໜ້າຈໍຢູ່ມຸມຂວາມື. ນອກຈາກນັ້ນ, ກ່ອນຫນ້ານີ້ '*' ລັກສະນະມັກຈະຫມາຍເຖິງ
ເນື້ອໃນຂອງການແກ້ໄຂ buffer ໄດ້ຖືກດັດແກ້ຫຼືບໍ່. ຈໍສະແດງຜົນສຸດທ້າຍມີ
ບາງຄັ້ງກໍ່ເປັນສ່ວນຫນຶ່ງຂອງ ຮູບແບບການສະແດງ ທາງເລືອກ, ແລະບາງຄັ້ງອີງໃສ່ທາງເລືອກອື່ນ. ນີ້
ທາງເລືອກແມ່ນບໍ່ມີຢູ່ໃນການປະຕິບັດປະຫວັດສາດ 4 BSD ຂອງ vi, ແຕ່ຖືກເບິ່ງເປັນ
ໂດຍ​ທົ່ວ​ໄປ​ເປັນ​ປະ​ໂຫຍດ​, ໂດຍ​ສະ​ເພາະ​ແມ່ນ​ກັບ​ຜູ້​ໃຊ້​ຈົວ​, ແລະ​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ໂດຍ POSIX.1-2008​.

ໄດ້ smd ສັ້ນສໍາລັບການ ຮູບແບບການສະແດງ ທາງເລືອກແມ່ນບໍ່ມີຢູ່ໃນປະຫວັດສາດທັງຫມົດ
ການ​ປະ​ຕິ​ບັດ​ຂອງ​ບັນ​ນາ​ທິ​ການ​. POSIX.1-2008 ຕ້ອງການມັນ, ເພື່ອຄວາມສອດຄ່ອງ.

ບໍ່ແມ່ນການຈັດຕັ້ງປະຕິບັດປະຫວັດສາດທັງໝົດຂອງຕົວແກ້ໄຂໄດ້ສະແດງແຖບໂໝດສຳລັບໂໝດຄຳສັ່ງ,
ການແຍກຮູບແບບຄໍາສັ່ງຈາກຮູບແບບການປ້ອນຂໍ້ຄວາມໂດຍການບໍ່ມີສະຕຣິງຮູບແບບ.
POSIX.1-2008 ອະນຸຍາດໃຫ້ພຶດຕິກໍານີ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ, ແຕ່
ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ສະແດງສະຕຣິງສໍາລັບທັງສອງໂຫມດ.

ຊ້າ
ທາງປະຫວັດສາດ, ຊ້າ ທາງ​ເລືອກ​ໄດ້​ຖືກ​ຕັ້ງ​ອັດ​ຕະ​ໂນ​ມັດ​ຖ້າ​ຫາກ​ວ່າ​ອັດ​ຕາ baud terminal ຫນ້ອຍ​
ຫຼາຍກວ່າ 1200 baud, ຫຼືຖ້າອັດຕາ baud ແມ່ນ 1200 baud ແລະ ແຕ້ມຄືນ ທາງເລືອກບໍ່ໄດ້ຕັ້ງ. ໄດ້
ຊ້າ ທາງ​ເລືອກ​ມີ​ສອງ​ຜົນ​ກະ​ທົບ​. ກ່ອນອື່ນ ໝົດ, ເມື່ອໃສ່ຕົວອັກສອນຢູ່ເຄິ່ງກາງຂອງເສັ້ນ,
ຕົວອັກສອນຫຼັງຈາກຕົວກະພິບຈະບໍ່ຖືກຍູ້ໄປຂ້າງຫນ້າ, ແຕ່ເບິ່ງຄືວ່າຈະຖືກຂຽນທັບ.
ອັນທີສອງ, ເມື່ອສ້າງແຖວໃຫມ່ຂອງຂໍ້ຄວາມ, ສາຍຫຼັງຈາກເສັ້ນປະຈຸບັນຈະບໍ່ເປັນ
ເລື່ອນລົງ, ແຕ່ປະກົດວ່າຖືກຂຽນທັບ. ໃນທັງສອງກໍລະນີ, ສິ້ນສຸດຮູບແບບການປ້ອນຂໍ້ຄວາມ
ຈະເຮັດໃຫ້ໜ້າຈໍຖືກໂຫຼດຄືນໃໝ່ເພື່ອໃຫ້ກົງກັບເນື້ອໃນຕົວຈິງຂອງບັຟເຟີການແກ້ໄຂ.
ສຸດທ້າຍ, terminals ທີ່ສະຫລາດພຽງພໍເຮັດໃຫ້ບັນນາທິການບໍ່ສົນໃຈ
ຊ້າ ທາງເລືອກ. POSIX.1-2008 ອະ​ນຸ​ຍາດ​ໃຫ້​ພຶດ​ຕິ​ກໍາ​ປະ​ຫວັດ​ສາດ​ຫຼາຍ​ທີ່​ສຸດ​, ການ​ຂະ​ຫຍາຍ​ປະ​ຫວັດ​ສາດ​
ການ​ປະ​ຕິ​ບັດ​ທີ່​ຕ້ອງ​ການ​ ຊ້າ ພຶດຕິກໍາຖ້າຫາກວ່າທາງເລືອກການແກ້ໄຂແມ່ນກໍານົດໂດຍຜູ້ໃຊ້.

tags
ເສັ້ນທາງເລີ່ມຕົ້ນຂອງໄຟລ໌ tags ແມ່ນຖືກປະໄວ້ໂດຍບໍ່ໄດ້ລະບຸເນື່ອງຈາກການຈັດຕັ້ງປະຕິບັດອາດມີຂອງຕົນເອງ
tags ການປະຕິບັດທີ່ບໍ່ສອດຄ່ອງກັບປະຫວັດສາດ. ຄ່າເລີ່ມຕົ້ນ tags
ຄ່າທາງເລືອກຄວນຈະເປັນຢ່າງຫນ້ອຍປະກອບມີໄຟລ໌ ./tags.

ໄລຍະ
ການປະຕິບັດປະຫວັດສາດຂອງ ex ແລະ vi ບໍ່ສົນໃຈການປ່ຽນແປງຂອງ ໄລຍະ ແກ້ໄຂທາງເລືອກຫຼັງຈາກ
ຂໍ້ມູນປາຍທາງເບື້ອງຕົ້ນຖືກໂຫລດ. ອັນນີ້ແມ່ນອະນຸຍາດໂດຍ POSIX.1-2008; ແນວໃດກໍ່ຕາມ,
ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ຜູ້ໃຊ້ສາມາດດັດແປງປະເພດ terminal ຂອງເຂົາເຈົ້າຢູ່ໃນທຸກ
ເວລາ.

terse
ທາງປະຫວັດສາດ, terse ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ເປັນ​ທາງ​ເລືອກ​ທີ່​ສະ​ຫນອງ​ໃຫ້​ເປັນ​ຂໍ້​ຜິດ​ພາດ​ສັ້ນ​, ອະ​ທິ​ບາຍ​ຫນ້ອຍ​
ຂໍ້ຄວາມ, ສໍາລັບບາງຂໍ້ຄວາມຜິດພາດ. ອັນນີ້ແມ່ນອະນຸຍາດ, ແຕ່ບໍ່ຈຳເປັນ, ໂດຍ POSIX.1-2008.
ໃນປະຫວັດສາດ, ຄວາມຜິດພາດຂອງຮູບແບບສາຍຕາທົ່ວໄປທີ່ສຸດ (ຕົວຢ່າງ, ພະຍາຍາມຍ້າຍຕົວກະພິບທີ່ຜ່ານມາ
ໃນຕອນທ້າຍຂອງແຖວ) ບໍ່ໄດ້ສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດ, ແຕ່ພຽງແຕ່ເຕືອນຢູ່ປາຍຍອດ.
ການປະຕິບັດທີ່ຕ້ອງການທີ່ຈະສະຫນອງຂໍ້ຄວາມສໍາລັບຜູ້ໃຊ້ຈົວແມ່ນຮຽກຮ້ອງໃຫ້ເຮັດແນວນັ້ນໂດຍອີງໃສ່
ໄດ້ ດັດແກ້ ທາງເລືອກ ຄຳເວົ້າ, ແລະບໍ່ແມ່ນ terse.

ປ່ອງຢ້ຽມ
ໃນການປະຕິບັດປະຫວັດສາດ, ຄ່າເລີ່ມຕົ້ນຂອງ ປ່ອງຢ້ຽມ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ແມ່ນ​ອີງ​ໃສ່​ການ​
ອັດ​ຕາ​ການ baud ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

1. ຖ້າອັດຕາ baud ຫນ້ອຍກວ່າ 1200, ໄດ້ ດັດແກ້ ທາງເລືອກ w300 ກໍາ​ນົດ​ຄ່າ​ປ່ອງ​ຢ້ຽມ​; ສໍາລັບ
ຕົວຢ່າງ, ເສັ້ນ:

ທີ່ກໍານົດໄວ້ w300=12

ຈະຕັ້ງຕົວເລືອກປ່ອງຢ້ຽມເປັນ 12 ຖ້າອັດຕາ baud ຫນ້ອຍກວ່າ 1200.

2. ຖ້າອັດຕາ baud ເທົ່າກັບ 1200, ໄດ້ ດັດແກ້ ທາງເລືອກ w1200 ກໍາ​ນົດ​ຄ່າ​ປ່ອງ​ຢ້ຽມ​.

3. ຖ້າອັດຕາ baud ແມ່ນຫຼາຍກ່ວາ 1200, ໄດ້ ດັດແກ້ ທາງເລືອກ w9600 ກໍາ​ນົດ​ຄ່າ​ປ່ອງ​ຢ້ຽມ​.

ໄດ້ w300, w1200, ແລະ w9600 ຕົວເລືອກບໍ່ປາກົດຢູ່ໃນ POSIX.1-2008 ເນື່ອງຈາກພວກມັນ
ການຂຶ້ນກັບອັດຕາ baud ສະເພາະ.

ໃນການປະຕິບັດປະຫວັດສາດ, ຂະຫນາດຂອງປ່ອງຢ້ຽມທີ່ສະແດງໂດຍຄໍາສັ່ງຕ່າງໆແມ່ນ
ກ່ຽວຂ້ອງກັບ, ແຕ່ບໍ່ຈໍາເປັນຄືກັນກັບ, ໄດ້ ປ່ອງຢ້ຽມ ແກ້ໄຂທາງເລືອກ. ສໍາລັບຕົວຢ່າງ, ຂະຫນາດ
ຂອງປ່ອງຢ້ຽມໄດ້ຖືກກໍານົດໂດຍ ex ຄໍາສັ່ງ ສາຍຕາ 10, ແຕ່ມັນບໍ່ໄດ້ມີການປ່ຽນແປງມູນຄ່າຂອງ
ປ່ອງຢ້ຽມ ແກ້ໄຂທາງເລືອກ. ຢ່າງໃດກໍຕາມ, ການປ່ຽນແປງມູນຄ່າຂອງ ປ່ອງຢ້ຽມ ທາງ​ເລືອກ​ການ​ແກ້​ໄຂ​ໄດ້​ມີ​ການ​ປ່ຽນ​ແປງ​
ຈໍານວນເສັ້ນທີ່ສະແດງໃນເວລາທີ່ຫນ້າຈໍໄດ້ຖືກທາສີຄືນ. POSIX.1-2008 ບໍ່
ອະນຸຍາດໃຫ້ພຶດຕິກໍານີ້ໃນຜົນປະໂຫຍດຂອງຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງສະເພາະ, ແລະ
ຮຽກຮ້ອງໃຫ້ຄໍາສັ່ງທັງຫມົດທີ່ມີການປ່ຽນແປງຈໍານວນຂອງສາຍທີ່ສະແດງແມ່ນເຮັດໂດຍ
ການ​ຕັ້ງ​ຄ່າ​ຂອງ​ ປ່ອງຢ້ຽມ ແກ້ໄຂທາງເລືອກ.

wrapmargin, wm
ທາງປະຫວັດສາດ, wrapmargin ທາງ​ເລືອກ​ບໍ່​ໄດ້​ມີ​ຜົນ​ກະ​ທົບ​ແຜນ​ທີ່​ການ​ໃສ່​ຕົວ​ອັກ​ສອນ​ທີ່​ມີ​
ທີ່ກ່ຽວຂ້ອງ ນັບs; ຍົກ​ຕົວ​ຢ່າງ :ແຜນທີ່ K 5aABC Def. ແຕ່ຫນ້າເສຍດາຍ, ມີການນໍາໃຊ້ຢ່າງກວ້າງຂວາງ
ແຜນທີ່ທີ່ຂຶ້ນກັບພຶດຕິກໍານີ້. ສໍາລັບຄວາມສອດຄ່ອງແລະຄວາມງ່າຍດາຍຂອງຂໍ້ກໍານົດ,
POSIX.1-2008 ບໍ່ອະນຸຍາດໃຫ້ມີພຶດຕິກໍານີ້.

ໃນປະຫວັດສາດ, wrapmargin ຖືກຄິດໄລ່ໂດຍໃຊ້ຄວາມກວ້າງຂອງການສະແດງຖັນຂອງຕົວອັກສອນທັງໝົດ
ໃນຫນ້າຈໍ. ສໍາລັບຕົວຢ່າງ, ການປະຕິບັດການນໍາໃຊ້ "^ຂ້ອຍ" ເພື່ອເປັນຕົວແທນ ຕົວລະຄອນ
ໃນ​ເວ​ລາ​ທີ່ ບັນຊີລາຍຊື່ ທາງເລືອກການແກ້ໄຂໄດ້ຖືກຕັ້ງ, ບ່ອນທີ່ '^' ແລະ 'ຂ້ອຍ' ແຕ່​ລະ​ຄົນ​ໄດ້​ຂຶ້ນ​ຖັນ​ດຽວ​ກ່ຽວ​ກັບ​ການ​
ຫນ້າ​ຈໍ​, ຈະ​ຄິດ​ໄລ່​ໄດ້​ wrapmargin ອີງຕາມມູນຄ່າຂອງ 2 ສໍາລັບແຕ່ລະຄົນ . ໄດ້ ຈໍານວນ
ການແກ້ໄຂທາງເລືອກທີ່ຄ້າຍຄືກັນໄດ້ປ່ຽນຄວາມຍາວທີ່ມີປະສິດທິພາບຂອງເສັ້ນເຊັ່ນກັນ. POSIX.1-2008
ຮຽກຮ້ອງໃຫ້ມີການສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.

ຮຸ່ນກ່ອນຫນ້າຂອງມາດຕະຖານນີ້ອະນຸຍາດໃຫ້ປະຕິບັດກັບ bytes ອື່ນທີ່ບໍ່ແມ່ນແປດ
bits, ແຕ່ນີ້ໄດ້ຖືກດັດແກ້ໃນສະບັບນີ້.

ອະນາຄົດ DIRECTIONS


ບໍ່ມີ.

ໃຊ້ exposix ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

  • 1
    ເຟດ
    ເຟດ
    Phaser ເປັນການເປີດໄວ, ຟຣີ, ແລະມ່ວນຊື່ນ
    ແຫຼ່ງ HTML5 ກອບເກມທີ່ສະເຫນີ
    WebGL ແລະ Canvas rendering ທົ່ວ
    desktop ແລະຕົວທ່ອງເວັບມືຖື. ເກມ
    ສາມາດຮ່ວມ...
    ດາວໂຫລດ Phaser
  • 2
    ເຄື່ອງຈັກ VASSAL
    ເຄື່ອງຈັກ VASSAL
    VASSAL ແມ່ນເຄື່ອງຈັກເກມສໍາລັບການສ້າງ
    ສະບັບເອເລັກໂຕຣນິກຂອງກະດານພື້ນເມືອງ
    ແລະເກມບັດ. ມັນສະຫນອງການສະຫນັບສະຫນູນສໍາລັບ
    ການສະແດງຊິ້ນສ່ວນເກມແລະການໂຕ້ຕອບ,
    ແລະ ...
    ດາວໂຫລດ VASSAL Engine
  • 3
    OpenPDF - ສ້ອມຂອງ iText
    OpenPDF - ສ້ອມຂອງ iText
    OpenPDF ແມ່ນຫ້ອງສະຫມຸດ Java ສໍາລັບການສ້າງ
    ແລະແກ້ໄຂໄຟລ໌ PDF ດ້ວຍ LGPL ແລະ
    ໃບອະນຸຍາດແຫຼ່ງເປີດ MPL. OpenPDF ແມ່ນ​
    LGPL/MPL open source ຜູ້ສືບທອດ iText,
    a
    ດາວໂຫລດ OpenPDF - Fork ຂອງ iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - ລະບົບສໍາລັບການອັດຕະໂນມັດ
    Geoscientific Analyzes - ແມ່ນພູມສາດ
    ຊອບແວລະບົບຂໍ້ມູນຂ່າວສານ (GIS) ກັບ
    ຄວາມສາມາດອັນຍິ່ງໃຫຍ່ສໍາລັບ geodata
    ການປຸງແຕ່ງ ແລະ ana...
    ດາວໂຫລດ SAGA GIS
  • 5
    ກ່ອງເຄື່ອງມືສໍາລັບ Java/JTOPen
    ກ່ອງເຄື່ອງມືສໍາລັບ Java/JTOPen
    IBM Toolbox ສໍາລັບ Java / JTOPen ແມ່ນ a
    ຫ້ອງສະຫມຸດຂອງຫ້ອງຮຽນ Java ສະຫນັບສະຫນູນ
    ໂປຣແກຣມລູກຄ້າ/ເຊີບເວີ ແລະອິນເຕີເນັດ
    ແບບຈໍາລອງກັບລະບົບທີ່ແລ່ນ OS/400,
    i5/OS, o...
    ດາວໂຫລດ Toolbox ສໍາລັບ Java/JTOPen
  • 6
    D3.js
    D3.js
    D3.js (ຫຼື D3 ສໍາລັບເອກະສານທີ່ຂັບເຄື່ອນດ້ວຍຂໍ້ມູນ)
    ເປັນຫ້ອງສະຫມຸດ JavaScript ທີ່ອະນຸຍາດໃຫ້ທ່ານ
    ເພື່ອຜະລິດຂໍ້ມູນແບບເຄື່ອນໄຫວ, ການໂຕ້ຕອບ
    ການສະແດງພາບໃນຕົວທ່ອງເວັບ. ດ້ວຍ D3
    ເຈົ້າ ...
    ດາວໂຫລດ D3.js
  • ເພີ່ມເຕີມ »

Linux ຄຳ ສັ່ງ

  • 1
    Abidiff
    Abidiff
    abidiff - ປຽບທຽບ ABIs ຂອງໄຟລ໌ ELF
    abidiff ປຽບທຽບ Application Binary
    ການໂຕ້ຕອບ (ABI) ຂອງສອງຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ
    ໃນຮູບແບບ ELF. ມັນ​ອອກ​ຄວາມ​ຫມາຍ​
    ລາຍງານ...
    ແລ່ນ abidiff
  • 2
    abidw
    abidw
    abidw - serialize ABI ຂອງ ELF ໄດ້
    file abidw ອ່ານຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນໃນ ELF
    ຮູບແບບແລະປ່ອຍຕົວສະແດງ XML
    ABI ຂອງ​ຕົນ​ກັບ​ຜົນ​ຜະ​ລິດ​ມາດ​ຕະ​ຖານ​. ໄດ້
    ປ່ອຍອອກມາ...
    ແລ່ນ abidw
  • 3
    copac2xml
    copac2xml
    bibutils - ການ​ປ່ຽນ​ແປງ​ບັນ​ນາ​ທິ​ການ​
    ເຄື່ອງໃຊ້ສອຍ...
    ແລ່ນ copac2xml
  • 4
    ຕຳຫຼວດ
    ຕຳຫຼວດ
    copt - SYSNOPIS optimizer:
    copt file.. DESCRIPTION: copt is a
    ເຄື່ອງມືເພີ່ມປະສິດທິພາບ pephole ທົ່ວໄປ. ມັນ
    ອ່ານລະຫັດຈາກການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງມັນ ແລະ
    ຂຽນ...
    ແລ່ນ copt
  • 5
    collect_stx_titles
    collect_stx_titles
    collect_stx_titles - ລວບລວມຫົວຂໍ້
    ປະກາດຈາກເອກະສານ Stx ...
    ແລ່ນ collect_stx_titles
  • 6
    gatling-bench
    gatling-bench
    bench - http benchmark ...
    ແລ່ນ gatling-bench
  • ເພີ່ມເຕີມ »

Ad