vim中是否有任何方法可以为变量声明应用均匀的间距?

vim中是否有任何方法可以为变量声明应用均匀的间距?,vim,Vim,比方说我有这样的东西: int foo() { int temp; char **argv; uint32_t test; } 是否有任何键或命令序列可以将上面的行转换为以下内容: int foo() { int temp; char **argv; uint32_t test; } 如果这很重要,我将使用空格作为制表符 是的,可以使用表格插件。关于这个主题,有一个很棒的vimcast:用以下按键创建一个宏(我将它保存在reg

比方说我有这样的东西:

int foo()
{
    int temp;
    char **argv;
    uint32_t test;
}
是否有任何键或命令序列可以将上面的行转换为以下内容:

int foo()
{
    int      temp;
    char     **argv;
    uint32_t test;
}

如果这很重要,我将使用空格作为制表符

是的,可以使用表格插件。关于这个主题,有一个很棒的vimcast:

用以下按键创建一个宏(我将它保存在register
w
下):

qw
$vT da
space*10ctrl+c
:s/\%17c\s*/
enter
j
q

这是保存在寄存器
w
中的内容:

$vT da          ^C^Cp:s/\%17c\s*//^Mj
  • $
    -转到行尾
  • vT
    -使用上一次搜索中的T标记所有内容,直到空格
  • d
    -删除已标记的内容
  • a^C
    -插入空格(根据需要)
  • p
    -粘贴以前删除的内容
  • s/\%17c\s*/
    -删除从第17列开始的空格
  • j
    -转到下一行
空格数量和列号可能会因您而异。

它不像安装插件那么简单,但我认为编写自己的宏,使用它并看到它实际工作起来更有趣。

考虑使用插件

在您的情况下,我需要做的就是选择3行,然后按Enter空格键

(输入触发交互模式,-表示
last
,空格是空格。即“在最后一个空格字符上对齐”


该插件非常有用,而且很容易在运行中创建新的对齐规则。

刚刚尝试了链接并安装了插件。效果很好!!!很漂亮:)就我个人而言,我不想麻烦。如果添加或删除变量,可能需要重新格式化周围的声明,这将使差异变得不必要的大。以这种方式排列变量也不适用于比例字体。保持简单。