我正在处理一个分为几个部分的文件。我知道在vim中有set nu和set rnu用于在所有行上设置行编号或相对行编号。我想知道vim可以设置行号,这样每个部分都有自己的行号,例如
1 Section A
2 jhkj
3 gfsg
...
1 Section B
2 gfsdg
3 gsdfg
4 gsf
....
1 Section C
2 gs
3 kjgk
...
我在网上搜索过,无法找到帮助。
答案 0 :(得分:1)
我认为vim不会让你对行编号有太多控制权。您可以打开一个新的窄窗口,粘贴正确的行号,然后使用'scrollbind'
。如果您只是导航,这应该可以正常工作,但它不会自动更新。如果你从第1行开始,那么这很有效:
let ln = 0
let lines = []
g/^/let ln = getline('.') =~ '^Section ' ? 1 : ln + 1 | call add(lines, ln)
5vnew
call append(0, lines)
windo setl scb
答案 1 :(得分:1)
不,您无法影响内置:set nu
行号。
要获得类似的内容,您可以使用标志功能(其列位于数字列旁边),但更新所有标志会很麻烦,尤其是在线插入/删除期间
我建议查看NrrwRgn - A Narrow Region Plugin similar to Emacs插件。有了这个,您可以将每个部分拆分为一个单独的缓冲区(并在那里:set nu
),并且插件中的任何编辑都将自动同步回原始部分。