我想在下一个代码的每一行末尾缩进注释:
Point d_test = Point(5,-1); //inCircle > 0
Point e_test = Point(5,-1); //inCircle > 0
Point f_test = Point(5,-1); //inCircle > 0
Point g_test = Point(4,-5); //inCircle = 0
Point h_test = Point(3,-2); //inCircle < 0
Point i_test = Point(5,0); //inCircle < 0
Point j_test = Point(5,0); //inCircle < 0
我正在尝试使用可视块选择,选择带注释的块。然后我尝试使用像这样的替换::'&lt;,'&gt; s / \%V ^ \ s + \%V // g
我已经多次尝试但没有成功:(。我打赌有更好的方法可以做到这一点。
我正在寻找的最终结果是:
Point d_test = Point(5,-1); //inCircle > 0
Point e_test = Point(5,-1); //inCircle > 0
Point f_test = Point(5,-1); //inCircle > 0
Point g_test = Point(4,-5); //inCircle = 0
Point h_test = Point(3,-2); //inCircle < 0
Point i_test = Point(5,0); //inCircle < 0
Point j_test = Point(5,0); //inCircle < 0
谢谢。
答案 0 :(得分:1)
不幸的是,只需一个简单的替换命令就可以很容易地进行对齐,因为插入或删除的空格量会逐行变化。
我特别喜欢使用vim-easy-align解决此问题,您可以使用:EasyAlign /\/\// {'ig': []}
编辑:Easy Align默认忽略注释。因此,要对齐注释,您必须实际更改ignore_groups
参数。更新了答案以反映出来。
答案 1 :(得分:0)
您也可以使用宏来实现这一目标。
假设光标在正常模式下位于第一行,则:
j
qa0f;10a [Esc]32|dwjq
5@a
应格式化所有行。
这个宏的工作方式是:
qa
:在缓冲区a
0
:移至行首f;
:找到;
字符10a [Esc]
:插入10个空格,进入正常模式32|
:将光标移至第32行dw
:删除当前单词(直到下一个单词的额外空格)jq
:转到下一行并完成宏录制5@a
:将缓冲区a
中记录的宏应用五次希望这有帮助。