用于格式化对象的Vim命令

时间:2013-12-23 22:13:19

标签: vim

Vim中是否有一个简单的快捷方式(或插件)可以帮助格式化这样的代码:

var obj = {
    one: 1,
    two: 2,
    three: 3,
    four: 4
};

进入这个?

var obj = {
    one    : 1,
    two    : 2,
    three  : 3,
    four   : 4
};

2 个答案:

答案 0 :(得分:3)

有几个对齐插件,可以很容易地处理这类问题:

https://github.com/junegunn/vim-easy-align

https://github.com/godlygeek/tabular

https://github.com/vim-scripts/Align

个人我正在使用最后一个(最老的可能吗?)。根据您的需要,我只需选择那些行并<leader>t:完成!

答案 1 :(得分:0)

您可以使用vim正则表达式执行此操作。使用ctrl-V(大写V)突出显示您可以格式化的行,然后:

:s;\v^(\s*)(\w+)\s*:\s*(\d+,*);\=printf("%s%-7s: %s", submatch(1), submatch(2), submatch(3));g

:s将替换为:'<,'>s,因为它采用视觉块状模式。