2014-09-22 5 views
1

Новое ключевое слово C++ constexpr не выделяется vim. Я пробовал такие плагины, как этот: http://www.vim.org/scripts/script.php?script_id=4617vim C++ 11 constexpr highlight

Он работал очень хорошо для всего остального, кроме constexpr.

Кто-нибудь знает, как я могу включить подсветку синтаксиса для constexpr в моем cpp.vim (или с помощью других методов)?

+0

Просто добавить, что ключевое слово любой скрипт синтаксиса, который вы используете, и отправляйте патч его сопровождающему. – romainl

ответ

1

В vim 7.4 (и, возможно, раньше, но 7.4 - то, что я установил), constexpr должен быть установлен стандартным файлом cpp.vim, который должен быть частью вашей установки.

Это, однако, охраняются в тесте для cpp_no_cpp11 переменной:

" C++ 11 extensions 
if !exists("cpp_no_cpp11") 
    syn keyword cppType  override final 
    syn keyword cppExceptions noexcept 
    syn keyword cppStorageClass constexpr decltype 
    syn keyword cppConstant nullptr 
endif 

Вы можете :echo exists("cpp_no_cpp11"); если результат равен 1, это объясняет, почему вы не видите подсветку (вам придется диагностировать вашу конфигурацию, чтобы понять, почему она устанавливается).

В качестве альтернативы вы можете пойти на грубый метод силы и положить

syn keyword cppStorageClass constexpr 

в вашем .vimrc (наряду с любой другой, что вы хотите, кажется, что вы также будете отсутствовать decltype и так далее). Или вы можете поместить эту команду в файл сценария, который вы загружаете через autogroup, или используя каталог «после» (например, подключенный плагин), если вы хотите быть более внимательным в своем подходе.

(Обратите внимание, что плагин вы связаны не пытается добавить C++ 11 ключевое слово подсветка на всех, по крайней мере, не для constexpr. Это главным образом касается функций и имен типов.)

+0

благодарю вас за ответ, оказалось, что подсветка не была включена, потому что я не смог загрузить правильную цветовую схему (я попытался загрузить цветовую схему перед своей линией vundle и поместил блок в попытку catch, поэтому ошибка не была обнаружена.), была загружена схема по умолчанию, и не использовалось особого цвета для ключевых слов C++ 11. Большое спасибо за советы, которые вы даете, они очень полезны для изучения! – swang

Смежные вопросы