Uma Tradução em portuguêsestádisponível
OpenVI - Portable OpenBSD vi / ex
OpenVI เป็นการดำเนินการที่ได้รับการปรับปรุงและพกพาของโปรแกรมแก้ไขข้อความ Berkeley vi / ex ซึ่งพัฒนาโดย Bill Joy
OpenVI เป็นส้อมของ Editor vi / ex ที่มาพร้อมกับ OpenBSD ซึ่งได้มาจากเวอร์ชัน 1.79 ของ Editor nvi ที่แจกจ่ายครั้งแรกเป็นส่วนหนึ่งของ การกระจายซอฟต์แวร์ที่สี่ของ Berkeley ( 4BSD )
บรรณาธิการ nvi ได้รับการพัฒนาโดย Keith Bostic จาก กลุ่มวิจัยระบบคอมพิวเตอร์ ( CSRG ) ที่ University of California, Berkeley , Sven Verdoolaege และผู้สนับสนุนอื่น ๆ Nvi นั้นมาจาก Elvis Editor ของ Steve Kirkendall
ทำไมคุณถึงต้องการใช้ OpenVI แทนที่จะเป็น อีกคนหนึ่ง ?
strlcpy , snprintf , mkstemp , pledge )bserase , expandtab , imctrl , visibletab ฯลฯแล้วทำไมคุณ ไม่ ต้องการใช้ OpenVI ?
บางจุดเหล่านี้อาจเป็นคุณสมบัติที่ต้องการขึ้นอยู่กับมุมมองของคุณ
ex -mode ที่ใช้บรรทัดsh ) และยูทิลิตี้, awk ( mawk , nawk ) ฯลฯxlc , suncc , clang , gcc ฯลฯ )ncurses , netbsd curses v8+, PDCurses v2.8+, PDCursesMod ฯลฯ ) csh , tcsh ฯลฯ )nroff , groff , ฯลฯ OpenVI สามารถพกพาได้อย่างง่ายดายไปยังแพลตฟอร์มส่วนใหญ่ที่มีระบบปฏิบัติการแบบ UNIX ซึ่งส่วนใหญ่สอดคล้องกับอินเทอร์เฟซการเขียนโปรแกรมที่อธิบายโดย IEEE STD 1003.1-2008 และสภาพแวดล้อมของผู้ใช้ที่อธิบายโดย IEEE STD 1003.2-2008 หรือที่รู้จักกันในชื่อ POSIX.1-2008 และ POSIX.2008 ตามลำดับ
ระบบปฏิบัติการต่อไปนี้ได้รับการสนับสนุนอย่างเต็มที่และทดสอบอย่างสม่ำเสมอโดยใช้ IX86/AMD64, ARM/ARCH64, M68K, MIPS, POWER และโปรเซสเซอร์ RISC-V:
คอมไพเลอร์ต่อไปนี้ได้รับการสนับสนุนอย่างเต็มที่และทดสอบเป็นประจำ:
ระบบปฏิบัติการใหม่และรุ่นใหม่และการเปิดตัวคอมไพเลอร์ควรใช้งานได้ เวอร์ชันที่ระบุไว้ข้างต้นคือการทดสอบและการทำงานที่รู้จักกันเป็นประจำ
ยินดีต้อนรับผู้ใช้เพื่อปรับปรุงการสนับสนุนแพลตฟอร์ม
gmake หรือ make ) จากไดเรกทอรีระดับบนสุดของการปล่อยแหล่งที่มาหรือการชำระเงิน GIT-j N Flag อาจถูกใช้เพื่อขนานการรวบรวมโดยที่ N เป็นจำนวนเต็มบวกที่แสดงถึงจำนวนงานขนานที่ร้องขอCC - คอมไพเลอร์ที่จะใช้CC=gcc )OPTLEVEL - ธงการเพิ่มประสิทธิภาพOPTLEVEL=-O2 )CFLAGS - ธงเพื่อส่งผ่านไปยังคอมไพเลอร์ CCFLAGS="-Wall -pipe" )LIBS - ไลบรารี (การแทนที่ค่าเริ่มต้น) เพื่อส่งผ่านไปยัง linkerLIBS="-lpdcurses -lflock" )LDFLAGS - ธงเพื่อส่งผ่านไปยัง linkerLDFLAGS="-L/lib/path -static" ))V - ตั้งค่าเพื่อเปิดใช้งานเอาต์พุตการรวบรวม verboseV=1 )DEBUG - ตั้งค่าเพื่อรวบรวมการดีบักบิลด์DEBUG=1 )LGC - ตั้งค่าเพื่อเปิดใช้งานคอลเลกชันขยะเวลาลิงค์LGC=1 )LTO - ตั้งค่าเพื่อเปิดใช้งานการเพิ่มประสิทธิภาพการเชื่อมโยงเวลาLTO=1 )EXTRA_LIBS - ห้องสมุดพิเศษสำหรับการเชื่อมโยงEXTRA_LIBS=-lmtmalloc )PREFIX - คำนำหน้าไดเรกทอรีสำหรับใช้กับ install และ uninstall ตั้งเป้าหมายPREFIX=/opt/OpenVi )all , strip , superstrip , clean , distclean , install , ติดตั้ง, install-strip , uninstall , upx , ฯลฯ ) ตรวจสอบ GNUmakefile เพื่อดูเป้าหมายและตัวเลือกที่มีอยู่ทั้งหมดตัวอย่างเช่นในการรวบรวมการสร้างที่ปรับขนาดให้เหมาะสมที่สุดเปิดใช้งานการเพิ่มประสิทธิภาพเวลาลิงค์และการรวบรวมขยะเวลาลิงค์โดยใช้ GCC : อย่างชัดเจน:
env CC=gcc OPTLEVEL=-Os LGC=1 LTO=1 gmake sstripหรือเพื่อรวบรวมการดีบักบิวจ์อย่างชัดเจนโดยใช้ เสียงดัง :
env CC=clang DEBUG=1 V=1 gmake สำหรับระบบที่มี GNU Make As make ( เช่น GNU/Linux ) การรวบรวมพื้นฐานควรประสบความสำเร็จหากไม่มีตัวเลือกใด ๆ หรือการกำหนดค่าเพิ่มเติมที่จำเป็น:
make ด้วยสิทธิ์ที่เหมาะสมในการจัดการไฟล์ภายใน PREFIX เลือก (โดยใช้ doas , sudo , su , ฯลฯ ) สามารถติดตั้งที่คอมไพล์ได้อาจติดตั้งได้
doas gmake install-stripหรือ
sudo env PREFIX=/usr/local make installส่วนต่อไปนี้จัดทำเอกสาร เฉพาะ แพลตฟอร์มความแตกต่างเฉพาะและไม่ได้มีวัตถุประสงค์เพื่อเป็นข้อมูลอ้างอิงทั่วไปหรือครบถ้วนสมบูรณ์ สำหรับการติดตั้งแพ็คเกจซอฟต์แวร์ที่จำเป็นต้องมีหรือการกำหนดค่าระบบอื่น ๆ ให้ปรึกษาเอกสารของผู้ขาย
ก่อนที่จะสร้าง OpenVI บน AIX ให้ติดตั้งไลบรารีและส่วนหัวของ ncurses IBM จัดเตรียมแพ็คเกจที่จำเป็น ncurses และ ncurses-devel ในรูปแบบ RPM ซึ่งเป็นส่วนหนึ่งของ AIX Toolbox สำหรับ Linux และซอฟต์แวร์โอเพ่นซอร์ส ด้วยสิทธิ์ที่เหมาะสม ( เช่น root ) แพ็คเกจเหล่านี้สามารถติดตั้งได้ในระบบส่วนใหญ่โดยใช้ยูทิลิตี้ dnf หรือ yum เช่น:
dnf install ncurses ncurses-develหรือ
yum install ncurses ncurses-devel ระบบฐาน IBM AIX (และ PASE สำหรับ I ซึ่งเป็นสภาพแวดล้อมรันไทม์แบบรวมสำหรับแอปพลิเคชัน AIX ในระบบปฏิบัติการ IBM I ) ให้ libxcurses , XPG4 / XSI Extended Curses การใช้งานที่ได้จาก ระบบ AT&T V ซึ่งยัง ไม่ รองรับการใช้งานกับ OpenVI
การรวบรวมได้รับการสนับสนุนโดยใช้ IBM XL C / C ++ V16.1+ ( gxlc หรือ xlclang ), IBM เปิด XL C / C ++ V17.1+ ( ibm-clang ) หรือ GNU GCC (ปกติ gcc , gcc-8 , gcc-9 , gcc-10 , gcc-11 )
LTO=1 ) ต้อง เปิด XL C / C ++ V17.1+ แพ็คเกจ IBM ( AIX Toolbox ) และ Bull / Atos ( Bull Freeware ) GCC และรุ่น IBM XL C / C ++ เร็วกว่า V17.1 ไม่ได้ เปิดใช้งาน LTOLGC=1 ) ไม่ได้ รับการสนับสนุนใน IBM AIXMAIXBITS เป็น 32 ( เช่น export MAIXBITS=32 )CC จะต้องตั้งค่าเป็นเส้นทางเต็มของคอมไพเลอ PATH ( เช่น /opt/freeware/bin/gcc , /opt/IBM/xlC/16.1.0/bin/gxlc , /opt/IBM/openxlC/17.1.0/bin/ibm-clang การล็อคไฟล์ (ผ่าน flock() ตามที่จัดทำโดย AIX libbsd Library) นั้นไม่สามารถใช้งานได้ สิ่งนี้จะได้รับการตรวจสอบและแก้ไขในการเปิดตัวในอนาคต
หน้า OpenVI Man ได้รับการแต่งตั้งด้วย mandoc และต้องการการแปลงก่อนใช้กับซอฟต์แวร์ AIX man (ซึ่งได้มาจาก AT&T Unix System v .)
ในการติดตั้ง NETBSD การสร้าง OpenVI เริ่มต้นใช้ไลบรารี BSD curses ที่จัดทำโดยระบบฐาน NETBSD หากต้องการใช้ ncurses แทนให้ตั้งค่าของตัวแปร CFLAGS , LDFLAGS และ CURSESLIB อย่างเหมาะสม ( เช่น CFLAGS=-I/usr/pkg/include LDFLAGS=-L/usr/pkg/lib CURSESLIB=-lncurses )
LLVM LLD linker เป็นสิ่งจำเป็นสำหรับการเพิ่มประสิทธิภาพเวลาลิงค์ ( LTO=1 ) โดยใช้ เสียงดัง มีให้บริการเป็นแพ็คเกจที่ติดตั้งได้ ( เช่น pkgin install lld )
ก่อนที่จะสร้าง OpenVI ในการกระจาย Illumos ( เช่น OpenIndiana ) ให้ติดตั้งไลบรารีและส่วนหัวของ ncurses การกระจาย OpenIndiana ให้แพ็คเกจ ncurses ที่จำเป็นในรูปแบบ IPS ด้วยสิทธิ์ที่เหมาะสม ( เช่น root ) แพ็คเกจสามารถติดตั้งได้โดยใช้ยูทิลิตี้ OpenIndiana pkg เช่น:
pkg install ncurses ระบบฐาน OpenIndiana ให้ libcurses การใช้งาน XPG4 / XSI Extended Curses ที่ได้มาจาก AT&T System V ซึ่งยัง ไม่ ได้รับการสนับสนุนสำหรับใช้กับ OpenVI
คอลเลกชัน Garbage Link-Time ( LGC=1 ) ไม่ได้ รับการสนับสนุนใน OpenIndiana
ก่อนที่จะสร้าง OpenVI บน Oracle Solaris 11 ให้ติดตั้งไลบรารีและส่วนหัวของ ncurses Oracle จัดเตรียมแพ็คเกจ ncurses ที่จำเป็นสำหรับ Solaris 11 ในรูปแบบ IPS ด้วยสิทธิ์ที่เหมาะสม ( เช่น root ) แพ็คเกจสามารถติดตั้งได้โดยใช้ยูทิลิตี้ Solaris pkg เช่น:
pkg install ncurses ระบบฐาน Oracle Solaris ให้ libcurses การใช้งาน XPG4 / XSI Extended Curses ที่ได้มาจาก AT&T System V ซึ่งยัง ไม่ ได้รับการสนับสนุนสำหรับใช้กับ OpenVI
การรวบรวมได้รับการสนับสนุนโดยใช้ Oracle Developer Studio , GCC และ Clang :
suncc หรือตั้งค่าของตัวแปรสภาพแวดล้อม _OSLCC เป็น 1LTO=1 ) รองรับ เฉพาะ เมื่อใช้ GCC หรือ ClangLGC=1 ) ไม่ได้ รับการสนับสนุนใน Solarissuncc ) คอมไพเลอร์ 64 บิตเป็นค่าเริ่มต้นของระบบที่ทำงานในโหมด 64 บิต สำหรับการสร้าง 32 บิตให้ตั้งค่าตัวแปรสภาพแวดล้อมของ SUNBITS เป็น 32 ( เช่น export SUNBITS=32 ) การล็อคไฟล์ไม่สามารถใช้งานได้เนื่องจากไม่มี flock() บน Solaris สิ่งนี้จะได้รับการแก้ไขโดยการสนับสนุน ระบบ v -style fcntl() ล็อคในการเปิดตัวในอนาคต
apt-cyg ) ซึ่งอาจส่งผลให้ไฟล์ที่หายไปsetup.exe เป็นเวอร์ชันล่าสุดที่มีอยู่setup.exe ใหม่make , gcc , ncurses , ncurses-devel ) โดยใช้แอปพลิเคชัน cygwin setup.execygcheck ( เช่น cygcheck -cv | grep -v "OK$" ) เพื่อตรวจสอบความสมบูรณ์ของแพ็คเกจที่ติดตั้งทั้งหมดในปัจจุบัน OpenVI พร้อมใช้งานสำหรับผู้ใช้ Linux และ MacOS ผ่าน Homebrew Package Manager
brew install openviอาจมีแพ็คเกจการกระจายอื่น ๆ (ไม่เป็นทางการ)
หมายเลขเวอร์ชัน OpenVI ขึ้นอยู่กับรุ่นของการเปิดตัว OpenBSD ที่สอดคล้องกันตามด้วยหมายเลขรีลีส OpenVI คำสั่ง version สามารถใช้เพื่อแสดงข้อมูลนี้ในรูปแบบที่แสดงด้านล่าง
Version 7.0.1 (OpenVi) 10/25/2021.
ข้อความนี้ระบุว่าตัวแก้ไขที่ใช้คือ OpenVI , Release 1 ที่ได้มาจาก OpenBSD เวอร์ชัน 7.0 และได้รับการซิงโครไนซ์อย่างเต็มที่กับ vi , VI, ex , db และ regex รุ่น OpenBSD อย่างสมบูรณ์ ณ วันที่ 10/25/2021 ( 25 ตุลาคม 2021 )
การเปลี่ยนแปลง ที่ไม่ ได้มาจาก OpenBSD Commits ไม่ล่วงหน้าวันนี้ ใหม่ OpenBSD เปิดตัวไม่ได้รีเซ็ตหมายเลขรีลีส OpenVI
OpenVI
ChangeLog OpenBSD vi
vi / exdbregexLICENSE.md สำหรับข้อกำหนดใบอนุญาตและการแจกจ่ายเต็มรูปแบบ vi ดั้งเดิม (โดย Bill Joy & Mark Horton ):Xvi ของ Martin Guy ซึ่งเป็นส้อมที่เพิ่มขึ้นของ STEVIE ของ Tim ThompsonSivle ซึ่งเป็นส้อมที่ทำความสะอาดของ Elvis ของ Steve KirkendallVim57 ของ Andy Valencia ซึ่งเป็นส้อมที่เรียบง่ายของเวอร์ชัน 5.7 ของ Vim ของ Bram Moolenaar vi เป็นส้อมที่ได้รับการบำรุงรักษาในปัจจุบันของสาขา ( 1BSD / 2BSD ) ของบรรณาธิการ vi / ex ซึ่งได้มาจากรุ่นปรับปรุง vi แบบดั้งเดิม ของ Gunnar RitterNvi2 เป็น สาขาคุณสมบัติ ที่ได้รับการดูแลในปัจจุบันของรุ่นใหม่ ( 4BSD ) ของตัวแก้ไข nvi / nex โดยมุ่งเน้นไปที่การขยายและคุณสมบัติใหม่Nvi1 ( เวอร์ชัน 1.8+ ) เป็น สาขาดั้งเดิม ที่ได้รับการดูแลในปัจจุบันของรุ่นใหม่ ( 4BSD ) ของ Editor nvi / nex ซึ่งพัฒนาโดย Sven Verdoolaege