Uma Tradução em Português Está Disponível.
OpenVI - tragbare OpenBSD vi / ex
OpenVI ist eine verbesserte und tragbare Implementierung des Berkeley vi / ex -Texteditors, der ursprünglich von Bill Joy entwickelt wurde.
OpenVI ist eine Gabel des vi / ex -Editors, das in OpenBSD enthalten ist und aus Version 1.79 des nvi -Editors abgeleitet ist, das ursprünglich im Rahmen der vierten Berkeley Software Distribution ( 4BSD ) verteilt wurde.
Der nvi -Herausgeber wurde von Keith Bostic von der Computer Systems Research Group ( CSRG ) an der University of California, Berkeley , Sven Verdoolaege und anderen Mitwirkenden entwickelt. Nvi selbst wurde von Steve Kirkendalls Elvis -Redakteur abgeleitet.
Warum sollten Sie OpenVI anstelle eines anderen Vi verwenden?
strlcpy , snprintf , mkstemp , pledge )bserase , expandtab , imctrl , visibletab usw.Also, warum könnten Sie dann OpenVi nicht verwenden?
Einige dieser Punkte sind möglicherweise wünschenswerte Merkmale, abhängig von Ihrem Standpunkt.
ex Mode-Schnittstellen verfügbarsh ) und Dienstprogramme, awk ( mawk , nawk ) usw.xlc , suncc , clang , gcc usw.)ncurses , NETBSD curses v8+, PDCurses v2.8+, PDCursesMod usw.) csh , tcsh usw.)nroff , groff usw. OpenVI ist für die meisten Plattformen mit UNIX -ähnlichen Betriebssystemen, die hauptsächlich der von IEEE STD 1003.1-2008 beschriebenen Programmierschnittstelle entsprechen, und der von IEEE STD 1003.2-2008 beschriebenen Benutzerumgebung leicht tragbar zu sein.
Die folgenden Betriebssysteme werden vollständig unterstützt und regelmäßig mit IX86/AMD64-, ARM/AACR64-, M68K-, MIPS-, Power- und RISC-V-Prozessoren getestet:
Die folgenden Compiler werden vollständig unterstützt und regelmäßig getestet:
Neueres oder älteres Betriebssystem und Compiler -Releases sollten innerhalb der Vernunft funktionieren. Die oben aufgeführten Versionen sind die regelmäßig getesteten und bekannten Arbeiten.
Benutzerbeiträge zur Verbesserung der Plattformunterstützung werden begrüßt.
gmake oder make ) aus dem obersten Verzeichnis einer Quellveröffentlichung oder einer Git-Kasse aufgerufen werden.-j N kann verwendet werden, um die Kompilierung zu parallelisieren, wobei N eine positive Ganzzahl ist, die die Anzahl der angeforderten parallelen Jobs darstellt.CC -C -Compiler zu verwendenCC=gcc )OPTLEVELOPTLEVEL=-O2 )CFLAGS - Flaggen, um an den C -Compiler weiterzugebenCFLAGS="-Wall -pipe" )LIBS - Bibliotheken (übergeordnete Standardeinstellungen), um an den Linker weiterzugebenLIBS="-lpdcurses -lflock" ))LDFLAGS - Flaggen, die an den Linker weitergeben werden müssenLDFLAGS="-L/lib/path -static" )V - Setzen Sie, um die ausführliche Kompilierungsausgabe zu aktivierenV=1 )DEBUG - Sehen Sie, um einen Debugging -Build zu erstellenDEBUG=1 )LGC - Eingestellt, um die Link -Time -Müllsammlung zu aktivierenLGC=1 )LTO - Eingestellt, um die Link -Time -Optimierung zu aktivierenLTO=1 )EXTRA_LIBS - zusätzliche Bibliotheken für die VerknüpfungEXTRA_LIBS=-lmtmalloc )PREFIX - Verzeichnis Präfix für die Verwendung mit install und uninstall ZielePREFIX=/opt/OpenVi )all , strip , superstrip , clean , distclean , install , install-strip , uninstall , upx usw.) sind verfügbar. Überprüfen Sie die GNUmakefile , um alle verfügbaren Ziele und Optionen anzuzeigen.Zum Beispiel ein aggressiv Größe optimiertes Build erstellen, wodurch die Optimierung der Link-Zeit und die Müllsammlung von Link-Time ausdrücklich mit GCC verwendet werden:
env CC=gcc OPTLEVEL=-Os LGC=1 LTO=1 gmake sstripOder um einen Debugging -Build ausführlich zu erstellen, ausdrücklich mit Clang :
env CC=clang DEBUG=1 V=1 gmake Für Systeme mit GNU make as make ( z. B. GNU/Linux ) sollte eine grundlegende Kompilierung ohne Optionen oder zusätzliche Konfiguration erfolgreich sein:
make Mit den entsprechenden Berechtigungen zur Manipulation von Dateien innerhalb des ausgewählten PREFIX (mit doas , sudo , su usw.) kann die kompilierte ausführbare Datei unter Verwendung einer Aufklärung wie folgt installiert werden:
doas gmake install-stripoder
sudo env PREFIX=/usr/local make installDie folgenden Abschnitte dokumentieren nur plattformspezifische Unterschiede und sind nicht als allgemeine oder erschöpfende Referenz gedacht. Für die Installation von Voraussetzungen für Softwarepakete oder andere Systemkonfigurationen wenden Sie sich an die Dokumentation des Anbieters.
Installieren Sie vor dem Bau von OpenVI auf AIX die ncurses -Bibliotheken und -Heen. IBM bietet die erforderlichen Pakete, ncurses und ncurses-devel , im RPM- Format als Teil der AIX-Toolbox für Linux- und Open-Source-Software . Mit den entsprechenden Berechtigungen ( z. B. root ) können diese Pakete auf den meisten Systemen mit den dnf oder yum -Dienstprogrammen installiert werden, beispielsweise:
dnf install ncurses ncurses-develoder
yum install ncurses ncurses-devel Das IBM AIX -Basissystem (und die Pase für I , eine integrierte Laufzeitumgebung für AIX -Anwendungen auf dem IBM I -Betriebssystem ) liefert libxcurses , eine von AT & T System V , die für die Verwendung mit OpenVI noch nicht unterstützt wird.
Die Kompilierung wird unter Verwendung von IBM XL C / C ++ V16.1+ ( gxlc oder xlclang ), IBM Open XL C / C ++ V17.1+ ( ibm-clang ) oder GNU GCC (normalerweise gcc , gcc-8 , gcc-9 , gcc-10 , gcc-11 ) unterstützt.
LTO=1 ) erfordert offenes XL C / C ++ V17.1+. Die GCC- Pakete von IBM ( AIX Toolbox ) und Bull / ATOS ( Bull Freeware ) sowie IBM XL C / C ++ -Versionen früher als V17.1 sind nicht LTO-fähig.LGC=1 ) wird auf IBM AIX nicht unterstützt.MAIXBITS Umgebungsvariablen auf 32 ( z. export MAIXBITS=32 ).CC Umgebungsvariablen muss auf den vollständigen Pfad des Compilers festgelegt werden ( z. B. /opt/freeware/bin/gcc , /opt/IBM/xlC/16.1.0/bin/gxlc , /opt/IBM/openxlC/17.1.0/bin/ibm-clang usw.), es PATH denn Dateisperrung (über flock() gemäß der AIX libbsd -Bibliothek) ist nicht funktionsfähig; Dies wird in einer zukünftigen Veröffentlichung untersucht und korrigiert.
OpenVI -Man -Seiten werden mit mandoc verfasst und erfordern vor der Verwendung mit der AIX man -Software (die von AT & T Unix System v .).
Bei NetBSD -Installationen verwendet die Standard -OpenVI -Builds die vom NetBSD -Basissystem bereitgestellte BSD curses Library. Um ncurses stattdessen zu verwenden, setzen Sie die Werte der CFLAGS , LDFLAGS und CURSESLIB Umgebungsvariablen entsprechend ( dh CFLAGS=-I/usr/pkg/include LDFLAGS=-L/usr/pkg/lib CURSESLIB=-lncurses ).
Der LLD-LLD- Linker von LLVM ist für die Link-Zeit-Optimierung ( LTO=1 ) mit Clang erforderlich. Es ist als installierbares Paket erhältlich ( dh pkgin install lld ).
Bauen Sie vor dem Bau von OpenVI auf einer Illumos -Verteilung ( dh Openindiana ) die ncurses -Bibliotheken und -Headers an. Die Openindiana -Verteilung bietet das erforderliche ncurses -Paket im IPS -Format. Mit den entsprechenden Berechtigungen ( z. B. root ) kann das Paket beispielsweise mit dem Openindiana pkg -Dienstprogramm installiert werden:
pkg install ncurses Das Openindiana -Basissystem liefert libcurses , eine von AT & T System V abgeleitete Implementierung von XPG4 / XSI , die für die Verwendung mit OpenVI noch nicht unterstützt wird.
Link-Time-Müllsammlung ( LGC=1 ) wird auf Openindiana nicht unterstützt.
Installieren Sie vor OpenVI auf Oracle Solaris 11 die ncurses -Bibliotheken und -Header. Oracle bietet das erforderliche ncurses -Paket für Solaris 11 im IPS -Format. Mit den entsprechenden Berechtigungen ( z. B. root ) kann das Paket beispielsweise mit dem Solaris pkg -Dienstprogramm installiert werden:
pkg install ncurses Das Basis -Oracle Solaris -System liefert libcurses , eine von AT & T System V abgeleitete Implementierung von XPG4 / XSI , die noch nicht für die Verwendung mit OpenVI unterstützt wird.
Die Zusammenstellung wird mit Oracle Developer Studio , GCC und Clang unterstützt:
suncc ein oder setzen Sie den Wert der _OSLCC -Umgebungsvariable auf 1 .LTO=1 ) wird derzeit nur bei Verwendung von GCC oder Clang unterstützt.LGC=1 ) wird nicht auf Solaris unterstützt.suncc ) Compiler ist ein 64-Bit-Build der Standard für Systeme, die im 64-Bit-Modus arbeiten. Setzen Sie für einen 32-Bit-Build den Wert der SUNBITS Umgebungsvariablen auf 32 ( z. export SUNBITS=32 ). Die Dateisperrung ist aufgrund des Fehlens von flock() auf Solaris nicht verfügbar. Dies wird durch die Unterstützung des Systems v -Style fcntl() in einer zukünftigen Veröffentlichung behandelt.
apt-cyg ) verursacht, die zu fehlenden Dateien und baumelnden oder fehlenden symbolischen Links führen können.setup.exe auf die neueste verfügbare Version.setup.exe -Anwendung.make , gcc , ncurses , ncurses-devel ) mit der Anwendung von Cygwin setup.exe .cygcheck -Dienstprogramm ( dh cygcheck -cv | grep -v "OK$" ) auf, um die Integrität aller derzeit installierten Pakete zu überprüfen. OpenVI steht Linux und MacOS -Benutzern über den Homebrew Package Manager zur Verfügung.
brew install openviAndere (inoffizielle) Verteilungspakete können verfügbar sein.
Die OpenVI -Versionsnummer basiert auf der Version der entsprechenden OpenBSD -Version, gefolgt von der OpenVI -Versionsnummer. Mit dem Befehl version kann diese Informationen im unten angegebenen Format angezeigt werden.
Version 7.0.1 (OpenVi) 10/25/2021.
Diese Meldung zeigt an, dass der verwendete Editor OpenVI , Release 1 , abgeleitet von OpenBSD Version 7.0 ist und mit den OpenBSD -Versionen von vi , ex , db und regex ab dem 25.10.2021 ( 25. Oktober 2021 ) vollständig synchronisiert ist.
Änderungen, die nicht von OpenBSD -Commits abgeleitet sind, erhöhen dieses Datum nicht. Neue OpenBSD -Veröffentlichungen setzen die OpenVI -Release -Nummer nicht zurück.
OpenVI
ChangeLog OpenBSD vi
vi / exdbregexLICENSE.md -Datei. vi -Anerkennungen (von Bill Joy & Mark Horton ):Xvi , eine verbesserte Gabel von Tim Thompsons STEVIESivle , eine aufgeräumte Gabel von Steve Kirkendalls ElvisVim57 , eine vereinfachte Gabel von Version 5.7 von Bram Moolenaars Vim vi von Carsten Kunze ist eine derzeit gepflegte Gabelung der ursprünglichen Niederlassung ( 1BSD / 2BSD ) des vi / ex -Editors, abgeleitet aus der erweiterten Version des traditionellen vi -Editors von Gunnar Ritter .Nvi2 ist eine derzeit gepflegte Feature -Zweigstelle der neuen ( 4BSD ) -Version des nvi / nex -Editors mit Schwerpunkt auf Erweiterbarkeit und neuen Funktionen.Nvi1 ( Version 1.8+ ) ist die derzeit gepflegte traditionelle Niederlassung der neuen ( 4BSD ) -Version des nvi / nex -Editors, die jetzt von Sven Verdoolage entwickelt wurde.