vim 中快速递增或生成一列数字技巧

有时我需要在 vim 中快速递增或生成一列数字。 Vim 8/ neovim 带有有用的数字技巧。

我将在这里分享其中的两个方法。

使用 put 和 range 快速生成数字

您可以通过以下方式快速生成升序数字

:put=range(1,5)

这会给你:

1
2
3
4
5

我们还可以控制增量。 如果我们想快速生成降序数,我们这样做:

:put=range(10,0,-1)

其他一些变化:

:put=range(0,10,2) // 从 0 到 10 递增 2
:put=range(5)      // 从0开始,上升到5

这个技巧可能有助于在做笔记时生成列表。 在 vim 中,显示当前行,我们可以使用 line('.')。 这可以与 put/range 结合使用。 假设您当前位于第 40 行。要生成第 50 行的数字,您需要执行以下操作:

:put=range(line(','),50)

于是你将得到的结果是:

40 // prints at line 41.
41
42
43
44
45
46
47
48
49
50

要调整上面的行号,将其更改为 :put=range(line('.')+1,50) 以显示正确的行号。

快速增加数字列

假设我们有一列数字,比如下面 HTML 中的 0:

<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>

如果我们想增加所有的零(1、2、3、...),我们可以很快做到。 方法如下:

首先,将光标移动到顶部 0(我使用 [] 表示光标位置)。

<div class="test">[0]</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>

使用 VISUAL BLOCK 模式 (ctrl+v),向下移动 8 次 (ctrl+v >8j) 以直观地选择全部 0。

<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>

现在键入 g ctrl+a。 瞧!

<div class="test">1</div>
<div class="test">2</div>
<div class="test">3</div>
<div class="test">4</div>
<div class="test">5</div>
<div class="test">6</div>
<div class="test">7</div>
<div class="test">8</div>
<div class="test">9</div>

动图封面

等一下……刚刚发生了什么?

Vim 8 和 neovim 具有使用 <C-a> 自动递增数字(并使用 <C-x> 递减)的功能。 你可以通过 :help CTRL-A 来检查它。

我们还可以通过在前面插入一个数字来更改增量。 如果我们想要 10,20,30,... 而不是 1,2,3,...,请改为执行 10g<C-a>。

顺便说一句,使用 <C-a> 和 <C-x> 的超酷提示 - 您不仅可以递增数字,还可以递增八进制、十六进制、bin 和 alpha! 对我来说,我并没有真正使用前三个,但我确实经常使用 alpha。 Alpha 是 *alpha*betical 字符的花哨词。 如果我们确实设置 nformats=alpha,我们可以像处理数字一样递增字母表。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值