Uma tradução em português está disponvel.
OpenVi - 휴대용 OpenBSD vi / ex
OpenVi는 원래 Bill Joy 가 개발 한 Berkeley vi / ex 텍스트 편집기의 향상되고 휴대용 구현입니다.
OpenVI는 OpenBSD 에 포함 된 vi / ex 편집기의 포크이며, 이는 원래 네 번째 버클리 소프트웨어 배포 ( 4BSD )의 일부로 배포 된 nvi 편집기의 버전 1.79에서 파생됩니다.
nvi 편집자는 캘리포니아 대학교, 버클리 , 스벤 베르고지 및 기타 기고자의 CSRG ( Computer Systems Research Group )의 Keith Bostic 에 의해 개발되었습니다. Nvi 자체는 Steve Kirkendall 의 Elvis 편집자에서 파생되었습니다.
다른 VI 대신 OpenVI를 사용하고 싶습니까?
strlcpy , snprintf , mkstemp , pledge )을 사용합니다.bserase , expandtab , imctrl , visibletab 등과 같은 확장.그렇다면 왜 OpenVI를 사용하고 싶지 않을까요 ?
이러한 점 중 일부는 귀하의 관점에 따라 바람직한 기능 일 수 있습니다.
ex -MODE 인터페이스 만 사용할 수 있습니다sh ) 및 유틸리티, AWK ( MAWK , nawk mawk 등xlc , suncc , clang , gcc 등)ncurses , netbsd curses v8+, PDCurses v2.8+, PDCursesMod 등) csh , tcsh 등)nroff , groff 등 OpenVI는 IEEE STD 1003.1-2008 에 의해 설명 된 프로그래밍 인터페이스와 IEEE STD 1003.2-2008 ( Posix.1-2008 및 POSIX.2-2008 )에 의해 설명 된 사용자 환경을 주로 준수하는 UNIX 유사 운영 체제를 가진 대부분의 플랫폼에 쉽게 휴대 할 수 있습니다.
다음 운영 체제는 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 make
make 선택한 PREFIX ( doas , sudo , su 등 사용) 내에서 파일을 조작하는 적절한 권한을 사용하면 컴파일 된 실행 파일이 다음과 같은 호출을 사용하여 설치 될 수 있습니다.
doas gmake install-strip또는
sudo env PREFIX=/usr/local make install다음 섹션에서는 플랫폼 특정 차이 만 문서화하며 일반 또는 철저한 참조가 아닙니다. 전제 조건 소프트웨어 패키지 또는 기타 시스템 구성을 설치하려면 공급 업체의 문서를 참조하십시오.
AIX 에 OpenVI를 구축하기 전에 ncurses 라이브러리 및 헤더를 설치하십시오. IBM은 Linux 및 오픈 소스 소프트웨어 용 AIX 도구 상자 의 일부로 RPM 형식으로 필요한 패키지, ncurses 및 ncurses-devel 제공합니다. 적절한 권한 ( 예 : root )을 사용하면이 패키지는 dnf 또는 yum 유틸리티를 사용하여 대부분의 시스템에 설치할 수 있습니다.
dnf install ncurses ncurses-devel또는
yum install ncurses ncurses-devel IBM AIX 기본 시스템 (및 IBM I 운영 체제의 AIX 애플리케이션을위한 통합 런타임 환경) 은 libxcurses , AT & T System V 에서 파생 된 XPG4 / XSI 확장 CURSES 구현을 제공 합니다 .
컴파일은 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 ( Bull Freeware ) GCC 패키지 및 V17.1보다 초기 IBM XL C / C ++ 버전은 LTO가 가능 하지 않습니다 .LGC=1 )이 지원되지 않습니다 .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 의 파트너가 아닌 한. AIX libbsd 라이브러리에서 제공 한 파일 잠금 ( flock() 을 통해)는 비 기능적입니다. 이것은 향후 릴리스에서 조사 및 수정 될 것입니다.
OpenVi Man 페이지는 mandoc 으로 작성되며 AIX Man Software ( AT & T Unix System v .에서 파생 된 AIX man 소프트웨어)와 함께 사용하기 전에 변환이 필요합니다.
NETBSD 설치에서 기본 OpenVI 빌드는 NetBSD 기본 시스템에서 제공하는 BSD curses 라이브러리를 사용합니다. 대신 ncurses 사용하려면 CFLAGS , LDFLAGS 및 CURSESLIB 환경 변수의 값을 적절하게 설정하십시오 ( 예 : CFLAGS=-I/usr/pkg/include LDFLAGS=-L/usr/pkg/lib CURSESLIB=-lncurses ).
LLVM LLD 링커는 Clang을 사용하여 링크 시간 최적화 ( LTO=1 )에 필요합니다. 설치 가능한 패키지 ( 예 : pkgin install lld )로 제공됩니다.
Illumos Distribution ( IE Openindiana )에 OpenVi를 구축하기 전에 ncurses 라이브러리 및 헤더를 설치하십시오. OpenIndiana 분포는 필요한 ncurses 패키지를 IPS 형식으로 제공합니다. 적절한 권한 ( 예 : root )을 사용하면 OpenIndiana pkg 유틸리티를 사용하여 패키지를 설치할 수 있습니다.
pkg install ncurses OpenIndiana 기본 시스템은 libcurses , AT & T System V 에서 파생 된 XPG4 / XSI 확장 CURSES 구현을 제공하며 OpenVI 와 함께 사용하기 위해 아직 지원되지 않습니다 .
링크 타임 쓰레기 수집 ( LGC=1 )은 OpenIndiana 에서는 지원되지 않습니다 .
Oracle Solaris 11에 OpenVi를 구축하기 전에 ncurses 라이브러리 및 헤더를 설치하십시오. Oracle 제공은 IPS 형식의 Solaris 11에 필요한 ncurses 패키지를 제공합니다. 적절한 권한 ( 예 : root )을 사용하면 Solaris pkg 유틸리티를 사용하여 패키지를 설치할 수 있습니다.
pkg install ncurses 기본 Oracle Solaris 시스템은 libcurses , AT & T System V 에서 파생 된 XPG4 / XSI 확장 CURSES 구현을 제공하며, 아직 OpenVI 와 함께 사용하기 위해 지원되지 않습니다 .
컴파일은 Oracle Developer Studio , GCC 및 Clang을 사용하여 지원됩니다.
suncc 로 호출하거나 _OSLCC 환경 변수의 값을 1 로 설정하십시오.LTO=1 )는 현재 GCC 또는 Clang을 사용할 때만 지원됩니다.LGC=1 )은 Solaris 에서 지원되지 않습니다 .suncc ( Oracle Developer Studio ) 컴파일러를 사용할 때 64 비트 빌드는 64 비트 모드에서 작동하는 시스템의 기본값입니다. 32 비트 빌드의 경우 SUNBITS 환경 값을 32 로 설정하십시오 ( 예 : export SUNBITS=32 ). Solaris 의 flock() 가 없기 때문에 파일 잠금을 사용할 수 없습니다. 이는 향후 릴리스에서 시스템 V- 스타일 fcntl() 잠금을 지원하여 해결 될 것입니다.
apt-cyg )를 사용한 패키지를 설치하여 파일이 누락되고 상징적 링크가 누락 될 수 있습니다.setup.exe 응용 프로그램을 최신 버전으로 업데이트하십시오.setup.exe 응용 프로그램을 사용하여 설치된 모든 패키지를 업데이트하십시오.setup.exe 응용 프로그램을 사용하여 필수 전제 조건 패키지 ( 즉 make gcc , ncurses , ncurses-devel )를 설치하십시오.cygcheck 유틸리티 ( 예 : cygcheck -cv | grep -v "OK$" )를 호출하십시오. OpenVI는 Homebrew 패키지 관리자를 통해 Linux 및 MacOS 사용자가 사용할 수 있습니다.
brew install openvi기타 (비공식) 배포 패키지를 사용할 수 있습니다.
OpenVI 버전 번호는 해당 OpenBSD 릴리스의 버전을 기반으로 한 다음 OpenVI 릴리스 번호를 기반으로합니다. version 명령을 사용 하여이 정보를 아래 표시된 형식으로 표시 할 수 있습니다.
Version 7.0.1 (OpenVi) 10/25/2021.
이 메시지 는 db 중인 편집기 가 OpenVi regex 릴리스 1 ex vi 냅니다 .
OpenBSD 커밋에서 파생 되지 않은 변경 사항은이 날짜를 진전시키지 않습니다. 새로운 OpenBSD 릴리스는 OpenVI 릴리스 번호를 재설정하지 않습니다.
Openvi
ChangeLog OpenBsd vi
vi / exdbregexLICENSE.md 파일을 참조하십시오. vi 승인에서 ( Bill Joy & Mark Horton 의) :Xvi , Tim Thompson 의 STEVIE 의 향상된 포크Sivle , Steve Kirkendall 의 Elvis 의 청소 포크Vim57 , Bram Moolenaar 의 Vim 버전 5.7의 단순화 된 포크 vi 는 현재 Gunnar Ritter 의 기존 vi 편집기의 강화 된 버전에서 파생 된 vi / ex 편집기의 원래 ( 1BSD / 2BSD ) 지점의 현재 유지 된 포크입니다.Nvi2 는 nvi / nex 편집기의 새로운 ( 4BSD ) 버전의 현재 기능 지점 으로 확장 성 및 새로운 기능에 중점을 둡니다.Nvi1 ( 버전 1.8+ )은 현재 Sven Verdoolaege 가 개발 한 nvi / nex 편집기의 새로운 ( 4BSD ) 버전의 전통적인 지점 입니다.