Стандартные заголовки для C++ обычно устанавливаются в /usr/include/c++/4.x (в Linux). Поскольку большинство заголовков не имеют расширения (.h, .hpp и т. Д.), Vim не может распознать формат этих файлов как C++.Определение типа файла для стандартных заголовков C++ с помощью vim
Я видел этот другой question в SO, но решения, размещенные там, не решают мою проблему. В одном решении используется использование modeline
, но стандартные заголовки C++ не содержат подписи, совместимые с vim. Вместо этого, они включают в себя в первой строке что-то вроде:
// <algorithm> -*- C++ -*-
Я предполагаю, что я мог бы найти для этого шаблона (-*- C++ -*-
) с целью определения типа файла. Другое решение, опубликованное в ранее упомянутом вопросе SO, действительно идет в этом направлении. Ответ предлагает использовать:
au BufRead * if search('MagicPattern', 'nw') | setlocal ft=cpp | endif
, так что я пытался сделать:
au BufRead * if search('-*- C++ -*-', 'nw') | setlocal ft=cpp | endif
, но он не работает (то есть, тип файла не обнаружен).
Можно ли определить тип файла, используя этот подход? Существует ли какой-либо плагин или каким-либо другим способом решить эту проблему?
См. Вопрос "[Как заставить Vim определять тип файла из строки shebang?] (Http://stackoverflow.com/q/8890668/254635)" –