1

特定の方法でセクション化された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 / [^]+/は「/」と一致します

/キャラクターがこれと何の関係があるのか​​わかりません。

4

1 に答える 1

1

エラーが示すように、キーregexpはスラッシュと一致します。これは/、ツリーのレベル区切り文字として使用されるため、不正です。

セクション名にスラッシュを含めることができる場合は、ラベルではなくノード値として保存する必要があるため、次の代わりに次のようにします。

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

あなたがしなければならないでしょう:

{ "section" = "My section"
  { "set" = "nocompatible" { "#comment" = "be iMproved" } } }
于 2012-08-01T09:51:59.170 に答える