Определение типа файла для стандартных заголовков C++ с помощью vim

Стандартные заголовки для C++ обычно устанавливаются в /usr/include/c++/4. .x (в Linux). Поскольку большинство заголовков не имеют расширения (.h, .hpp и т. д.), vim не может распознать формат этих файлов как C++.

Я видел этот другой вопросв SO, но решения, размещенные там, не решают мою проблему.Одно из решений включает использование modeline, но стандартные заголовки C++ не включают в себя подпись, удобную для vim. Вместо этого они включают в первую строку что-то вроде:

//  -*- C++ -*-

Думаю, я мог бы найти этот шаблон ( --- C++ ---), чтобы определить тип файла. Другое решение, опубликованное в ранее упомянутом вопросе SO, на самом деле идет в этом направлении. Ответ предлагает использовать:

au BufRead * if search('MagicPattern', 'nw') | setlocal ft=cpp | endif

, поэтому я пытался сделать:

au BufRead * if search('-*- C++ -*-', 'nw') | setlocal ft=cpp | endif

, но это не работает (т. Е. Тип файла не определяется).

Можно ли таким образом определить тип файла? Существует ли какой-либо плагин или какой-либо другой способ решить эту проблему?

5
задан Community 23 May 2017 в 12:31
поделиться