我想为formatlistpat
选项尝试不同的正则表达式。 关于最简单的方法有什么建议吗?
我知道在插入模式下,我可以使用<Ctrl+r>
粘贴寄存器。 并且我可以使用它来编辑宏。 有等效的选项吗?还是更简单的东西?
我的另一个想法是获取一个包含 set 命令的缓冲区。 但我不确定如何将选项值放入缓冲区以便可以对其进行编辑。
有什么想法吗?技巧?建议?
编辑命令行时,这里有两个选项:
-
使用自动完成功能:
set formatlistpat=<Tab>
(不是真正的选项卡,而是设置的任何"wildchar"/"wildcharm")。这将使用当前选项值填充命令行,正确转义。我不能为这个特定选项建议这种方式,因为双重转义看起来很丑陋,而且大多数模式中都有很多转义。
-
使用表达式寄存器(在命令行和插入模式下都有效):
let &formatlistpat=<C-r>=string(&formatlistpat)<CR>
请注意,在这种情况下,转义不会自动完成。使用
:let
和string()
更容易,然后为:set
进行适当的转义。
根据ZyX的回答,以下内容对.vimrc
文件有效:
let &formatlistpat="^s*d+[]:.)}t ]s*|^s*[-*]s+"
let &formatlistpat=string(&formatlistpat)
如果有人仍在研究如何在.vimrc
中最好地设置formatlistpat
,而不会有任何丑陋的转义:
let &formatlistpat='^s*[[a-zA-Zа-яА-Я0-9_]+]:s*'
let &formatlistpat.='|'
let &formatlistpat.='^s*[-–+oо*•]s+'
给定的示例还有一个关于如何使formatlistpat
代码更具可读性的巧妙技巧。