很多时候,我似乎有一个项目列表,我需要在它们前面加上数字。例如:
Item one
Item two
Item three这应该是:
1. Item one
2. Item two
3. Item three在vim中,我可以在编辑模式下按I,插入"1.",然后按hit键。然后转到下一行,按.,然后按^A递增数字。这似乎非常低效..。我如何制作一个宏,以便我可以转到下一行,并在开头插入一个比前一行大一的数字?
发布于 2010-11-19 19:29:16
你可以很容易地录制一个宏来做这件事。
首先在第一行的开头插入1. ( 1.后面有几个空格,但您看不到它们)。
转到第二行的开头,使用qa进入记录模式。
按以下键序列:
i # insert mode
<ctrl-Y><ctrl-Y><ctrl-Y> # copy the first few characters from the line above
<ESC> # back to normal mode
| # go back to the start of the line
<ctrl-A> # increment the number
j # down to the next line
q # stop recording现在,您可以使用@a回放记录(第一次回放;对于以后的回放,您可以执行@@来重复上次执行的宏),它将在每行的开始处添加一个新的递增数字。
发布于 2010-11-19 19:19:41
使用:V在可视模式下选择您的行,然后键入:
:'<,'>s/^\s*\zs/\=(line('.') - line("'<")+1).'. '这很容易放入命令中:
command! -nargs=0 -range=% Number <line1>,<line2>s/^\s*\zs/\=(line('.') - <line1>+1).'. '发布于 2010-11-19 20:59:14
如果你有时不得不这样做,也有一些插件可以做这类工作:
http://vim.sourceforge.net/scripts/script.php?script_id=670
https://stackoverflow.com/questions/4224410
复制相似问题