使用augeas解析分段文件

时间:2012-08-01 09:33:46

标签: regex augeas

我正在尝试创建一个模块来解析以特定方式划分的vim文件。示例文件:

" My section {
    set nocompatible            " be iMproved
    set encoding=utf-8
" }
" vim: set foldmarker={,} foldlevel=0 foldmethod=marker:

在编写模块时,我已经陷入困境:

module Vimrc =
    autoload xfm
    let section = del "\" " "\" " . key /[^\n]+/ . del "\n" "\n" . store /.*/ . del "\" " "\" "
    let lns = [ section . del "\n" "\n" ] *
    let filter = (incl "*.vim")
    let xfm = transform lns filter

我知道还有其他一些错误,但它抱怨正则表达式key /[^\n]+/,说:

  

/tmp/aug/vimrc.aug:3.36-.48:exception:关键字regexp / [^] + /匹配   一个'/'

我不明白/角色与此有什么关系。

1 个答案:

答案 0 :(得分:1)

如错误所示,您的密钥正则表达式与斜杠匹配,这是非法的,因为/用作树中的级别分隔符。

如果您的节名称可以包含斜杠,则需要将它们存储为节点值,而不是标签,因此代替:

{ "My section"
  { "set" = "nocompatible" { "#comment" = "be iMproved" } } }

你必须这样做:

{ "section" = "My section"
  { "set" = "nocompatible" { "#comment" = "be iMproved" } } }