我想为formatlistpat
选项尝试不同的正则表达式。任何建议最简单的方法来做到这一点?轻松编辑formatlistpat?
我知道在插入模式我可以使用<Ctrl+r>
粘贴在一个注册。而且我可以使用这个来编辑宏。有选择的等价物吗?或者更简单的东西?
我想到的另一个想法是使用set命令在其中找到一个缓冲区。但我不确定将选项值放入缓冲区的方式,因此可以对其进行编辑。
有什么想法?提示?建议?
我想为formatlistpat
选项尝试不同的正则表达式。任何建议最简单的方法来做到这一点?轻松编辑formatlistpat?
我知道在插入模式我可以使用<Ctrl+r>
粘贴在一个注册。而且我可以使用这个来编辑宏。有选择的等价物吗?或者更简单的东西?
我想到的另一个想法是使用set命令在其中找到一个缓冲区。但我不确定将选项值放入缓冲区的方式,因此可以对其进行编辑。
有什么想法?提示?建议?
当您正在编辑的命令行,你这里有两种选择:
使用自动完成:
set formatlistpat=<Tab>
(不是真的标签,而是任何一个 'wildchar'/ 'wildcharm' 是设置)。这将使用当前选项值填充命令行,并正确转义。我不能为这个特别的选择建议这种方式,因为双转义看起来很丑,在大多数模式中有很多转义。
使用表达式寄存器(无论是在命令行和在插入模式下工作):
let &formatlistpat=<C-r>=string(&formatlistpat)<CR>
注意,在这种情况下,逃避不是自动完成。使用:let
和string()
更容易,然后为:set
做适当的转义。
太棒了。我使用
基于ZyX's answer,以下是有效的.vimrc
文件:
let &formatlistpat="^\s*\d\+[\]:.)}\t ]\s*\|^\s*[-*]\s+"
let &formatlistpat=string(&formatlistpat)
Uhmm,当你说不同的正则表达式,你的意思是不同的正则表达式格式(VIM支持三个,如果我不是错误的;差异是微妙的,但在那里),或者你只是想尝试一些正则表达式,看看他们是否工作。 我并没有完全了解关于粘贴的内容,以及要粘贴到哪里。或编辑部分。 – Rook
我完全正确地使用了模式已经存在的正则表达式格式/语法 - 这是我从与替换相关的模式中熟悉的。 要编辑宏,我可以将包含宏的寄存器粘贴到缓冲区中,编辑它,然后将其粘贴回寄存器中。 我希望只是调整formatlistpat而不搞乱它。 在提出问题的同时,我已经手动将该值以set命令的形式输入缓冲区。而我一直在排队并使用:@ =反复运行。这对我有用。 – Mike