このページでは、 Vim + vim-lsp を使って、 C 言語で書かれたソースコードのプリプロセッサ分岐に色付けを行う方法を紹介します。以下の動画のように有効になっている分岐以外はコメントと同じ色付けとなります。これは Semantic highlighting という機能によるものです。
↑ の動画が動いていない場合は、クリックすると再生されるはずです
設定方法
vim-lsp と clangd 11.0 以降をインストールして、 g:lsp_semantic_enabled
を 1 にすると設定完了です。
vim-lsp をインストール
clangd 11.0 以降をインストール
内部で使用する clangd は 11.0 以降が必要となります。以下から LLVM 15.0.0 などをダウンロードしてインストールして clangd に PATH を通してください。
vim-lsp-settings を使っている場合は、 C ソースを開いた状態で :LspInstallServer
を実行すると良いです。ただし、 Windows で :LspInstallServer
を使う場合は 497b535 (2022/09/11) 以降の vim-lsp-settings を使う必要があります。
vimrc の設定
以下の設定を .vimrc
などに追加してください。
let g:lsp_semantic_enabled = 1
まとめ
以下で Semantic highlighting が有効になります。
- vim-lsp をインストール
- clangd 11.0 以降をインストール
-
g:lsp_semantic_enabled
を 1 にする
プリプロセッサ分岐の多い C ソースを読むときに、無効な分岐がグレーアウトされる、という理由で VSCode を使うケースもあったのですが、これで解決。