【问题标题】:Parsing sectioned file with augeas使用 augeas 解析分段文件
【发布时间】:2012-08-01 09:33:45
【问题描述】:

我正在尝试创建一个模块来解析以特定方式划分的 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: 键正则表达式 /[^ ]+/ 匹配 一个'/'

我不明白/ 字符与此有什么关系。

【问题讨论】:

    标签: regex augeas


    【解决方案1】:

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

    如果你的部分名称可以包含斜杠,你需要将它们存储为节点值,而不是标签,所以而不是:

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

    你必须这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多