让我说我有这样的事情:
int foo()
{
int temp;
char **argv;
uint32_t test;
}
是否有任何键或顺序的命令使上面的行转换为:
int foo()
{
int temp;
char **argv;
uint32_t test;
}
如果重要的话,我正在使用空格作为标签。
答案 0 :(得分:1)
是的,可以使用Tabular插件。有很棒的vimcast覆盖主题:http://vimcasts.org/episodes/aligning-text-with-tabular-vim/
答案 1 :(得分:1)
使用以下按键创建一个宏(我将其保存在寄存器w
下):
q w $vT da
space * 10 ctrl + c :s/\%17c\s*//
输入 j
q
这是保存在注册表w
中的内容:
$vT da ^C^Cp:s/\%17c\s*//^Mj
$
- 转到行尾vT
- 使用T d
- 删除标记为a ^C
- 插入空格(尽可能多)p
- 粘贴您之前删除的内容s/\%17c\s*//
- 从第17列开始删除空格j
- 转到下面一行空格数和列数可能与您有所不同。
这并不像安装插件那么容易,但我认为编写自己的宏,使用它并看到它确实有效会更有趣。
答案 2 :(得分:1)
考虑使用easy-align插件。
在您的情况下,我需要做的就是选择3行,然后按 Enter - Space
(输入触发交互模式, - 表示last
,空格是空格。即"对齐最后一个空格字符"
该插件非常实用,而且即时制作新的对齐规则非常容易。