2

我是新手,所以请多多包涵,但我正在尝试制定一条规则,使用 categorize.cfg 中的 arbtt v0.7 在 Firefox 选项卡上分配我的时间:

-- Firefox
current window ($program == "Navigator") ==>
  if $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ then tag Email:$2-$1 else
  if $title =~ /^(.*) - Calendar - Mozilla Firefox$/          then tag Calendar:$1 else
  if $title =~ /^(.*) - Mozilla Firefox$/                     then tag Firefox:$1  else
                                                                   tag Firefox,

但我得到:

解析器错误:“/home/rich/.arbtt/categorize.cfg”(第 29 行,第 3 列):意外的“i”期待“else”

我还尝试了另一种更成功的方法:

current window ( $program == "Navigator" && $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ )
  ==> tag Email:$2-$1,
current window ( $program == "Navigator" && $title =~ /^(.*) - Calendar - Mozilla Firefox$/ )
  ==> tag Calendar:$1,
current window ( $program == "Navigator" && $title =~ /^((?!.*\b(Calendar|Mail)\b)) - Mozilla Firefox$/ )
  ==> tag Firefox:$1,

但是最后一个子句不返回任何结果;前两个子句可以。

干杯,有钱

4

1 回答 1

1

它看起来像一个错误arbtt;我同意您的代码看起来正确。

但无论如何,使用操作符可能更惯用;,这意味着“尝试第一件事,如果它没有分配标签,则尝试第二件事”:

current window ($program == "Navigator") ==> 
  { $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ ==> tag Email:$2-$1;;
    $title =~ /^(.*) - Calendar - Mozilla Firefox$/          ==> tag Calendar:$1;
    $title =~ /^(.*) - Mozilla Firefox$/                     ==> tag Firefox:$1;
    tag Firefox },

(这;;是因为解析器中的另一个错误——猜想那部分还没有被大量使用。)

在您的第二次尝试中,正则表达式存在一个问题:它应该是/^(?!.*\b(Calendar|Mail)\b)(.*) - Mozilla Firefox$/-(?!...)是一个零宽度模式。

于 2014-01-07T14:18:07.603 回答