Uma Tradução Em Português Está Disponivel.
OpenVI - محمول OpenBSD vi / ex
Openvi هو تنفيذ محسن ومحمول لمحرر نص Berkeley vi / ex ، الذي تم تطويره في الأصل بواسطة Bill Joy .
Openvi هو شوكة من المحرر vi / ex المدرج في OpenBsD ، والذي مشتق من الإصدار 1.79 من محرر nvi الذي تم توزيعه في الأصل كجزء من توزيع برامج بيركلي الرابع ( 4BSD ).
تم تطوير محرر nvi من قبل Keith Bostic من مجموعة أبحاث أنظمة الكمبيوتر ( CSRG ) في جامعة كاليفورنيا ، وبيركلي ، وسفين فيردويج ، وغيرهم من المساهمين. تم اشتقاق Nvi نفسها من محرر Elvis من Steve Kirkendall .
لماذا تريد استخدام OpenVi بدلاً من Othervi ؟
strlcpy ، snprintf ، mkstemp ، pledge )bserase ، expandtab ، imctrl ، visibletab ، إلخ.فلماذا لا ترغب في استخدام OpenVi ، إذن؟
قد تكون بعض هذه النقاط ميزات مرغوبة ، اعتمادًا على وجهة نظرك.
exsh ) والمرافق ، 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.2-2008 ، على التوالي.
يتم دعم أنظمة التشغيل التالية بالكامل واختبارها بانتظام باستخدام IX86/AMD64 و ARM/AARCH64 و M68K و MIPS و Power و RISC-V:
المترجمين التالية مدعومة بالكامل واختبارها بانتظام:
يجب أن تعمل نظام التشغيل الجديد أو الأقدم والمترجمات ، في حدود المعقول. الإصدارات المذكورة أعلاه هي تلك التي تم اختبارها بانتظام والمعروفة.
يتم الترحيب بمساهمات المستخدم في تعزيز دعم النظام الأساسي.
gmake أو make ) من الدليل العليا لإصدار المصدر أو الخروج من GIT.-j N لتوازي التجميع ، حيث N هو عدد صحيح موجب يمثل عدد الوظائف المتوازية المطلوبة.CC - C للاستخدامCC=gcc )OPTLEVEL - أعلام التحسينOPTLEVEL=-O2 )CFLAGS - أعلام لتمريرها إلى برنامج التحويل البرمجي C.CFLAGS="-Wall -pipe" )LIBS - المكتبات (الافتراضات الافتراضية) لتمريرها إلى الرابطLIBS="-lpdcurses -lflock" )LDFLAGS - أعلام لتمريرها إلى الرابطLDFLAGS="-L/lib/path -static" )V - تعيين لتمكين إخراج تجميع المطالبةV=1 )DEBUG - تم تعيينه لتجميع بناء تصحيح الأخطاءDEBUG=1 )LGC - تعيين لتمكين مجموعة القمامة وقت الرابطLGC=1 )LTO - تعيين لتمكين تحسين وقت الرابطLTO=1 )EXTRA_LIBS - مكتبات إضافية للربطEXTRA_LIBS=-lmtmalloc )PREFIX - بادئة الدليل للاستخدام مع أهداف install وإلغاء uninstallPREFIX=/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أو ، لتجميع بنية تصحيح الأخطاء ، بشكل صريح باستخدام Clang :
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 للبرامج المصدر المفتوحة . مع الأذونات المناسبة ( EG root ) ، تكون هذه الحزم قابلة للتثبيت على معظم الأنظمة باستخدام أدوات dnf أو yum ، على سبيل المثال:
dnf install ncurses ncurses-develأو
yum install ncurses ncurses-devel يوفر نظام IBM AIX Base (و PASE لـ I ، وهي بيئة وقت تشغيل متكاملة لتطبيقات AIX على نظام التشغيل IBM I ) libxcurses ، وهو تطبيق لعنات XPG4 / XSI الممتدة المستمدة من AT&T System V ، والذي لم يتم دعمه بعد للاستخدام مع OpenVI .
يتم دعم التجميع باستخدام IBM XL C / C ++ V16.1+ ( gxlc أو xlclang ) ، IBM Open 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 ) ، وإصدارات IBM XL C / C ++ في وقت سابق من V17.1.LGC=1 ) على IBM AIX .MAIXBITS إلى 32 ( مثل export MAIXBITS=32 ).PATH ضبط قيمة متغير بيئة CC على المسار الكامل للمترجم ( على سبيل المثال /opt/freeware/bin/gcc ، /opt/IBM/xlC/16.1.0/bin/gxlc ، /opt/IBM/openxlC/17.1.0/bin/ibm-clang ، etc.) قفل الملفات (عبر flock() كما هو منصوص عليه في مكتبة AIX libbsd ) غير وظيفي ؛ سيتم التحقيق في هذا وتصحيحه في إصدار مستقبلي.
يتم تأليف صفحات OpenVi Man مع mandoc وتتطلب التحويل قبل الاستخدام مع برنامج AIX man (الذي مشتق من AT&T Unix System v .)
على تثبيتات NetBSD ، تستخدم إنشاءات OpenVI الافتراضية مكتبة BSD curses التي يوفرها نظام NetBSD Base. لاستخدام ncurses بدلاً من ذلك ، قم بتعيين قيم CFLAGS و LDFLAGS وبيئة CURSESLIB بشكل مناسب ( أي CFLAGS=-I/usr/pkg/include LDFLAGS=-L/usr/pkg/lib CURSESLIB=-lncurses ).
مطلوب رابط LLVM LLD لتحسين وقت الارتباط ( LTO=1 ) باستخدام Clang . وهي متوفرة كحزمة قابلة للتثبيت ( أي pkgin install lld ).
قبل بناء Openvi على توزيع Illumos ( IE OpenIndiana ) ، قم بتثبيت مكتبات ncurses ورؤوسها. يوفر توزيع OpenIndiana حزمة ncurses اللازمة بتنسيق IPS . مع الأذونات المناسبة ( على سبيل المثال root ) ، يمكن تثبيت الحزمة باستخدام الأداة المساعدة OpenIndiana pkg ، على سبيل المثال:
pkg install ncurses يوفر نظام قاعدة OpenIndiana libcurses ، وهو تطبيق لعنات XPG4 / XSI الممتدة المستمدة من AT&T System V ، والذي لم يتم دعمه بعد للاستخدام مع OpenVI .
لا يتم دعم مجموعة Garbage 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 الممتدة المستمدة من AT&T System V ، والذي لم يتم دعمه بعد للاستخدام مع OpenVI .
يتم دعم التجميع باستخدام Oracle Developer Studio و GCC و Clang :
suncc أو قم بتعيين قيمة متغير بيئة _OSLCC إلى 1 .LTO=1 ) حاليًا فقط عند استخدام GCC أو Clang .LGC=1 ) على Solaris .suncc ) ، فإن البناء 64 بت هو الافتراضي على الأنظمة التي تعمل في وضع 64 بت ؛ لبناء 32 بت ، قم بتعيين قيمة متغير بيئة SUNBITS إلى 32 ( على سبيل المثال export SUNBITS=32 ). قفل الملف غير متاح بسبب عدم وجود flock() على Solaris . سيتم معالجة هذا من خلال دعم System v -style fcntl() في إصدار مستقبلي.
apt-cyg ) ، والتي يمكن أن تؤدي إلى مفقودة الملفات والروابط الرمزية المفقودة أو المفقودة.setup.exe إلى أحدث إصدار متاح.setup.exe الجديد.make و gcc و ncurses و ncurses-devel ) باستخدام تطبيق Cygwin setup.exe .cygcheck ( أي cygcheck -cv | grep -v "OK$" ) للتحقق من سلامة جميع الحزم المثبتة حاليًا. OpenVI متاح لمستخدمي Linux و MacOS عبر مدير الحزمة Homebrew.
brew install openviقد تتوفر حزم توزيع أخرى (غير رسمية).
يعتمد رقم إصدار OpenVI على إصدار إصدار OpenBSD المقابل ، يليه رقم إصدار OpenVI . يمكن استخدام أمر version لعرض هذه المعلومات بالتنسيق الموضح أدناه.
Version 7.0.1 (OpenVi) 10/25/2021.
تشير هذه الرسالة إلى أن المحرر المستخدم هو OpenVI ، الإصدار 1 ، مشتق من OpenBSD الإصدار 7.0 ، ويتم مزامنته بالكامل مع إصدارات OpenBSD من vi و ex و db و regex اعتبارًا من 10/25/2021 ( 25 أكتوبر 2021 ).
التغييرات غير المستمدة من الالتزامات OpenBSD لا تقدم هذا التاريخ. لا تقوم إصدارات OpenBSD الجديدة بإعادة ضبط رقم إصدار OpenVI .
Openvi
ChangeLog OpenBSD vi
vi / exdbregexLICENSE.md لشروط الترخيص والتوزيع الكاملة. vi الأصلي (بقلم بيل جوي ومارك هورتون ):Xvi ، شوكة محسّنة لتيم تومبسون STEVIESivle ، شوكة تنظيف لستيف كيركيندال ElvisVim57 ، شوكة مبسطة من الإصدار 5.7 من Bram Moolenaar 's Vim vi هو شوكة محفوظة حاليًا للفرع الأصلي ( 1BSD / 2BSD ) للمحرر vi / ex ، المستمدة من نسخة Gunnar Ritter المحسنة من محرر vi التقليدي .Nvi2 هو فرع ميزة تم الحفاظ عليه حاليًا من الإصدار الجديد ( 4BSD ) من محرر nvi / nex ، مع التركيز على التوسيع والميزات الجديدة.Nvi1 ( الإصدار 1.8+ ) هو الفرع التقليدي الذي تم الحفاظ عليه حاليًا من الإصدار الجديد ( 4BSD ) من محرر nvi / nex ، الذي تم تطويره الآن بواسطة Sven Verdoolaege .