Стандартные заголовки для 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
, но это не работает (т. Е. Тип файла не определяется).
Можно ли таким образом определить тип файла? Существует ли какой-либо плагин или какой-либо другой способ решить эту проблему?