VIM总能给你惊喜 之 颠倒行序

今天用vim写代码,其中有个比特域,由于他们在大小端不同的情况下定义不同。


struct test {
#if defined(__LITTLE_ENDIAN_BITFIELD)
    uint8_t      a:1,
                 b:1,
                 c:1,
                 d:1,
                 e:1,
                 f:1,
                 g:1,
                 h:1;
#elif defined(__BIG_ENDIAN_BITFIELD)
    uint8_t      h:1,
                 g:1,
                 f:1,
                 e:1,
                 d:1,
                 c:1,
                 b:1,
                 a:1;
#else
#error  "Please fix ENDIAN_BITFIELD"
#endif
};


在输入完小端模式后,在输入大段的定义很麻烦,要把每一行都反序。

研究了一下,果然VIM里面还是有捷径的。这就是VIM的哲学,也是UNIX的哲学,有些设计者都没想到的功能都能实现。


步骤:

输入完小端的代码。

用SHIFT + v 进入行选模式。选中小端代码

按y复制,到大端下面按p粘帖。

再用SHIFT+v 选中大端下面要反序的代码,输入  : (冒号) 进入命令模式

输入命令  !tac按回车。完成行反序



原理。

tac其实是unix下的行反序命令。通过!tac把选中的行重定向到tac命令的标准输入,并把标准输出重定向回来替换掉以前的内容。


祝大家用VIM开心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值