在C+中保留缩进+;vim中的注释 P>是否可以在重新编译文件(GG= G)?时,配置VIM和CIMTANT以不改变C++注释中的缩进?
我在注释中有一些格式化的列表,用4个空格对齐,但vim将其解释为糟糕的缩进并重新对齐所有内容 例如:在C+中保留缩进+;vim中的注释 P>是否可以在重新编译文件(GG= G)?时,配置VIM和CIMTANT以不改变C++注释中的缩进?,c++,vim,indentation,C++,Vim,Indentation,我在注释中有一些格式化的列表,用4个空格对齐,但vim将其解释为糟糕的缩进并重新对齐所有内容 例如: /** my list: * item 1 * item 2 */ 变成: /** my list: * item 1 * item 2 */ 我想用一种方式告诉vim:“不要触摸评论内容,而是缩进其他内容。” 这一点很重要,因为我们的项目使用doxygen和类似标记的解析器来生成文档,缩进由列表级别使用。这样写怎么样,这
/**
my list:
* item 1
* item 2
*/
变成:
/**
my list:
* item 1
* item 2
*/
我想用一种方式告诉vim:“不要触摸评论内容,而是缩进其他内容。”
这一点很重要,因为我们的项目使用doxygen和类似标记的解析器来生成文档,缩进由列表级别使用。这样写怎么样,这样注释缩进独立于注释缩进:
/**
* my list:
* * item 1
* * item 2
*/
根据评论的建议,我在这里重新发布了一个答案: 我不相信用
'cinoptions'
就可以做到这一点
正确的解决方案可能是编写一个新的indentexpr
,只对不在注释中的行应用C缩进(可通过cindent()
函数访问)
然而,这里有两个快速而肮脏的解决方案:
我跳过了我没有使用的第一个解决方案,因此不是答案。你仍然可以在原来的帖子上看到它
使用函数
您可以使用:call indicationOringComments()
运行此操作,也可以设置命令或映射。e、 g:
nnoremap <leader>= :call IndentIgnoringComments()<CR>
nnoremap=:调用indentigningcomments()
我个人定义了一个命令
,该命令调用此函数,并将其与我经常对该项目中的文件应用的另一个重新格式化相结合(:%s/\s*$//g
)
多谢
原始帖子:该语法的问题在于它违反了我们的项目编码约定。此外,如何使其与不使用此类语法的现有代码协同工作?@fievel左侧的“墙”用于大多数文档注释样式,专门用于注释缩进中的分隔。奇怪的是,您的项目编码约定放弃了这样一种常见的良好实践。1) 更新项目编码惯例2)更新现有代码以遵循更新的项目编码惯例我完全同意,但我不能,这是一个大项目,我是一个简单的开发人员。事实上,我验证过,它可以使用,但我们不能通过添加这样的“墙”来更改现有注释。因此,我将对新文件执行此操作,并小心现有文件的缩进(或找到排除它的方法,因此我不会将此答案标记为接受)。您可能需要查看
:help C-indenting
和:help C-indenting
以及最后的:help indentexpr
。
nnoremap <leader>= :call IndentIgnoringComments()<CR>