Vim 8:列表重排序后如何手动或自动重新编号?
如何在Vim中重新编号有序列表或自动维护序号?
先看实际场景:
原本的有序列表:
1. apple 2. banana 3. orange 4. plum
调整行顺序后编号变得混乱:
2. banana 1. apple 4. plum 3. orange
快速重新编号的方法
用V模式选中整个混乱的列表行,然后执行以下命令:
:s/^\d\+\./\=line('.') - line("'<") + 1 . '.'
这个命令会把每行开头的数字替换成从1开始的连续序号,原理是通过计算当前行在选中区域内的相对位置,自动生成正确的编号。
让Vim自动维护有序列表
如果想从根源避免手动调整后编号混乱,可以在Vim配置文件(~/.vimrc或Windows下的_vimrc)中添加以下设置:
set autoindent set formatoptions+=n
开启后,在有序列表的行尾按回车时,Vim会自动生成下一个连续的序号;后续如果仍需要调整行顺序,再用上面的重新编号命令即可。
内容的提问来源于stack exchange,提问作者wxz
相关产品推荐
相关产品推荐

