Uma tradução em Português está Disponível.
OpenVI - Portable OpenBSD vi / ex
OpenVI es una implementación mejorada y portátil del editor de texto Berkeley vi / ex , desarrollado originalmente por Bill Joy .
OpenVI es una bifurcación del editor vi / ex incluido con OpenBSD , que se deriva de la versión 1.79 del editor nvi distribuido originalmente como parte de la cuarta distribución de software de Berkeley ( 4BSD ).
El editor nvi fue desarrollado por Keith Bostic, del Grupo de Investigación de Sistemas Computarizados ( CSRG ) en la Universidad de California, Berkeley , Sven Verdooleege y otros colaboradores. Nvi en sí se derivó del editor Elvis de Steve Kirkendall .
¿Por qué querrías usar OpenVi en lugar de otrovi ?
strlcpy , snprintf , mkstemp , pledge )bserase , expandtab , imctrl , visibletab , etc.Entonces, ¿por qué no quieres usar OpenVi , entonces?
Algunos de estos puntos pueden ser características deseables, dependiendo de su punto de vista.
ex -MODE basadas en el modo visual basado en las maldiciones y las basadas en línea disponiblessh ) y servicios públicos, 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 es fácilmente portátil a la mayoría de las plataformas con sistemas operativos similares a UNIX que se ajustan principalmente a la interfaz de programación descrita por IEEE STD 1003.1-2008 y el entorno de usuario descrito por IEEE STD 1003.2-2008 , también conocido como POSIX.1-2008 y POSIX.2-2008 , respectivamente.
Los siguientes sistemas operativos son totalmente compatibles y probados regularmente utilizando procesadores IX86/AMD64, ARM/AARCH64, M68K, MIPS, POWER y RISC-V:
Los siguientes compiladores son totalmente compatibles y probados regularmente:
El sistema operativo más nuevo o anterior y las liberaciones de compiladores, dentro de lo razonable, deberían funcionar. Las versiones enumeradas anteriormente son las que trabajan regularmente y conocen regularmente.
Las contribuciones de los usuarios para mejorar el soporte de la plataforma son bienvenidas.
gmake o make ) desde el directorio de nivel superior de una versión de origen o pago GIT.-j N se puede usar para paralelizar la compilación, donde N es un entero positivo que representa el número de trabajos paralelos solicitados.CC - C para usarCC=gcc )OPTLEVEL - Flags de optimizaciónOPTLEVEL=-O2 )CFLAGS - Banderas para pasar al compilador CCFLAGS="-Wall -pipe" )LIBS - Bibliotecas (predeterminados anulantes) para pasar al enlazadorLIBS="-lpdcurses -lflock" )LDFLAGS - banderas para pasar al enlazadorLDFLAGS="-L/lib/path -static" )V - Establecer para habilitar la salida de compilación detalladaV=1 )DEBUG : configurado para compilar una construcción de depuraciónDEBUG=1 )LGC - Establecer para habilitar la recolección de basura del tiempo de enlaceLGC=1 )LTO - Establecer para habilitar la optimización del tiempo de enlaceLTO=1 )EXTRA_LIBS - bibliotecas adicionales para vincularEXTRA_LIBS=-lmtmalloc )PREFIX : prefijo de directorio para usar con objetivos install y uninstallPREFIX=/opt/OpenVi )strip all superstrip clean distclean install install-strip uninstall upx Revise GNUmakefile para ver todos los objetivos y opciones disponibles.Por ejemplo, para compilar una compilación agresiva optimizada, habilitando la optimización del tiempo de enlace y la recolección de basura del tiempo de enlace, utilizando explícitamente GCC :
env CC=gcc OPTLEVEL=-Os LGC=1 LTO=1 gmake sstripo, para compilar muy bien una construcción de depuración, usando explícitamente Clang :
env CC=clang DEBUG=1 V=1 gmake Para los sistemas con GNU Make AS make ( por ejemplo, GNU/Linux ), la compilación básica debe tener éxito sin necesidad de ninguna opción o configuración adicional:
make Con los privilegios apropiados para manipular archivos dentro del PREFIX elegido (usando doas , sudo , su , etc.), el ejecutable compilado puede instalarse, tal como está o despojado, utilizando una invocación como:
doas gmake install-stripo
sudo env PREFIX=/usr/local make installLas siguientes secciones documentan solo diferencias específicas de la plataforma, y no están destinadas a ser una referencia general o exhaustiva. Para la instalación de paquetes de software de requisitos previos u otra configuración del sistema, consulte la documentación del proveedor.
Antes de construir OpenVi en AIX , instale las bibliotecas y encabezados de ncurses . IBM proporciona los paquetes necesarios, ncurses y ncurses-devel , en formato RPM como parte de la caja de herramientas AIX para el software Linux y de código abierto . Con los permisos apropiados ( p. Ej. root ), estos paquetes son instalables en la mayoría de los sistemas utilizando las utilidades dnf o yum , por ejemplo:
dnf install ncurses ncurses-develo
yum install ncurses ncurses-devel El sistema base IBM AIX (y PASE para I , un entorno de tiempo de ejecución integrado para aplicaciones AIX en el sistema operativo IBM I ) proporciona libxcurses , una implementación de CRUSES extendidas XPG4 / XSI derivada del Sistema A&T AT&T , que aún no es compatible con OpenVI .
La compilación se admite usando IBM XL C / C ++ V16.1+ ( gxlc o xlclang ), IBM Open XL C / C ++ V17.1+ ( ibm-clang ) o GNU GCC (generalmente gcc , gcc-8 , gcc-9 , gcc-10 , gcc-11 )::
LTO=1 ) requiere abrir XL C / C ++ V17.1+. Los paquetes GCC IBM ( AIX Toolbox ) y Bull / ATOS ( Bull Freeware ), y las versiones IBM XL C / C ++ antes de V17.1 no están habilitadas para LTO.LGC=1 ) no es compatible con IBM AIX .MAIXBITS en 32 ( por ejemplo , export MAIXBITS=32 ).CC debe establecerse en la ruta completa del compilador ( por ejemplo , /opt/freeware/bin/gcc , /opt/IBM/xlC/16.1.0/bin/gxlc , /opt/IBM/openxlC/17.1.0/bin/ibm-clang , etc.) a menos que el directorio del compilador ya sea parte del PATH de la corriente. El bloqueo de archivos (a través de flock() según lo dispuesto por la biblioteca AIX libbsd ) no funciona; Esto será investigado y corregido en un lanzamiento futuro.
Las páginas de OpenVi Man se escriben con mandoc y requieren conversión antes de usarlo con el software Aix man (que se deriva del sistema AT&T Unix v .)
En las instalaciones de NetBSD , las compilaciones de OpenVI predeterminadas usan la biblioteca BSD curses proporcionada por el sistema base NetBSD. Para usar ncurses en su lugar, establezca los valores de las variables de entorno CFLAGS , LDFLAGS y CURSESLIB de manera apropiada ( es decir, CFLAGS=-I/usr/pkg/include LDFLAGS=-L/usr/pkg/lib CURSESLIB=-lncurses ).
Se requiere el enlazador LLVM LLD para la optimización del tiempo de enlace ( LTO=1 ) usando Clang . Está disponible como un paquete instalable ( es decir, pkgin install lld ).
Antes de construir OpenVi en una distribución de Illumos ( es decir, OpenIndiana ), instale las bibliotecas y encabezados ncurses . La distribución de OpenIndiana proporciona el paquete ncurses necesario en formato IPS . Con los permisos apropiados (p. Ej. root ), el paquete se puede instalar utilizando la utilidad pkg OpenIndiana , por ejemplo:
pkg install ncurses El sistema base de OpenIndiana proporciona libcurses , una implementación de CRUDSES extendidas XPG4 / XSI derivada del sistema AT&T S , que aún no es compatible para su uso con OpenVI .
La recolección de basura de tiempo de enlace ( LGC=1 ) no es compatible con OpenIndiana .
Antes de construir OpenVi en Oracle Solaris 11, instale las bibliotecas y encabezados ncurses . Oracle proporciona el paquete ncurses necesario para Solaris 11 en formato IPS . Con los permisos apropiados (p. Ej. root ), el paquete se puede instalar utilizando la utilidad pkg de Solaris , por ejemplo:
pkg install ncurses El sistema Base Oracle Solaris proporciona libcurses , una implementación de CRUDSES extendidas XPG4 / XSI derivada del sistema AT&T , que aún no es compatible con el uso con OpenVI .
La compilación es compatible con Oracle Developer Studio , GCC y Clang :
suncc o establezca el valor del entorno _OSLCC en 1 .LTO=1 ) se admite actualmente solo cuando se usa GCC o Clang .LGC=1 ) no es compatible con Solaris .suncc ), una compilación de 64 bits es el valor predeterminado en los sistemas que funcionan en modo de 64 bits; Para una construcción de 32 bits, establezca el valor del entorno de los bobs SUNBITS en 32 ( por ejemplo, export SUNBITS=32 ). El bloqueo de archivos no está disponible debido a la ausencia de flock() en Solaris . Esto se abordará mediante el bloqueo del sistema V -style fcntl() bloqueado en una versión futura.
apt-cyg ), que pueden provocar archivos faltantes y enlaces simbólicos colgantes o faltantes.setup.exe a la última versión disponible.setup.exe .make , gcc , ncurses , ncurses-devel ) utilizando la aplicación CyGWIN setup.exe .cygcheck ( es decir, cygcheck -cv | grep -v "OK$" ) para verificar la integridad de todos los paquetes instalados actualmente. OpenVI está disponible para los usuarios de Linux y MacOS a través del HomeBrew Package Manager.
brew install openviOtros paquetes de distribución (no oficiales) pueden estar disponibles.
El número de versión de OpenVI se basa en la versión de la versión OpenBSD correspondiente, seguido del número de lanzamiento de OpenVI . El comando version se puede usar para mostrar esta información en el formato que se muestra a continuación.
Version 7.0.1 (OpenVi) 10/25/2021.
Este mensaje indica que el editor en uso es OpenVI , la versión 1 , derivado de OpenBSD versión 7.0 , y está completamente sincronizado con las versiones OpenBSD de vi , ex , db y regex a partir del 15/10/2021 ( 25 de octubre de 2021 ).
Los cambios no derivados de las comitaciones de OpenBSD no avanzan esta fecha. Las nuevas versiones de OpenBSD no restablecen el número de lanzamiento de OpenVI .
OpenVi
ChangeLog OpenBSD vi
vi / exdbregexLICENSE.md para los términos completos de licencia y distribución. vi (por Bill Joy y Mark Horton ):Xvi de Martin Guy , una bifurcación mejorada de STEVIE de Tim ThompsonSivle de SV Nickolas , un tenedor limpio de Elvis de Steve KirkendallVim57 de Andy Valencia , una bifurcación simplificada de la versión 5.7 del Vim de Bram Moolenaar vi de Carsten Kunze es una bifurcación actualmente mantenida de la rama original ( 1BSD / 2BSD ) del editor vi / ex , derivada de la versión mejorada de Gunnar Ritter del editor vi tradicional .Nvi2 es una rama de características actualmente mantenida de la nueva versión ( 4BSD ) del editor nvi / nex , con un enfoque en la extensibilidad y las nuevas características.Nvi1 ( versión 1.8+ ) es la rama tradicional actualmente mantenida de la nueva versión ( 4BSD ) del editor nvi / nex , ahora desarrollado por Sven Verdooleege .