Отключение подсветки синтаксиса vim внутри комментариев на С++
Недавно я загрузил vim 8.0. Я не знаю, перепутал ли я что-то или изменил значение по умолчанию, но в этом коде...
int foo()
{
// This is a comment containing a "string" and the number 5.
return 42;
}
... "string"
и 5
находятся в другом цвете. Это тот же цвет, что и при обычном коде. Я этого раньше не видел. Как отключить его?
Ответы
Ответ 1
Это было необычно сложно найти, но ответ в файлах справки vim. Это особенность подсветки синтаксиса для кода C и С++, который поставляется с vim. От :h ft-c-syntax
:
Несколько вещей в подсветке C являются необязательными. Чтобы дать им возможность назначить любое значение соответствующей переменной. Пример:
:let c_comment_strings = 1
Чтобы отключить их, используйте ": unlet". Пример:
:unlet c_comment_strings
Переменная c_comment_strings
управляет подсветкой строк, символов и чисел внутри комментариев. Должно быть, это было включено где-то в моей настройке. Если я :unlet
, все комментарии выделены одним цветом снова.
Ответ 2
Ну, я понимаю автоответчик, но я настоятельно рекомендую, чтобы кто-то серьезно относился к использованию Vim в качестве инструмента для кодирования на С++ для просмотра vim color_coded
. Невозможно добиться удовлетворительного раскрашивания с помощью простой схемы, основанной на рефгексе. Хотя это и не без проблем, этот плагин (на мой взгляд) максимально приближен к тому, что он делает правильную раскраску в Vim.
Ответ 3
Если я правильно понимаю, вы хотите отключить подсветку синтаксиса.
:syntax disable
Если вы не root и установите nocompatible, вы можете прокомментировать его в последней строке (см. "h: modeline" ).
// vi:syntax disable:
Каждый раз, когда вы открываете его как пользователя без полномочий root, команда вступает в силу.