upstream Vim에서 패치 병합 - minsuk-jang/teamproject GitHub Wiki
_See ** [빠른 시작] (# 빠른 시작) ** 즉시 시작하십시오. 또한 [** Not Applicable ** patches] (# 적용 할 수없는 패치) 부분을 참고하십시오.
Neovim은 Vim 7.4.160에서 유래했습니다. 중복 된 작업을 피하기 위해 관련 Vim 패치를 최신으로 유지합니다.
자세한 내용은 [# 438] (https://github.com/neovim/neovim/issues/438)을 참조하십시오.
Vim 패치의 상태를 보려면 [** vim patch report **] (http://neovim.io/doc/reports/vimpatch/) 또는 [vim-patch.sh
] (https : //github.com/neovim/neovim/blob/master/scripts/vim-patch.sh)를 참조하십시오 :
./scripts/vim-patch.sh -l
관련된 모든 Vim 패치에 대해 누구나 [pull request] (# pull-requests)를 환영합니다. 그러나 일부 패치 유형은 ** 적용 할 수 없습니다 : **
- ** 컴파일러 경고 수정 ** : Neovim은 전혀 경고하지 않기 위해서 노력하고 있으며 Vim과 매우 다른 빌드 시스템을 가지고 있습니다.
- ** 참고 : ** Vim의 Coverity fixs는 Neovim과 관련이 있습니다.
- ** # ifdef 조정 ** : 예를 들어 Vim은 모든 플랫폼에서 'FEAT_VISUAL'을 사용하기로 결정했으나 Neovim은 이미 그렇게 했습니다. 새로운 'FEAT_' 붙임을 추가하는 것은 또한 Neovim과 관련이 없습니다.
- ** 레거시 시스템 지원 ** : Amiga, OS / 2 Xenix, Mac OS 9, XP SP2보다 오래된 Windows 등의 legacy 시스템에 대한 수정 사항은 Neovim에서 지원하지 않기 때문에 필요하지 않습니다.
- **
if _ *. c
** 변경 :if_python.c
외. al. 제거되었습니다. - ** term.c ** 변경 : Neovim TUI는 터미널 화면을 읽는 데 libtermkey를 사용합니다. Vim의 `term.c '가 삭제되었습니다.
- 대부분의 ** GUI와 관련된 ** 변경 사항 : Neovim GUI는 핵심 C 코드베이스 외부에서 구현됩니다.
- 다른 것은 관련이 있을 수 있습니다. 주의의 측면에서 오류가 있으며 확실하지 않은 경우 문제를 게시하십시오.
패치를 "Not Applicable"로 표시하려면, 주석 처리 된 패치 번호 옆에 NA
를 version.c
에 추가하십시오.
- Neovim 소스를 내려받습니다. (
git clone https : // github.com / neovim / neovim.git
) -
./scripts/vim-patch.sh -l
을 실행하여 누락된 Vim 패치 목록을 확인하십시오. - 목록에서 패치를 선택하십시오 (일반적으로 가장 오래된 패치).
7.4.123
. -
./scripts/vim-patch.sh -p 7.4.123
을 실행하십시오.- 스크립트가 지침을 안내합니다.
일부 패치는 다른 패치에 의존 할 수 있기 때문에 목록에서 oldest 패치로 작업하는 것이 좋습니다. (누군가가 아직 작업을 시작하지 않았는지 확인하는 것이 좋습니다). 관계없이 병합 충돌이 발생할 가능성이 가장 높지만 이러한 방식으로 충돌이 최소화 됩니다.
_ 참고 : _ ** [vim-patch.sh] (https://github.com/neovim/neovim/blob/master/scripts/vim-patch.sh) **는 이러한 단계를 자동으로 수행합니다.
- pull 요청 * title *은
vim-patch : 7.4.xxx
(공백 없음)를 포함해야 합니다. - [* 커밋 메시지 *] (https://github.com/neovim/neovim/commit/4ccf1125ff569eccfc34abc4ad794044c5ab7455)에는
다음 내용이 포함되어야합니다.
- 다음과 같이 포맷 된 Vim 패치 번호를 나타내는 토큰.
vim-patch : 7.4.123
(공백 없음) - 작성자를 포함한 원본 Vim 커밋 메시지
- 다음과 같이 포맷 된 Vim 패치 번호를 나타내는 토큰.
** 리뷰 작성자 : ** [런타임 / 패치를 검토하는 힌트] (https://github.com/neovim/neovim/pull/1744#issuecomment-68202876) N/A ("Not Applicable") 패치
많은 Vim 패치가 Neovim에는 적용되지 않습니다. 우리는 정기적으로 version.c를 업데이트 하여 이를 단일 pull 요청과 함께 반영합니다. NA 패치를 찾으면,
- 기존의 "NA patches" pull 요청을 찾고,
- 몇 주 동안 pull 요청을 유지하려는 의도로 새로운 것을 만들 수 있습니다.
pull 요청의 제목은 다음과 같아야 합니다.
version.c: mark NA 패치
그래서 쉽게 찾을 수 있습니다. 예를 들어 [PR # 4634] (https://github.com/neovim/neovim/pull/4634)를 보십시오.
다음 기능이 제거되거나 더 새로운 대안을 위해 더 이상 사용되지 않습니다.
자세한 정보는 [memory.c
Doxygen 페이지] (http://neovim.io/doc/dev/memory_8c.html)를 참조하십시오.
지원 중단되거나 제거됨 | 대체 |
---|---|
vim_free |
xfree |
malloc alloc lalloc
|
xmalloc |
calloc |
xcalloc |
realloc vim_realloc
|
xrealloc |
mch_memmove |
memmove |
vim_memset copy_chars copy_spaces
|
memset |
vim_strncpy strncpy
|
xstrlcpy |
vim_strcat strncat
|
xstrlcat |
vim_islower vim_isupper
|
mb_islower mb_isupper
|
vim_tolower vim_toupper
|
mb_tolower mb_toupper
|
Data type | Format (Vim source) | Portable format (Nvim source) |
---|---|---|
long long |
"%lld" |
"%" PRId64 |
size_t |
"%ld" |
"%zu" |
- 또한 보십시오 : https://github.com/neovim/neovim/pull/1729#discussion_r22423779
- Vim의
ga_init2
는ga_init
으로 이름이 바뀌었고 원래의ga_init
은 사라졌습니다. - "이전 스타일"의 Vim 테스트 (
src / testdir / *. in
)는 루아 테스트로 변환되어야 한다 ([# 1286] (https://github.com/neovim/neovim/issues/1286)와 [# 1328 ] (https://github.com/neovim/neovim/pull/1328)). Checklist for migrating legacy tests를 참조하십시오.- 그러나 "새로운 스타일"의 Vim 테스트 (
src / testdir / *. vim
)를 Lua로 변환하지 마십시오. "새로운 스타일"의 Vim 테스트는 이전 테스트보다 빠르며, 변환은 시간과 노력을 필요로 합니다. 그냥src / nvim / testdir / * .vim
에 복사하고src / nvim / testdir / Makefile
을 갱신하십시오.
- 그러나 "새로운 스타일"의 Vim 테스트 (
-
enc_utf8
를 검사하는 조건은 더 이상 사용되지 않습니다 ("true"의 경우만 해당).
다음은 가져온 모든 문서에서 제거되어야 하며 새 문서에서 사용되지 않아야 합니다.
-
{in not Vi}
: Vi와의 호환성에 대해서는 신경쓰지 않습니다 ([818f7ae
] vi-annotations 참조). -
{...와 함께 컴파일 될 때만}
- 대다수의 기능은 선택 사항이 아닙니다. ([소개] (소개 # legacy-support-and-compile-time-features) 참조)