2012-06-22 81 views
3

我想为formatlistpat选项尝试不同的正则表达式。任何建议最简单的方法来做到这一点?轻松编辑formatlistpat?

我知道在插入模式我可以使用<Ctrl+r>粘贴在一个注册。而且我可以使用这个来编辑宏。有选择的等价物吗?或者更简单的东西?

我想到的另一个想法是使用set命令在其中找到一个缓冲区。但我不确定将选项值放入缓冲区的方式,因此可以对其进行编辑。

有什么想法?提示?建议?

+0

Uhmm,当你说不同的正则表达式,你的意思是不同的正则表达式格式(VIM支持三个,如果我不是错误的;差异是微妙的,但在那里),或者你只是想尝试一些正则表达式,看看他们是否工作。 我并没有完全了解关于粘贴的内容,以及要粘贴到哪里。或编辑部分。 – Rook

+0

我完全正确地使用了模式已经存在的正则表达式格式/语法 - 这是我从与替换相关的模式中熟悉的。 要编辑宏,我可以将包含宏的寄存器粘贴到缓冲区中,编辑它,然后将其粘贴回寄存器中。 我希望只是调整formatlistpat而不搞乱它。 在提出问题的同时,我已经手动将该值以set命令的形式输入缓冲区。而我一直在排队并使用:@ =反复运行。这对我有用。 – Mike

回答

4

当您正在编辑的命令行,你这里有两种选择:

  1. 使用自动完成:

    set formatlistpat=<Tab> 
    

    (不是真的标签,而是任何一个 'wildchar'/ 'wildcharm' 是设置)。这将使用当前选项值填充命令行,并正确转义。我不能为这个特别的选择建议这种方式,因为双转义看起来很丑,在大多数模式中有很多转义。

  2. 使用表达式寄存器(无论是在命令行和在插入模式下工作):

    let &formatlistpat=<C-r>=string(&formatlistpat)<CR> 
    

    注意,在这种情况下,逃避不是自动完成。使用:letstring()更容易,然后为:set做适当的转义。

+0

太棒了。我使用来完成选项名称,但不是值。这有帮助。我忘记了&选项语法和表达式寄存器。很有帮助!谢谢... – Mike

1

基于ZyX's answer,以下是有效的.vimrc文件:

let &formatlistpat="^\s*\d\+[\]:.)}\t ]\s*\|^\s*[-*]\s+" 
let &formatlistpat=string(&formatlistpat)