C ++ 14 zapewnił nam możliwość użycia pojedynczych cudzysłowów do oddzielenia cyfr dużych literałów liczbowych. To łamie podświetlanie składni Vima.
Rozważmy na przykład następujący program 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;
}
Kiedy przeglądam to w Vimie, widzę następujące podświetlanie składni (zauważ, że używam dodatkowych skryptów podświetlających ):
Chciałbym, żeby wszystkie cyfry były huge_number_again
czerwone. Czy mogę zmodyfikować jeden z moich plików składniowych lub ~/.vimrc
poprawić to?
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
do~/.vim/syntax/cpp.vim
. (Btw, jeśli to C ++, użyjcstdlib
, niestdlib.h
.)ull
puch, ale nie wiem, czy pasuje do jakiejś nieprawidłowej wielkości. I najwyraźniej C ++ 14 pozwala na separator w liczbach ósemkowych, dwójkowych, szesnastkowych i liczbach zmiennoprzecinkowych oraz po kropce dziesiętnej w liczbach zmiennoprzecinkowych. To o wiele więcej, niż jestem w stanie przyjąć.Odpowiedzi:
Vim-jp / vim-cpp repo zawarte tę zmianę w lipcu 2016:
Jeśli nie chcesz korzystać z tego repozytorium, możesz dodać te wiersze do
~/.vim/syntax/cpp.vim
.źródło