C++ の標準ヘッダーは通常、/usr/include/c++/4.x (Linux の場合) にインストールされます。ほとんどのヘッダーには拡張子 (.h、.hpp など) がないため、vim はこれらのファイルの形式を C++ として認識できません。
SOでこの他の質問を見ましたが、そこに投稿された解決策は私の問題を解決しません。そこでの 1 つの解決策は、使用すること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
しかし、機能しません (つまり、ファイルの種類が検出されません)。
そのアプローチを使用してファイルの種類を検出することは可能ですか? これを解決するプラグインやその他の方法はありますか?