Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中保留缩进+;vim中的注释 P>是否可以在重新编译文件(GG= G)?时,配置VIM和CIMTANT以不改变C++注释中的缩进?_C++_Vim_Indentation - Fatal编程技术网

在C+中保留缩进+;vim中的注释 P>是否可以在重新编译文件(GG= G)?时,配置VIM和CIMTANT以不改变C++注释中的缩进?

在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和类似标记的解析器来生成文档,缩进由列表级别使用。这样写怎么样,这

我在注释中有一些格式化的列表,用4个空格对齐,但vim将其解释为糟糕的缩进并重新对齐所有内容

例如:

/**
    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>