有没有一种简单的方法可以使用 vim markdown 编辑编号列表



假设我在markdown中有一个这样的编号列表:

1. This is a line of text.
2. This is a line of text.
3. This is a line of text.
4. This is a line of text.

有没有一种简单的方法可以为数字 1 插入一个新行并使用 vim 向所有其他行添加一个行?这就是我想要实现的目标:

1. This is a new line of text.
2. This is a line of text.
3. This is a line of text.
4. This is a line of text.
5. This is a line of text.

我希望能够快速完成此操作 - 例如,不必录制宏。

一种完全不同的方法是根本不担心手动编号。Markdown 不关心源文件中的数字,所以

1. Foo
1. Bar
1. Baz

渲染为

  1. 酒吧
  2. 巴兹

我通常用1.对所有订购列表进行编号,并让 Markdown 处理器负责实际编号。

几种方法可以做到这一点。可能最简单的方法是添加以"0."开头的换行符。然后,当您对此列表感到满意时,您可以使用 vG<C-a> 递增每个数字。(当然,这不是您可以使用不同动作(例如ip}(的整个缓冲区(

如果要多次添加一行,则在完成编辑后将末尾的所有数字相加可能会更容易。这可以通过直观地选择您想要的行并执行g<C-a>来完成。

我不记得这些功能的确切添加时间,但这需要一个相对较新的 vim 版本。它在 8 中对我有用,我记得这适用于带有正确补丁的 7.4。

如果您使用的是旧版本的 vim,则可以选择所需的行并使用替换命令添加适当的数字。例如:

:s/^/=(line('.') - line("'<") + 1).'. '
  • 这:您可以在选择这些行后使用以下命令,方法是从第一行开始V4j

:'<,'>s/d/=submatch(0)+1/ | normal! goO1. This is a new line of text.

  • 或者:将光标放在第一行并键入:

O0.这是一行新文本。Esc0 Ctrl-v 4jCtrl-a


O :大写字母 o (shift+o(

0 : 数字 0

相关内容

最新更新