Uma Tradução em Português Está Disonível.
OpenVI - OpenBSD vi / ex portable
OpenVI est une implémentation améliorée et portable de l'éditeur de texte Berkeley vi / ex , développé à l'origine par Bill Joy .
OpenVI est une fourche de l'éditeur vi / ex inclus avec OpenBSD , qui est dérivé de la version 1.79 de l'éditeur nvi à l'origine distribué dans le cadre de la quatrième distribution de logiciel Berkeley ( 4BSD ).
Le rédacteur en chef nvi a été développé par Keith Bostic du Computer Systems Research Group ( CSRG ) à l' Université de Californie, Berkeley , Sven Verdoolae et d'autres contributeurs. Nvi lui-même est dérivé de l' Elvis de Steve Kirkendall .
Pourquoi voudriez-vous utiliser OpenVI au lieu d' un autre VI ?
strlcpy , snprintf , mkstemp , pledge )bserase , expandtab , imctrl , visibletab , etc.Alors, pourquoi pourriez-vous ne pas vouloir utiliser OpenVI , alors?
Certains de ces points peuvent être des fonctionnalités souhaitables, selon votre point de vue.
ex ligne disponibles disponiblessh ) et utilitaires, awk ( mawk , nawk ), etc.xlc , suncc , clang , gcc , etc.)ncurses , NetBSD curses V8 +, PDCurses V2.8 +, PDCursesMod , etc.) csh , tcsh , etc.)nroff , groff , etc. OpenVI est facilement portable sur la plupart des plates-formes avec des systèmes d'exploitation de type UNIX qui sont principalement conformes à l'interface de programmation décrite par IEEE STD 1003.1-2008 et à l'environnement utilisateur décrit par IEEE STD 1003.2-2008 , également connu sous le nom de POSIX.1-2008 et POSIX.2-2008 , respectivement.
Les systèmes d'exploitation suivants sont entièrement pris en charge et testés régulièrement à l'aide des processeurs IX86 / AMD64, ARM / AARCH64, M68K, MIPS, Power et RISC-V:
Les compilateurs suivants sont entièrement pris en charge et testés régulièrement:
Les versions de système d'exploitation et de compilateur plus récentes ou plus anciennes, dans le contraire, devraient fonctionner. Les versions énumérées ci-dessus sont celles qui sont régulièrement testées et connues de travail.
Les contributions des utilisateurs pour améliorer l'assistance de la plate-forme sont les bienvenues.
gmake ou make ) à partir du répertoire de niveau supérieur d'une version source ou d'un paiement GIT.-j N peut être utilisé pour paralléliser la compilation, où N est un entier positif représentant le nombre de travaux parallèles demandés.CC - C à utiliserCC=gcc )OPTLEVELOPTLEVEL=-O2 )CFLAGS - Flags à passer au compilateur CCFLAGS="-Wall -pipe" )LIBS - Les bibliothèques (paramètres de valeur primordiale) passent au linkerLIBS="-lpdcurses -lflock" )LDFLAGS - Flags à passer au linkerLDFLAGS="-L/lib/path -static" )V - réglé pour activer la sortie de compilation verbeuseV=1 )DEBUG - réglé pour compiler une construction de débogageDEBUG=1 )LGC - réglé pour activer la collection de déchets de liaisonLGC=1 )LTO - réglé pour activer l'optimisation du temps de liaisonLTO=1 )EXTRA_LIBS - bibliothèques supplémentaires pour lierEXTRA_LIBS=-lmtmalloc )PREFIX - Préfixe du répertoire pour une utilisation avec des cibles install et uninstallPREFIX=/opt/OpenVi )all , strip , superstrip , clean , distclean , install , install-strip , uninstall , upx , etc.) sont disponibles; Passez en revue le GNUmakefile pour voir toutes les cibles et options disponibles.Par exemple, pour compiler une version agressive optimisée, permettant une optimisation en temps de liaison et une collecte de déchets en temps de liaison, en utilisant explicitement GCC :
env CC=gcc OPTLEVEL=-Os LGC=1 LTO=1 gmake sstripou, pour compiler verbosé une construction de débogage, à l'aide de clang :
env CC=clang DEBUG=1 V=1 gmake Pour les systèmes avec GNU Make As make ( par exemple GNU / Linux ), la compilation de base doit réussir sans aucune option ou configuration supplémentaire nécessaire:
make Avec les privilèges appropriés pour manipuler des fichiers dans le PREFIX choisi (en utilisant doas , sudo , su , etc.), l'exécutable compilé peut être installé - tel quel ou dépouillé - en utilisant une invocation telle que:
doas gmake install-stripou
sudo env PREFIX=/usr/local make installLes sections suivantes ne documentent que des différences spécifiques à la plate-forme et ne sont pas destinées à être une référence générale ou exhaustive. Pour l'installation de packages logiciels préalables ou d'une autre configuration système, consultez la documentation du fournisseur.
Avant de construire OpenVI sur AIX , installez les bibliothèques et les en-têtes ncurses . IBM fournit les packages, ncurses et ncurses-devel nécessaires, au format RPM dans le cadre de la boîte à outils AIX pour Linux et des logiciels open source . Avec les autorisations appropriées ( par exemple root ), ces packages sont installables sur la plupart des systèmes à l'aide des utilitaires dnf ou yum , par exemple:
dnf install ncurses ncurses-develou
yum install ncurses ncurses-devel Le système de base IBM AIX (et PASE pour I , un environnement d'exécution intégré pour les applications AIX sur le système d'exploitation IBM I ) fournit libxcurses , une implémentation de malédictions étendu XPG4 / XSI dérivée du système AT&T V , qui n'est pas encore pris en charge pour une utilisation avec OpenVI .
La compilation est prise en charge en utilisant IBM XL C / C ++ V16.1 + ( gxlc ou xlclang ), IBM Open XL C / C ++ V17.1 + ( ibm-clang ) ou GNU GCC (généralement gcc , gcc-8 , gcc-9 , gcc-10 , gcc-11 ):
LTO=1 ) nécessite ouverte xl c / c ++ v17.1 +. Les packages GCC IBM ( AIX Toolbox ) et Bull / ATOS ( Bull Freeware ) et les versions IBM XL C / C ++ plus tôt que V17.1 ne sont pas compatibles LTO.LGC=1 ) n'est pas prise en charge sur IBM AIX .MAIXBITS sur 32 ( par exemple, export MAIXBITS=32 ).CC doit être définie sur le chemin complet du compilateur ( par exemple /opt/freeware/bin/gcc , /opt/IBM/xlC/16.1.0/bin/gxlc , /opt/IBM/openxlC/17.1.0/bin/ibm-clang , etc.) à moins que le répertoire du compilateur ne fait déjà partie du PATH actuel. Le verrouillage des fichiers (via flock() tel que fourni par la bibliothèque AIX libbsd ) est non fonctionnelle; Cela sera étudié et corrigé dans un prochain communiqué.
Les pages OpenVI Man sont rédigées avec mandoc et nécessitent une conversion avant utilisation avec le logiciel AIX man (dérivé de AT&T Unix System v .)
Sur les installations NetBSD , les versions OpenVI par défaut utilisent la bibliothèque BSD curses fournie par le système de base NetBSD. Pour utiliser à la place ncurses , définissez les valeurs des variables de l'environnement CFLAGS , LDFLAGS et CURSESLIB ( cflags CFLAGS=-I/usr/pkg/include LDFLAGS=-L/usr/pkg/lib CURSESLIB=-lncurses ).
Le linker LLVM LLD est requis pour l'optimisation du temps de liaison ( LTO=1 ) à l'aide de Clang . Il est disponible en tant que package installable ( c.-à -d pkgin install lld ).
Avant de construire OpenVI sur une distribution Illumos ( IE OpenIndiana ), installez les bibliothèques et les en-têtes ncurses . La distribution OpenIndiana fournit le package ncurses nécessaire au format IPS . Avec les autorisations appropriées ( par exemple root ), le package peut être installé à l'aide de l'utilitaire OpenIndiana pkg , par exemple:
pkg install ncurses Le système de base OpenIndiana fournit libcurses , une implémentation de malédictions étendues XPG4 / XSI dérivée de AT&T System V , qui n'est pas encore prise en charge pour une utilisation avec OpenVI .
La collection de déchets en temps de liaison ( LGC=1 ) n'est pas prise en charge sur OpenIndiana .
Avant de construire OpenVI sur Oracle Solaris 11, installez les bibliothèques et les en-têtes ncurses . Oracle fournit fourni le package ncurses nécessaire pour Solaris 11 au format IPS . Avec les autorisations appropriées ( par exemple root ), le package peut être installé à l'aide de l'utilitaire Solaris pkg , par exemple:
pkg install ncurses Le système de base Oracle Solaris fournit libcurses , une implémentation de malédictions étendues XPG4 / XSI dérivée de AT&T System V , qui n'est pas encore prise en charge pour une utilisation avec OpenVI .
La compilation est prise en charge à l'aide d' Oracle Developer Studio , GCC et Clang :
suncc ou définissez la valeur de la variable d'environnement _OSLCC sur 1 .LTO=1 ) est actuellement prise en charge uniquement lors de l'utilisation de GCC ou de Clang .LGC=1 ) n'est pas prise en charge sur Solaris .suncc ), une version 64 bits est la valeur par défaut sur les systèmes fonctionnant en mode 64 bits; Pour une construction 32 bits, définissez la valeur de la variable d'environnement SUNBITS à 32 ( par exemple , export SUNBITS=32 ). Le verrouillage des fichiers n'est pas disponible en raison de l'absence de flock() sur Solaris . Ceci sera abordé en prenant en charge le verrouillage du système V -Style fcntl() dans une future version.
apt-cyg ), ce qui peut entraîner des fichiers manquants et des liens symboliques suspendus ou manquants.setup.exe vers la dernière version disponible.setup.exe .make , gcc , ncurses , ncurses-devel ) à l'aide de l'application cygwin setup.exe .cygcheck ( c'est-à-dire cygcheck -cv | grep -v "OK$" ) pour vérifier l'intégrité de tous les packages actuellement installés. OpenVI est disponible pour les utilisateurs de Linux et MacOS via le Homebrew Package Manager.
brew install openviD'autres packages de distribution (non officiels) peuvent être disponibles.
Le numéro de version OpenVI est basé sur la version de la version OpenBSD correspondante, suivie du numéro de version OpenVI . La commande version peut être utilisée pour afficher ces informations dans le format illustré ci-dessous.
Version 7.0.1 (OpenVi) 10/25/2021.
Ce message indique que l'éditeur utilisé est OpenVI , la version 1 , dérivé de la version 7.0 OpenBSD , et est entièrement synchronisé avec les versions OpenBSD de vi , ex , db et regex au 10/25/2021 ( 25 octobre 2021 ).
Les modifications non dérivées des commits OpenBSD ne progressent pas cette date. Les nouvelles versions OpenBSD ne réinitialisent pas le numéro de version OpenVI .
Openvi
ChangeLog OpenBSD vi
vi / exdbregexLICENSE.md pour les conditions de licence complète et de distribution. vi originaux (par Bill Joy & Mark Horton ):Xvi de Martin Guy , une fourche améliorée de STEVIE de Tim ThompsonSivle , une fourche nettoyée d' Elvis de Steve KirkendallVim57 , une fourche simplifiée de la version 5.7 de Bram Moolenaar 's Vim vi de Carsten Kunze est une fourche actuellement entretenue de la branche originale ( 1BSD / 2BSD ) de l'éditeur vi / ex , dérivé de la version améliorée de Gunnar Ritter de l'éditeur vi traditionnel .Nvi2 est une branche de fonctionnalité actuellement entretenue de la nouvelle version ( 4BSD ) de l'éditeur nvi / nex , avec un accent sur l'extensibilité et les nouvelles fonctionnalités.Nvi1 ( version 1.8+ ) est la branche traditionnelle actuellement maintenue de la nouvelle version ( 4BSD ) de l'éditeur nvi / nex , désormais développé par Sven Verdoolae .