Vim 在 C++ 中自动硬包装长注释?

orl*_*rlp 3 c++ vim comments word-wrap

重现我的问题:

$ vim -u NONE test.cpp
:set nocompatible
:set tw=20
:set fo=croql
Run Code Online (Sandbox Code Playgroud)

现在输入以下文本:

/*
    test test test test test test test test test
*/
Run Code Online (Sandbox Code Playgroud)

请注意,包含测试的行上没有前导星号。Vim 默认会插入这个,删除它。

Vim 应该自动换行,但事实并非如此。

如何让 Vim 在注释中自动换行,并且仅在注释中换行:set fo+=t有效,但随后所有内容都会被包装,我不希望代码自动硬包装。

Ing*_*kat 5

使用我的OnSyntaxChange 插件,您可以'fo'根据光标是否在注释中更改选项值:

call OnSyntaxChange#Install('Comment', '^Comment$', 0, 'a')
autocmd User SyntaxCommentEnterA setlocal fo+=t
autocmd User SyntaxCommentLeaveA setlocal fo-=t
Run Code Online (Sandbox Code Playgroud)

它也可以在 GitHub 上找到。