Vim 如何将注释开始和结束缩进到同一列?

Vim 如何将注释开始和结束缩进到同一列?,vim,formatting,indentation,Vim,Formatting,Indentation,我正在编辑一个C代码,我需要将注释的开头放在同一列中,将注释的结尾放在所有行的不同列中 e、 g 所需输出为 int i; /* some var */ int j; /* some other */ char c; /* new char */ 我尝试了缩进,阅读了手册页,但没有找到一个我可以使用的选项(太多的标志,可能我错过了一些东西)。 我还尝试了一个vim插件制表,但没有了解如何实现上述功能 有什么帮助吗?使用制表,您可以使用

我正在编辑一个C代码,我需要将注释的开头放在同一列中,将注释的结尾放在所有行的不同列中

e、 g

所需输出为

int i;         /* some var    */
int j;         /* some other  */
char c;        /* new char    */
我尝试了缩进,阅读了手册页,但没有找到一个我可以使用的选项(太多的标志,可能我错过了一些东西)。 我还尝试了一个vim插件
制表
,但没有了解如何实现上述功能


有什么帮助吗?

使用
制表
,您可以使用此命令将每行按
/*
*/
拆分为3个部分:

首先选择要格式化的行,然后键入:

Tabularize /\(\/\*\|\*\/\)
这基本上等同于其他语言中的正则表达式
(/\*\*/)
,但Vim需要额外的转义

结果:

int i;  /* some var   */
int j;  /* some other */
char c; /* new char   */
要根据示例生成准确的结果,您可以告诉tablarize添加额外的空格,如下所示:

Tabularize /\(\/\*\|\*\/\)/l8l1l2
Tabularize /\(\/\*\|\*\/\)/l8l1l2