2016-12-02 4 views
14

Недавно я загрузил vim 8.0. Я не знаю, если я испортил что-то или по умолчанию изменился, но в этом коде ...Отключить подсветку синтаксиса vim внутри комментариев C++

int foo() 
{ 
    // This is a comment containing a "string" and the number 5. 
    return 42; 
} 

... "string" и 5 находятся в другом цвете. Это тот же цвет, что и при нормальном коде. Я этого раньше не видел. Как я могу отключить его?

ответ

14

Это было необычно сложно найти, но ответ в файлах справки vim. Это особенность подсветки синтаксиса для кода C и C++, который поставляется с vim. От :h ft-c-syntax:

Некоторые вещи в подсветке C являются необязательными. Чтобы включить их, назначьте любое значение соответствующей переменной. Пример:
:let c_comment_strings = 1
Чтобы отключить их, используйте «: unlet». Пример:
:unlet c_comment_strings

В c_comment_strings переменная управляет подсвечивание строк, символов и цифр внутри комментариев. Должно быть, это было включено где-то в моей настройке. Если I :unlet, все комментарии выделены одним цветом.

+0

Найдено. 'c_comment_strings' устанавливается в' $ VIMRUNTIME/defaults.vim'. Я искал 'vimrc_example.vim', который включает значения по умолчанию. –

3

Ну, я понимаю автоответчик, но я настоятельно рекомендую любому, кто серьезно относится к использованию Vim в качестве инструмента для кодирования на C++, чтобы посмотреть в плагин vim color_coded. Невозможно добиться удовлетворительного раскрашивания с помощью простой схемы, основанной на рефгексе. Хотя это не без проблем, этот плагин (по моему мнению) является самым близким, поскольку он добирается до правильной раскраски в Vim.

+1

Я согласен с этим * мнением *, но это то, что есть. – rici

+0

@rici, это не мнение. Удовлетворительная подсветка C++ без правильного синтаксического анализа кода C++ не достижима. – SergeyA

-1

Если я правильно понял, вы хотите отключить подсветку синтаксиса.

:syntax disable 

Если вы некорневая и установить nocompatible, вы можете прокомментировать это в последней строке (см «час: режимной_строки»).

// vi:syntax disable: 

Каждый раз, когда вы открываете его как пользователя без полномочий root, команда вступает в силу.

+0

Я не хочу отключать подсветку синтаксиса, только одну функцию для выделения строк и чисел внутри комментариев. –