UMA TRADUCãO EM Portugues Está Disponível.
OpenVI - Portable OpenBSD vi / ex
OpenVI - это расширенная и портативная реализация текстового редактора Berkeley vi / ex , первоначально разработанного Биллом Джой .
OpenVI - это вилка редактора vi / ex , включенного в OpenBSD , которая получена из версии 1.79 редактора nvi , первоначально распределенной в рамках четвертого программного распределения Беркли ( 4BSD ).
Редактор nvi был разработан Кейтом Бостиком из Исследовательской группы компьютерных систем ( CSRG ) в Калифорнийском университете, Беркли , Свене Вердуолеге и других участниках. Сам Nvi был получен от редактора Стива Киркендалла Elvis .
Зачем вам использовать OpenVI вместо других ?
strlcpy , snprintf , mkstemp , pledge )bserase , expandtab , imctrl , visibletab и т. Д.Итак, зачем вы не хотели использовать OpenVI , тогда?
Некоторые из этих моментов могут быть желательными функциями, в зависимости от вашей точки зрения.
ex .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.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 - Флаги для перехода к компилятору CCFLAGS="-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 и 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или, чтобы условно скомпилировать сборку отладки, явно используя 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 для программного обеспечения Linux и с открытым исходным кодом . С соответствующими разрешениями ( например, root ) эти пакеты можно установить для большинства систем, используя утилиты dnf или yum , например:
dnf install ncurses ncurses-develили
yum install ncurses ncurses-devel Базовая система IBM AIX (и PASE для I , интегрированная среда выполнения для приложений AIX в операционной системе IBM I ) предоставляет libxcurses , реализацию XPG4 / XSI , полученную из системы AT & T , которая еще не поддерживается для использования с 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 ( FreeWare ) GCC и версии IBM XL C / C ++ раньше, чем V17.1, не с поддержкой LTO.LGC=1 ) не поддерживается на IBM AIX .MAIXBITS на 32 ( например, export MAIXBITS=32 ).CC должно быть установлено на полный путь компилятора ( например , /opt/freeware/bin/gcc , /opt/IBM/xlC/16.1.0/bin/gxlc , /opt/IBM/openxlC/17.1.0/bin/ibm-clang и т PATH Д.). Блокировка файлов (через flock() , как это предусмотрено библиотекой AIX libbsd ) нефункциональна; Это будет исследовано и исправлено в будущем.
Страницы Man Man OpenVI создаются с помощью mandoc и требуют преобразования перед использованием с программным обеспечением AIX man (которое получено от AT & T Unix System v .)
В установках NetBSD строительные сборки OpenVI по умолчанию используют библиотеку curses CRSD, предоставленную базовой системой NetBSD. Чтобы LDFLAGS=-L/usr/pkg/lib ncurses , установите значения CURSESLIB=-lncurses CFLAGS , LDFLAGS и CURSESLIB CFLAGS=-I/usr/pkg/include
Линкер LLVM LLD требуется для оптимизации времени ссылки ( LTO=1 ) с использованием Clang . Он доступен в виде установленного пакета ( то есть pkgin install lld ).
Прежде чем строить OpenVI на распределении Illumos ( то есть OpenIniana ), установите библиотеки и заголовки ncurses . Распределение OpenIndiana предоставляет необходимый пакет ncurses в формате IPS . С соответствующими разрешениями ( например, root ) пакет может быть установлен с помощью утилиты OpenIndiana pkg , например:
pkg install ncurses Основная базовая система OpenIniana предоставляет libcurses , расширенную реализацию XPG4 / XSI , полученную из AT & T System V , которая еще не поддерживается для использования с OpenVI .
Сборку мусора ссылки ( LGC=1 ) не поддерживается на OpenIniana .
Прежде чем строить 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 . Это будет рассмотрено с помощью поддерживающей системы V -стиля 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 Package Manager.
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 по состоянию на 25.10.2021 ( 25 октября 2021 г. ).
Изменения, не полученные из Commits OpenBSD , не продвигают эту дату. Новые выпуски OpenBSD не сбрасывают номер выпуска OpenVI .
OpenVI
ChangeLog OpenBSD vi
vi / exdbregexLICENSE.md для полной лицензии и условий распространения. vi Благодарности ( Биллом Джой и Марком Хортоном ):Xvi Мартина Гая , улучшенная вилка STEVIE Тима ТомпсонаSivle , очищенная вилка из Elvis Стива КиркендаллаVim57 Энди Валенсии , упрощенная вилка версии 5.7 из Bram Moolenaar 's Vim vi Carsten Kunze является в настоящее время поддерживаемая вилка оригинальной ( 1BSD / 2BSD ) филиала редактора vi / ex , полученной из улучшенной версии Gunnar Ritter традиционного редактора vi .Nvi2 - это в настоящее время поддерживаемая филиал функции новой ( 4BSD ) версии редактора nvi / nex с акцентом на расширяемость и новые функции.Nvi1 ( версия 1.8+ ) является в настоящее время поддерживаемой традиционной ветвей новой ( 4BSD ) версии редактора nvi / nex , которая в настоящее время разработана Sven Verdoolaege .