umatraduçãoemportuguêsestádisponível。
OpenVI - 便攜式OpenBSD vi / ex
OpenVI是Bill Joy最初開發的Berkeley vi / ex文本編輯器的增強且便攜式實施。
OpenVI是OpenBSD中包含的vi / ex編輯器的叉子,該叉子源自nvi編輯器的1.79版,最初是作為第四伯克利軟件分發( 4BSD )的一部分分發的。
nvi編輯是由加利福尼亞大學,伯克利大學, Sven Verdoolaege和其他貢獻者的計算機系統研究小組( CSRG )的Keith Bostic開發的。 Nvi本身源自Steve Kirkendall的Elvis編輯。
您為什麼要使用OpenVI而不是另一個Vi ?
strlcpy , snprintf , mkstemp , pledge )bserase , expandtab , imctrl , visibletab等延伸詞那麼,為什麼您不想使用OpenVI呢?
這些要點中的一些可能是理想的特徵,具體取決於您的觀點。
exsh )和實用程序,尷尬( 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 )來執行彙編。-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和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的系統(例如GNU/Linux ),基本彙編應成功,而無需任何選項或其他配置:
make有了適當的特權來操縱所選PREFIX中的文件(使用doas , sudo , su等),可以使用諸如:
doas gmake install-strip或者
sudo env PREFIX=/usr/local make install以下各節僅記錄平台特定的差異,並且不打算是一般或詳盡的參考。要安裝先決條件軟件包或其他系統配置,請諮詢供應商的文檔。
在AIX上構建OpenVI之前,請安裝ncurses庫和標題。 IBM以RPM格式提供了必要的軟件包, ncurses和ncurses-devel ,作為Linux和開源軟件的AIX工具箱的一部分。有了適當的權限(例如root ),這些軟件包可以在大多數係統上使用dnf或yum實用程序安裝:例如:
dnf install ncurses ncurses-devel或者
yum install ncurses ncurses-devel IBM AIX基本系統(以及I, IBM I操作系統上AIX應用程序的集成運行時環境的PASE )提供了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-8, gcc-9 , gcc-10 , gcc-11 ):
LTO=1 )需要打開XL C / C ++ V17.1+。 IBM ( AIX工具箱)和Bull / Atos ( Bull Freeware ) GCC軟件包和IBM XL C / C / C ++版本早於V17.1不啟用LTO。LGC=1 )。MAIXBITS環境變量的值設置為32 (例如export MAIXBITS=32 )。CC environment variable must be set to the full path of the compiler ( eg /opt/freeware/bin/gcc , /opt/IBM/xlC/16.1.0/bin/gxlc , /opt/IBM/openxlC/17.1.0/bin/ibm-clang , etc.) unless the compiler directory is already part of the current PATH .文件鎖定( AIX libbsd庫提供的通過flock() )是非功能的;這將在以後的發布中進行調查和糾正。
OpenVi Man頁面由mandoc撰寫,並且需要在與AIX man軟件一起使用之前進行轉換(該軟件來自AT&T Unix System v 。)
在NetBSD安裝上,默認的OpenVI構建使用NetBSD基本系統提供的BSD curses庫。 ncurses ,要適當地設置CFLAG , LDFLAGS和Curseslib環境變量的值( IE CFLAGS CFLAGS=-I/usr/pkg/include LDFLAGS LDFLAGS=-L/usr/pkg/lib CURSESLIB CURSESLIB=-lncurses )。
使用clang需要LLVM LLD鏈接器才能進行鏈接時間優化( LTO=1 )。它可作為可安裝軟件包(即pkgin install lld )提供。
在以Illumos分發( IE OpenIndiana )進行OpenVI構建之前,請安裝ncurses庫和標題。 OpenIndiana發行版以IPS格式提供必要的ncurses軟件包。有了適當的權限(例如root ),可以使用OpenIndiana pkg實用程序安裝軟件包,例如:
pkg install ncurses OpenIndiana基本系統提供libcurses , XPG4 / XSI擴展詛咒實現了從AT&T系統V派生的,該實現尚未支持與OpenVI一起使用。
OpenIndiana不支持Link時間垃圾收集( LGC=1 )。
在Oracle Solaris 11上構建OpenVI之前,請安裝ncurses庫和標題。 Oracle提供了IPS格式的Solaris 11的必要ncurses軟件包。有了適當的權限(例如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 )。suncc )編譯器時,在64位模式下運行的系統的默認值是64位的構建;對於32位的構建,將SUNBITS環境變量的值設置為32 (例如export SUNBITS=32 )。由於Solaris上沒有flock()因此無法使用文件鎖定。這將通過支持系統v -style fcntl()鎖定在以後的版本中來解決。
apt-cyg )安裝軟件包的,這可能會導致缺少文件以及懸掛或丟失的符號鏈接。setup.exe應用程序更新為最新的可用版本。setup.exe應用程序更新所有安裝的軟件包。setup.exe應用程序安裝所需的先決條件軟件包(即make , gcc , ncurses , ncurses-devel )。cygcheck實用程序(即cygcheck -cv | grep -v "OK$" )來驗證當前安裝的所有軟件包的完整性。 Linux和MacOS用戶可以通過Homebrew Package Manager使用OpenVI 。
brew install openvi可以提供其他(非正式)分銷軟件包。
OpenVI版本編號基於相應的OpenBSD版本的版本,其次是OpenVI發行號。 version命令可用於以下面顯示的格式顯示此信息。
Version 7.0.1 (OpenVi) 10/25/2021.
此消息表明,使用的編輯器是OpenVI ,版本1 ,源自OpenBSD版本7.0 ,並與vi ,EX, ex , db和regex的OpenBSD版本完全同步,截至2021年10月25日( 2021年10月25日)。
未從OpenBSD委員會得出的更改不會提前此日期。新的OpenBSD版本不會重置OpenVI發布編號。
Openvi
ChangeLogOpenBSD vi
vi / exdbregexLICENSE.md文件。 vi致謝( Bill Joy & Mark Horton ):Xvi ,蒂姆·湯普森(Tim Thompson )的STEVIE的增強叉Sivle , Steve Kirkendall的Elvis的清理叉Vim57 , Bram Moolenaar的Vim的5.7版的簡化叉vi是vi / ex EDITOR的原始( 1BSD / 2BSD )分支的叉子,該分支來自Gunnar Ritter的增強版本的傳統vi編輯器。Nvi2是nvi / nex編輯器的新( 4BSD )版本的當前維護功能分支,重點是擴展性和新功能。Nvi1 ( 1.8+版本)是nvi / nex編輯器的新( 4BSD )版本的當前維護的傳統分支,該分支現在由Sven Verdoolaege開發。