C ++ 14는 작은 따옴표를 사용하여 큰 숫자 리터럴의 숫자를 구분하는 옵션을 제공했습니다. 이로 인해 Vim의 구문 강조가 중단됩니다.
예를 들어, 다음 C ++ 14 프로그램을 고려하십시오.
#include <stdlib.h>
int main(int argc, char** argv) {
// small numbers are fine
int normal_number = 5;
// large numbers have the correct highlighting but they're hard to visually parse
int huge_number = 1000000000;
// apostrophes help with visual parsing but mess up syntax higlighting
int huge_number_again = 1'000'000'000;
return EXIT_SUCCESS;
}
Vim에서 이것을 볼 때 다음과 같은 구문 강조가 표시됩니다 ( 추가 강조 스크립트를 사용하고 있음에 유의하십시오 ).
모든 숫자 huge_number_again
가 빨간색으로 나타나기를 원합니다 . 구문 파일 중 하나 ~/.vimrc
를 수정 하거나 이를 수정하기 위해 수정할 수 있습니까?
C ++ 14에 대한 지원이 v7.4.923 (이진 리터럴)에 추가 된 것으로 보입니다. 하지만 숫자 분리기는 것 같다 : - / 최신 C ++ 파일을 여기에서이 또한 아직 그것을 가지고하지 않는 것 같습니다.
—
Martin Tournoij
빠른 수정을 위해, 당신은 아마 추가 할 수 있습니다
—
muru
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
에 ~/.vim/syntax/cpp.vim
. (Btw, C ++ 인 경우 cstdlib
, not을 사용하십시오 stdlib.h
.)
방금 2014 년 5 월 btw 이후 공개 된 문제 가 있음을 알게되었습니다 .
—
Martin Tournoij
@muru 문제를 해결 한 것 같습니다. 지금은 빠른 해킹을 사용하는 것이 좋습니다. 감사!
—
Jake
@Carpetsmoker 내 변경 사항을 정확히 알기 위해 구문 일치를 확신하지 못합니다. 나는 그것이 숫자와 작은 따옴표, 그리고
—
muru
ull
보풀을 따르는 숫자와 일치 할 것이라고 생각 하지만, 잘못된 경우와 일치하는지 모르겠습니다. 그리고 분명히 C ++ 14는 8 진수, 2 진수, 16 진수 리터럴 및 부동 소수점, 부동 소수점 소수점 이후의 구분 기호를 허용합니다. 그것은 내가 기꺼이 받아들이는 것보다 훨씬 더 많은 것입니다.